ОС: Kubuntu 18.04
Файловый менеджер по умолчанию, дельфин, имеет средство для использования Сервисных меню, несколько как Пользовательские действия в thunar и Действиях Наутилуса или pcmanfm.
Заключение в кавычки отсюда:
В KDE-говорят, "servicemenu" является специальной записью, которая появляется в контекстном меню (или другой основанный на контексте интерфейс) для файла (или для каталога), в зависимости от типа файлов, которые выбраны.
Больше информации доступно здесь.
Узнать немного больше об этом средстве сделало мое собственное Сервисное меню названным "Открытым с Kate", ~/.local/share/kservices5/ServiceMenus/open-file.desktop, который я хочу использовать для сценариев представления и редактирования в моем ~ / папку мусорного ведра когда у дельфина.
[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;
сервисное меню функционально. "Открытый с 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;
работа в контексте "Открытого с Kate"?
Поскольку Вы нашли в Вашем vim.desktop
файл, существует названный подтип x-shellscript
. Однако его тип не text
но application
, т.е. application/x-shellscript
.
Хотя "тип MIME" не доступен как столбец у дельфина (в противоположность, например, Thunar), тип MIME отображен в некоторых диалоговых окнах, например, когда Вы щелкаете правой кнопкой по файлу, и выбор "Открывают With..." (Рядом с флажком "Remember association..." внизу) и в диалоговом окне свойств, когда Вы выбираете "Опции Типа файла" (на самой вершине).
Причина, почему file
сообщаемый другой тип MIME - то, что это использует другую базу данных. Большинство популярных настольных сред в наше время более или менее придерживается freedesktop.org (раньше известный как X Desktop Group, XDG) спецификации, которые включают Настольные записи и базу данных Shared MIME. Для нахождения MIME вводят согласно той базе данных, можно использовать xdg-mime
инструмент от xdg-utils
:
xdg-mime query filetype [file]