Под разделом [Desktop Entry]
должна быть строка, указывающая тип файла, для которого он отображается: MimeType=
.
Чтобы ограничить это файлами mp4, это должно быть MimeType=video/mp4
. Чтобы ограничить все видео: MimeType=video/*
; к видео И папкам:MimeTypevideo=video/*;inode/directory;
.
Также в разделе [Desktop Entry]
нужно иметь Type=Service
(NOT Application
) и строку Actions=
, где необходимо указать имя или имена действий или действий меню сервиса, каждое действие которых является отдельным разделом этого файла с отдельным name
, вида [Имя действия рабочего стола]
.
Строка Exec=
должна быть установлена под каждым разделом [Имя действия рабочего стола]
(NOT в разделе [Desktop Entry]
).
Вот пример с несколькими действиями.
[Desktop Entry]
Type=Service
Name=Download subtitles (filebot)
ServiceTypes=KonqPopupMenu/Plugin
Actions=en;fr;ro;it;
MimeType=video/*;inode/directory;
Icon=gnome-subtitles
Encoding=UTF-8
X-KDE-Priority=TopLevel
X-KDE-Submenu=Subtitles
[Desktop Action en]
Exec=filebot -get-subtitles -rename -non-strict %f
Icon=gnome-subtitles
Name=English (filebot)
Termial=true
[Desktop Action fr]
Exec=terminator -e "filebot -get-subtitles --lang fr -rename -non-strict %f" -p ttt
Icon=gnome-subtitles
Name=Français (filebot)
[Desktop Action ro]
Exec=terminator -e "filebot -get-subtitles --lang ro -rename -non-strict %f" -p ttt
Icon=gnome-subtitles
Name=Româneşte (filebot)
[Desktop Action it]
Exec=terminator -e "filebot -get-subtitles --lang it -rename -non-strict %f" -p ttt
Icon=gnome-subtitles
Name=Italiano (filebot)
, который даст это для видео и каталогов:
У вас может быть одно или несколько действий.
Другие настройки в разделе [Desktop Entry]
:
X-KDE-Priority=TopLevel
будут отображать действие (или его группу: см. ниже) непосредственно в меню, как на изображении выше; без этого он будет в группе «Действия».
X-KDE-Submenu=something
сгруппировки в одном меню-группе под названием «что-то» все действия из файлов, в которых есть эта строка. (Даже если действия находятся в разных файлах меню службы, как описано в этот вопрос; также см. этот вопрос.)
Зависит от оболочки. например. В Bash есть ключевое слово time
, которое определяет время всего конвейера. Внешняя реализация time
будет только время A
в вашем примере. Обходной путь может заключаться в явном запуске дополнительной оболочки :
time sh -c "A | B"
Вы также можете использовать подоболочку, например.
time ( A | B )
по крайней мере, когда time
является встроенным bash (, но тогда подоболочка бесполезна ). Если вы хотите использовать время (1)команду (см. это ), вам лучше явно запустить некоторые sh -c
, например , на которые ответил iikkachu