在银河麒麟桌面版中,需通过peony文件管理器扩展机制为右键菜单添加自定义功能:编译qt插件可实现桌面空白处及多场景全局菜单;修改menu-definition.json可快速启用系统内置禁用项;.desktop文件仅限文件管理器内按类型添加动作。

在银河麒麟桌面版中,需要为桌面空白处或文件管理器内右键菜单添加“快速启动终端”“压缩到当前目录”等自定义功能,而不是仅靠拖拽图标或改快捷方式就能实现——这些操作必须深入到Peony文件管理器的扩展机制中,否则右键菜单永远只显示系统预置项。
通过编译Qt插件添加桌面级右键菜单
该方法直接向Peony-Qt主进程注入动态库,可控制桌面空白处、文件夹内、甚至选中多个文件时的上下文菜单,支持图标、子菜单和运行时状态判断,是唯一能实现在桌面空白处添加“打开软件商店”这类全局菜单的方式。
第一步:创建工作目录并解压官方示例插件
执行命令:mkdir -p ~/peony-plugin && cd ~/peony-plugin,再将下载的peony-qt-menu-plugin-example.tar.gz放入此目录,运行tar -zxvf peony-qt-menu-plugin-example.tar.gz解压。
第二步:安装编译依赖
执行pkg-config --cflags peony检查缺失项;若报错,依次安装:sudo apt install libpeony-dev libpoppler-qt5-dev libudisks2-dev libnotify-dev。缺少libpeony-dev会导致qmake无法识别Peony头文件,编译必然失败。
第三步:生成构建文件并编译
运行qmake生成Makefile;确认无警告后执行make。成功后输出libpeony-qt-menu-plugin-example.so——这个.so文件就是菜单插件本体,名称和路径不能随意修改。
第四步:安装插件并强制加载
执行sudo make install,默认复制到/usr/lib/x86_64-linux-gnu/peony-extensions/;若未生效,手动复制:sudo cp libpeony-qt-menu-plugin-example.so /usr/lib/x86_64-linux-gnu/peony-extensions/。【必须注销当前用户或重启系统,仅killall peony无法加载新插件】
用JSON配置启用已内置但禁用的功能
适用于想快速启用“在终端中打开”“计算文件哈希”这类系统自带却默认关闭的菜单项,无需写代码、不需编译,改完即用,且误操作可秒级回退。
方法一:编辑系统级配置文件
打开终端,执行sudo nano /usr/share/peony-extensions/menu-definition.json;找到目标功能块(如"name": "open-in-terminal"),将"enabled": false改为"enabled": true;保存退出后执行killall peony,Peony自动重启并加载新配置。
方法二:优先使用用户级配置避免权限风险
先创建用户配置目录:mkdir -p ~/.local/share/peony-extensions;复制系统配置:cp /usr/share/peony-extensions/menu-definition.json ~/.local/share/peony-extensions/;编辑该副本,启用所需项;最后执行killall peony。这样即使改错,删掉~/.local/share/peony-extensions即可恢复默认。
通过.desktop文件为文件类型添加右键动作
该方式只在Peony文件管理器内对特定文件或目录生效,比如右键一个文本文件时出现“用Vim打开”,右键文件夹时出现“打包为ZIP”,不能出现在桌面空白处。
创建动作配置目录:mkdir -p ~/.local/share/file-manager/actions。
新建.desktop文件:nano ~/.local/share/file-manager/actions/open-terminal-here.desktop。
填入以下内容(注意替换Exec路径):
[Desktop Entry]<br>Type=Action<br>Name=在当前目录打开终端<br>Icon=utilities-terminal<br>Profiles=on-directory;<br>[X-Action-Profile on-directory]<br>Exec=gnome-terminal --working-directory=%f<br>MimeTypes=inode/directory;
保存后执行killall peony,进入任意文件夹右键即可看到新菜单项。如果没出现,检查MimeTypes是否匹配目标对象类型,inode/directory对应文件夹,text/plain对应文本文件。











