[Tutorials] 为 UOS/Deepin 文件管理器写了一个 SVN/Git 右键小插件
Tofloor
poster avatar
天线摆摆
deepin
2026-03-17 16:56
Author

为 UOS/Deepin 文件管理器写了一个 SVN/Git 右键小插件

平时工作经常需要用到 Git 或 SVN 来管理各种文档和文件版本。之前用过 GNOME 或 KDE 桌面的朋友可能知道,文件管理器(像 Nautilus、Dolphin)通常都有 RabbitVCS 插件,可以直接在右键菜单里操作版本同步。但咱们目前的文件管理器在这块还是空白,每次想看下文件有没有修改、或者想上传更新,就只能切回终端去敲枯燥的命令。

**考虑到很多刚接触 Linux 的新手朋友不太习惯终端操作,或者单纯想图个方便,我觉得有个图形化界面还是挺刚需的。所以,我业余时间折腾了一个非官方的 DDFM 小插件,把 Linux 下老牌的图形化版本控制工具 **RabbitVCS 集成到了咱们 DDE 文件管理器中。

初衷其实很简单,就是想先帮大家解决“从无到有”的问题,让 Deepin/UOS 的用户也能点点鼠标,就把文件上传和版本同步给搞定了。

插件实现的基础功能

RabbitVCS 支持 Git、SVN 等主流版本控制系统。装上这个插件后,在文件管理器中可以实现:

  • 右键菜单集成:在受 SVN/Git 管理的文件夹下点击右键,会多出一个 RabbitVCS 的操作菜单。不用打开终端,直接在图形界面完成 Update(更新)、Commit(提交修改)、Push(推送)、Diff (查看文件差异)、Log (查看历史) 等常用操作。
  • 状态角标显示:调用了系统的底层接口,直接在文件或文件夹图标上显示当前的版本状态。比如蓝色表示正常,红色代表文件已修改,绿色是新增文件,黄色是有冲突等,文件状态一目了然。

聊聊初衷与折腾的感受

除了方便自己日常处理文件,写这个小插件也是为了摸索一下咱们 UOS/Deepin 文件管理器的扩展潜力。

在折腾的过程中,我发现其实文件管理器的插件接口已经挺完善了。这个小项目主要用到了两个核心扩展点:一个是向原生的右键菜单里加选项(DFMExtMenuPlugin),另一个是在图标上画状态角标(DFMExtEmblemIconPlugin)。

我已经把源码完全开源了,希望能为其他想要折腾文管插件的朋友提供一个参考。大家有兴趣的话,完全可以基于这套机制开发出更多实用的右键功能,比如:网盘同步状态显示、特定格式文件的右键预览、快速唤起文本编辑器,或者是压缩包的深度扩展等等。

⚠️ 关于未能上架应用商店的说明

本来,我是想把这个小插件直接打包上架到官方应用商店的,这样一键安装最省事。但遗憾的是,插件的产品形态不太符合当前的上架要求。

目前看来,官方商店对于这类“文件管理器扩展/插件”似乎还没有一套成熟可靠的分发方案和审核政策。在这里也呼吁一下,希望应用商店未来能在这方面放开一些政策。毕竟,丰富且开放的插件生态,对咱们国产桌面操作系统的成长和繁荣是非常有利的!

所以在商店放开之前,大家暂时只能通过下面的方式手动安装了:


安装与编译方法

方法一:直接下载安装(推荐普通用户使用)

1. 下载 deb 包 前往 GitHub Releases 页面下载对应架构的 deb 包:

选择适合你的版本:

  • rabbitvcs-dfm_1.0.0_arm64.deb - ARM64 架构
  • rabbitvcs-dfm_1.0.0_amd64.deb - x86_64 架构

2. 重启文件管理器让插件生效

killall dde-file-manager
dde-file-manager

方法二:源码编译安装(适合喜欢折腾的朋友)

如果你想自己编译或查看源码,也可以按以下步骤操作:

1. 安装基础依赖 确保系统已安装 DDE 文件管理器和 rabbitvcs 命令行核心:

sudo apt install dde-file-manager rabbitvcs-cli

2. 编译并安装插件

git clone https://github.com/pppanghu888/rabbitvcs-dfm/
cd rabbitvcs-dfm
mkdir build && cd build
cmake ..
make
sudo make install

3. 重启文件管理器

killall dde-file-manager
dde-file-manager

安装完成后,找一个 Git 或 SVN 管理的文件夹,右键点击里面的文件,你就能看到 RabbitVCS 的菜单选项啦!

最后

目前这个小插件还是我个人业余在维护,主要是为了解决“从无到有”的问题,可能还存在一些没考虑到的边界小 Bug。

如果你在使用中遇到了问题,或者对文件管理器的右键扩展有什么好点子,欢迎到 GitHub 仓库交流讨论。希望这个抛砖引玉的小东西,能鼓励更多人一起来丰富咱们桌面的插件生态。

**🔗 **项目开源地址: https://github.com/pppanghu888/rabbitvcs-dfm/

svn.png

git.png

Reply Favorite View the author
All Replies
lon
deepin
2026-03-17 17:31
#1

这个可以有,kde有的,咱也得有

Reply View the author
deepin流云
Super Moderator
Community OP
2026-03-17 17:32
#2

https://bbs.deepin.org.cn/post/291338

之前也有大佬分享过GIT角标插件,并且已经上商店了,刚好下面有用户 @花无双 许愿SVN的,大佬帮实现了👍方便的话可以打个包传下应用商店 @商店运营-小七kissing_heart

图片.png

Reply View the author
[^_^]
deepin
2026-03-17 17:38
#3

真~ 棒~!

还支持 SVN 了!

kissing_heart

Reply View the author
商店运营-小七
Moderator
2026-03-17 17:40
#4

来来来,欢迎投递,有啥私聊我~~~~~~~~~~

Reply View the author
天线摆摆
deepin
2026-03-17 17:45
#5
商店运营-小七

来来来,欢迎投递,有啥私聊我~~~~~~~~~~

已私信,请教一下插件的上架流程

Reply View the author
lon
deepin
2026-03-17 17:58
#6

龙下无效果呀,是不是还缺点什么

lon@loongson:~$ qdbus org.google.code.rabbitvcs.RabbitVCS.Checker
Service 'org.google.code.rabbitvcs.RabbitVCS.Checker' does not exist.

Reply View the author
天线摆摆
deepin
2026-03-17 18:03
#7
lon

龙下无效果呀,是不是还缺点什么

lon@loongson:~$ qdbus org.google.code.rabbitvcs.RabbitVCS.Checker
Service 'org.google.code.rabbitvcs.RabbitVCS.Checker' does not exist.

龙心的话如果需要文管插件需要自己编译一下,如果只是 RabbitVCS的话一般安装 RabbitVCScli 和core就有这个dbus 了

Reply View the author
lon
deepin
2026-03-17 18:12
#8
天线摆摆

龙心的话如果需要文管插件需要自己编译一下,如果只是 RabbitVCS的话一般安装 RabbitVCScli 和core就有这个dbus 了

编译打包后,无效果,RabbitVCS cli 和core 都安装了

Reply View the author
花无双
deepin
2026-03-17 19:25
#9
deepin流云

https://bbs.deepin.org.cn/post/291338

之前也有大佬分享过GIT角标插件,并且已经上商店了,刚好下面有用户 @花无双 许愿SVN的,大佬帮实现了👍方便的话可以打个包传下应用商店 @商店运营-小七kissing_heart

图片.png

😯 😬 👍 感谢啊!

Reply View the author
zijinyise
deepin
2026-03-18 09:21
#10

已装,20.9也可以用,大佬厉害kissing_heart

Reply View the author
天线摆摆
deepin
2026-03-18 09:30
#11
lon

编译打包后,无效果,RabbitVCS cli 和core 都安装了

dpkg -L rabbitvcs-dfm 看看插件是否被安装到了正确的目录呢

/usr/lib/架构/dde-file-manager/plugins/extensions/librabbitvcs-dfm.so

Reply View the author
lon
deepin
2026-03-18 10:11
#12
天线摆摆

dpkg -L rabbitvcs-dfm 看看插件是否被安装到了正确的目录呢

/usr/lib/架构/dde-file-manager/plugins/extensions/librabbitvcs-dfm.so

目录没错,只要你写的打包相关的代码没问题,包不应有问题的,怀疑系统 RabbitVCS 包有问题,或更基础的包有问题,或loong下有什么特别

Reply View the author
lon
deepin
2026-03-18 10:16
#13
lon@loongson:~$ dpkg -L rabbitvcs-dfm
/.
/usr
/usr/lib
/usr/lib/loongarch64-linux-gnu
/usr/lib/loongarch64-linux-gnu/dde-file-manager
/usr/lib/loongarch64-linux-gnu/dde-file-manager/plugins
/usr/lib/loongarch64-linux-gnu/dde-file-manager/plugins/extensions
/usr/lib/loongarch64-linux-gnu/dde-file-manager/plugins/extensions/librabbitvcs-dfm.so
/usr/share
/usr/share/doc
/usr/share/doc/rabbitvcs-dfm
/usr/share/doc/rabbitvcs-dfm/changelog.gz
/usr/share/icons
/usr/share/icons/hicolor
/usr/share/icons/hicolor/48x48
/usr/share/icons/hicolor/48x48/apps
/usr/share/icons/hicolor/48x48/apps/icon.png
/usr/share/rabbitvcs-dfm
/usr/share/rabbitvcs-dfm/translations

Reply View the author
天线摆摆
deepin
2026-03-18 10:35
#14
lon
lon@loongson:~$ dpkg -L rabbitvcs-dfm
/.
/usr
/usr/lib
/usr/lib/loongarch64-linux-gnu
/usr/lib/loongarch64-linux-gnu/dde-file-manager
/usr/lib/loongarch64-linux-gnu/dde-file-manager/plugins
/usr/lib/loongarch64-linux-gnu/dde-file-manager/plugins/extensions
/usr/lib/loongarch64-linux-gnu/dde-file-manager/plugins/extensions/librabbitvcs-dfm.so
/usr/share
/usr/share/doc
/usr/share/doc/rabbitvcs-dfm
/usr/share/doc/rabbitvcs-dfm/changelog.gz
/usr/share/icons
/usr/share/icons/hicolor
/usr/share/icons/hicolor/48x48
/usr/share/icons/hicolor/48x48/apps
/usr/share/icons/hicolor/48x48/apps/icon.png
/usr/share/rabbitvcs-dfm
/usr/share/rabbitvcs-dfm/translations

那只能调试分析一下了,可以分析文管的日志看看,另外v25的支持目前好像还有一些问题,后续我看看如何适配一下

Reply View the author
lon
deepin
2026-03-18 10:49
#15
天线摆摆

那只能调试分析一下了,可以分析文管的日志看看,另外v25的支持目前好像还有一些问题,后续我看看如何适配一下

具体怎么调试,我还不懂,你说怎么操作,我照做

Reply View the author
天线摆摆
deepin
2026-03-18 11:08
#16
lon

具体怎么调试,我还不懂,你说怎么操作,我照做

打开文管日志后查看一下这个加载效果如何,注意开启qedebug级别的日志喔,文管的日志在journalctl -f | grep dde-file-manager
image.png

Reply View the author
夜夜笙歌free
deepin
2026-03-18 13:22
#17
deepin流云

https://bbs.deepin.org.cn/post/291338

之前也有大佬分享过GIT角标插件,并且已经上商店了,刚好下面有用户 @花无双 许愿SVN的,大佬帮实现了👍方便的话可以打个包传下应用商店 @商店运营-小七kissing_heart

图片.png

由于依赖Qt5,目前还不支持v25,要等作者适配一下

Reply View the author
lon
deepin
2026-03-18 18:11
#18
夜夜笙歌free

由于依赖Qt5,目前还不支持v25,要等作者适配一下

忘了这事了,我的也是V25,我的情况,或许也是这个原因

Reply View the author
lon
deepin
2026-03-18 18:12
#19
天线摆摆

打开文管日志后查看一下这个加载效果如何,注意开启qedebug级别的日志喔,文管的日志在journalctl -f | grep dde-file-manager
image.png

Reply View the author