想在银河麒麟桌面的右键菜单里加点自己的东西?比如快速启动某个应用,或者执行一个常用脚本。这事儿其实不难,核心就是扩展Peony文件管理器的上下文菜单。下面咱们就聊聊几种主流方法,从硬核开发到轻量配置,总有一款适合你。
一、编译Qt插件:深度定制之选
如果你有C++和Qt的开发基础,并且希望菜单项能实现复杂的交互逻辑,那么通过编译安装Qt插件是最彻底的方式。这相当于为Peony开发一个“外设”。
首先,得把开发环境准备好。创建一个工作目录,比如就叫peony,然后把示例插件项目的压缩包解压进去。命令很简单:
mkdir peony && cd peony
tar -zxvf peony-qt-menu-plugin-example.tar.gz
接下来是关键一步:安装编译依赖。先运行pkg-config --cflags peony探探路,看看缺什么。通常,下面这几个开发包是必须的:
sudo apt install libpeony-dev
sudo apt install libpoppler-qt5-dev
sudo apt install libudisks2-dev
sudo apt install libnotify-dev
依赖搞定后,编译就水到渠成了。进入解压后的项目目录,先用qmake生成Makefile,再执行make进行编译。顺利的话,你会得到一个名为libpeony-qt-menu-plugin-example.so的动态库文件。
最后,通过sudo make install命令将插件安装到系统目录。完成这一步后,记得注销当前用户或者直接重启系统,新的右键菜单项才会生效。
二、修改JSON配置:轻量启用内置功能
不想碰代码?没问题。Peony本身已经内置了不少功能,只是默认没有开启。通过修改它的JSON配置文件,就能轻松激活这些“隐藏技能”,比如“在终端中打开”或者“计算文件哈希”。
首先找到配置文件的位置。它们通常放在两个地方:系统级目录/usr/share/peony-extensions/或者用户级目录~/.local/share/peony-extensions/。在里面找找以.json结尾的文件。
动手修改前,强烈建议先备份原文件:cp menu-definition.json menu-definition.json.bak。这样万一改错了,还能轻松回滚。
然后用你熟悉的文本编辑器打开目标JSON文件。核心操作就是找到你想启用功能对应的配置块,将其中的"enabled": false字段改为"enabled": true。同时确认该配置项的"type"值是"menu"或"action"。
保存文件后,让Peony重新加载配置。最直接的方法是运行killall peony结束它的进程,之后在桌面任意位置点一下右键,Peony会自动重启并应用新的菜单配置。
三、调用GSettings:启用标准脚本扩展
还有一种更“系统原生”的办法,就是利用GNOME兼容的dconf配置系统(通过gsettings命令操作)。这种方法特别适合启用那些系统预置的、通用的右键扩展模块,比如“压缩到…”或“发送到邮件收件人”。
先确认一下环境。运行gsettings get org.mate.interface enable-animations,只要能正常返回值,说明会话环境没问题。接着,可以用gsettings list-recursively | grep -i menu命令,查看所有与菜单相关的可用配置项。
以启用经典的“在终端中打开”脚本功能为例。首先,设置脚本的存放目录:
gsettings set org.mate.caja.preferences scripts-folder '~/.local/share/caja/scripts'
请确保这个目录(~/.local/share/caja/scripts)是存在的。
然后,开启脚本支持的总开关:
gsettings set org.mate.caja.preferences enable-scripts true
这个设置一旦生效,所有放在上述脚本目录下的可执行文件,都会出现在右键菜单的“脚本”子菜单里。
我们来验证一下。在~/.local/share/caja/scripts/目录下,新建一个脚本文件,比如叫open-terminal.sh。文件内容可以很简单:
#!/bin/bash
mate-terminal
别忘了给它加上执行权限:chmod +x open-terminal.sh。
现在,在桌面或文件夹里右键,你应该就能在菜单里看到“脚本”选项,点开里面就有你的open-terminal.sh了。
总结来说,三种方法各有侧重:Qt插件适合深度定制,JSON配置适合快速启用内置功能,而GSettings则是管理标准脚本扩展的便捷途径。根据你的实际需求和技能树,选对方法就能事半功倍。
