将项目添加到 Dolphin 的上下文菜单中

tom*_*msk 6 dolphin kubuntu context-menu plasma-5

如果我右键单击某个东西,是否可以将新项目添加到 Dolphin (KDE Plasma) 的上下文菜单中?

我想制作一个名为Move to applications的脚本,只有当我右键单击.desktop文件时才会显示该脚本,然后它将其移动到/usr/share/applications/文件夹。或者是否有更快的方法将.desktop文件移动到/usr/share/applications/文件夹。

DK *_*ose 8

您可以创建一个服务菜单来执行您想要的操作。

  • 创建文件夹~/.local/share/kservices5
  • 创建文件夹~/.local/share/kservices5/ServiceMenus
  • ~/.local/share/kservices5/ServiceMenus创建一个名为move.desktop的纯文本文件

将以下内容粘贴到move.desktop 中

[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
Run Code Online (Sandbox Code Playgroud)

使用MimeType=application/x-desktop;可确保仅当目标文件是.desktop文件时才能看到此上下文菜单条目。

这是创建服务菜单之前Dolphin 的上下文菜单的图像:

创建服务菜单之前的 Dolphin 上下文菜单

在创建服务菜单截取的以下屏幕截图中您将看到一个附加条目Move file

注意移动文件条目

单击“移动文件”将提示您输入密码,因为您要将文件移动到/usr/share/applications 中

需要密码

提供密码后,所选文件将移动到/usr/share/applications

文件现在从其原始位置删除,现在位于 */usr/share/applications*

请注意,所有者与已有的 .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) )
Run Code Online (Sandbox Code Playgroud)

附加步骤包括使用printfxsel将文件路径放入剪贴板,然后使用basename去除除文件名之外的所有内容。当然,你会kdesu再次需要!不知道有没有更短的方法!

  • 如果有人出于某种原因仍在使用 KDE4 中的 Dolphin,则创建桌面文件的目录路径为“~/.kde/share/kde4/services/ServiceMenus”。 (2认同)