如果我右键单击某个东西,是否可以将新项目添加到 Dolphin(KDE Plasma)中的上下文菜单中?
我想写一个脚本移至应用程序,将显示仅有的如果我右击。桌面文件然后它会将其移动到/usr/共享/应用程序/文件夹。或者有没有更快的方法移动。桌面文件到/usr/共享/应用程序/文件夹。
答案1
您可以创建一个服务菜单做你想做的事。
- 创建文件夹〜/.local/share/kservices5
- 创建文件夹~/.local/share/kservices5/服务菜单
- 在~/.local/share/kservices5/服务菜单创建一个名为的纯文本文件移动桌面
将以下内容粘贴到移动桌面
[Desktop Action move-file]
Exec=/usr/lib/x86_64-linux-gnu/libexec/kf5/kdesu mv "%U" /usr/share/applications
Name=Move file
Icon=document-send
[Desktop Entry]
Actions=move-file
MimeType=application/x-desktop;
ServiceTypes=KonqPopupMenu/Plugin
Type=Service
X-KDE-Priority=TopLevel
使用MimeType=application/x-desktop;
确保仅当目标文件是。桌面文件。
这是 Dolphin 上下文菜单的图片前创建服务菜单:
下面的截图中后创建服务菜单时,你会看到一个附加条目,移动文件:
点击移动文件会提示你输入密码,因为你想将文件移动到/usr/share/应用程序。
输入密码后,所选文件将被移动到/usr/share/应用程序:
请注意,所有者与已存在的 .desktop 文件不同。您需要按照自己的选择来修复此问题:
如果您需要更改所有权/权限,您可以修改如下Exec=
行(以更改所有权):
Exec=printf %U | xsel -b -i && /usr/lib/x86_64-linux-gnu/libexec/kf5/kdesu mv "%U" /usr/share/applications && cd /usr/share/applications && /usr/lib/x86_64-linux-gnu/libexec/kf5/kdesu chown root:root $( basename $(xsel -b -o) )
额外的步骤包括使用printf和響鳴将文件路径放入剪贴板,然后使用基名删除文件名以外的所有内容。当然,您还需要kdesu
再次执行此操作!我不知道是否有更短的方法!
答案2
在 KDE Plasma 下,最简单的解决方案可能是添加新的“打开方式”条目。为此,请转到Configure Desktop( systemsettings5
) > Applications> File Associations。
然后使用搜索字段选择相关文件类型;它将提供 mimetype 名称和文件扩展名过滤器的结果。输入.kdelnk
或.desktop
将显示 mime-type application/x-desktop
。
在面板中Application Preference Order
,单击按钮+ Add配置新程序。默认情况下,新条目被选为默认程序;您需要将脚本移动到顺序中更合适的位置。