操作系统:库本图 18.04
默认文件管理器 dolphin 可以使用服务菜单,有点像 thunar 和 pcmanfm 中的自定义操作或 Nautilus 操作。
从这里引用:
在 KDE 中,“服务菜单”是一个特殊条目,它出现在文件(或目录)的上下文菜单(或其他基于上下文的界面)中,具体取决于所选文件的类型。
更多信息可在此处获得。
要了解有关此设施的更多信息,我制作了自己的名为“Open with Kate”的服务菜单,~/.local/share/kservices5/ServiceMenus/open-file.desktop,我想用它来查看和编辑我的脚本~在 Dolphin 中时的/bin文件夹。
[Desktop Action open-file]
Exec=kate "%U"
Name=Open with Kate
Icon=document-open
[Desktop Entry]
Actions=open-file
#Works
#MimeType=all/all
#Works
MimeType=text/plain;
#Doesn't work
#MimeType=text/x-shellscript;
ServiceTypes=KonqPopupMenu/Plugin
Type=Service
X-KDE-Priority=TopLevel
如果我使用MimeType=all/all
或MimeType=text/plain;
服务菜单功能正常。“Open with Kate”条目存在且有效:
但我想知道是否可以通过将 MimeType 从all/all
或更改text/plain
为更合适的内容来缩小此菜单的范围。
$ file --mime timestamp.sh
timestamp.sh: text/x-shellscript; charset=us-ascii
$
所以我尝试使用MimeType=text/x-shellscript;
希望当我右键单击纯文本文件或脚本时会出现“用 Kate 打开”条目,但结果是“用 Kate 打开”条目消失了:
但是x-shellscript
存在于我系统上的至少一个.desktop文件中,vim.desktop(接近 grep 输出的末尾):
$ grep -i shellscript /usr/share/applications/*.desktop
/usr/share/applications/vim.desktop:MimeType=text/english;text/plain;text/x-makefile;text/x-c++hdr;text/x-c++src;text/x-chdr;text/x-csrc;text/x-java;text/x-moc;text/x-pascal;text/x-tcl;text/x-tex;application/x-shellscript;text/x-c;text/x-c++;
$
那么为什么MimeType=text/x-shellscript;
在“Open with Kate”的上下文中不起作用呢?
正如您在
vim.desktop
文件中发现的那样,有一个名为x-shellscript
. 但是,它的类型不是text
butapplication
,即application/x-shellscript
。尽管“MIME 类型”在 Dolphin 中不能作为列使用(与 Thunar 相对),但 MIME 类型会显示在某些对话框中,例如,当您右键单击文件并选择“打开方式...”时(在底部的“记住关联...”复选框)和属性对话框中,当您选择“文件类型选项”(在最顶部)时。
报告不同 MIME 类型的原因
file
是它使用不同的数据库。现在大多数流行的桌面环境或多或少都遵循freedesktop.org(以前称为 X Desktop Group,XDG)规范,其中包括桌面条目和共享 MIME 数据库。要根据该数据库查找 MIME 类型,您可以使用以下xdg-mime
工具xdg-utils
: