Почему делает “MimeType=text/x-shellscript”; не работают в этом .desktop файле?

ОС: 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" запись присутствует и функциональна:

Open with Kate is seen

Но я задался вопросом, мог ли я сузить объем этого меню путем изменения MimeType от all/all или text/plain к чему-то более соответствующему.

$ file --mime timestamp.sh
timestamp.sh: text/x-shellscript; charset=us-ascii
$

Таким образом, я пытался использовать MimeType=text/x-shellscript; надеясь, что "Открытый с Kate" запись появилась бы, когда я щелкнул правой кнопкой по файлам простого текста или сценариям, но результат состоит в том, что "Открытый с Kate" запись просто исчезает:

Open with Kate is absent

Но 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"?

3
задан 3 September 2019 в 15:35

1 ответ

Поскольку Вы нашли в Вашем 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]
3
ответ дан 1 December 2019 в 16:15

Другие вопросы по тегам:

Похожие вопросы: