Контекстное меню KDEМногие операции вроде “замаунтить флешку”, “скопировать файл” и т.п. ежедневно-рутинные действия я не задумываясь совершаю в консоли (благодаря yakuake она всегда под рукой). Но перед людьми бывает “неудобно” – они видя все эти “магические” манипуляции ещё больше укрепляются в мысли, что “эти ваши линуксы” не для “наших широт”.

Для того чтобы немного размазать негативные впечатления добавил некоторые действия в контекстное меню “проводников”.

Первое что надо сделать: понять ГДЕ необходимо приложить руки.

$ kde4-config --path services
/home/miracle/.kde/share/kde4/services/:/usr/share/kde4/services/

В одной из этих директорий создаём файл my-super-actions.desktop подобного содержания:

[Desktop Entry]
Type=Service
ServiceTypes=KonqPopupMenu/Plugin
MimeType=video/*;
Actions=CompressMovie4Nokia;CompressMovie4HTC;GetSubtitles;
Encoding=UTF-8

[Desktop Action CompressMovie4Nokia]
Name=Compress for Nokia
Icon=phone
Exec=/bin/sh -c 'cd "`dirname "%f"`" \
&& ffmpeg -y -i "`basename "%f"`" -ac 1 -ar 22050 -vcodec mpeg4 -s 176x144 -r 24 \
-b 118k -ab 32k -aspect 11:9 "nokia-`basename "%f" .avi`.mp4" \
&& kdialog --title "Compress Movie" --passivepopup "Movie `basename "%f"` compressed"'

[Desktop Action CompressMovie4HTC]
Name=Compress for HTC
Icon=pda
Exec=/bin/sh -c 'cd "`dirname "%f"`" \
&& ffmpeg -y -i "`basename "%f"`" -s 320x240 -r 22.5 -ac 2 "htc-`basename "%f" .avi`.avi" \
&& kdialog --title "Compress Movie" --passivepopup "Movie `basename "%f"` compressed"'

[Desktop Action GetSubtitles]
Name=Download subtitles
Icon=draw-text
Exec=/bin/sh -c 'cd "`dirname "%f"`" \
&& subtitles `basename "%f"` -l en \
&& kdialog --title "Subtitles" --passivepopup "Subtitles for movie `basename "%f"` downloaded"'

Затем выполняем:

$ kbuildsycoca4

И наблюдаем свежедобавленные пункты в меню “Actions”.

В коде всё наглядно, отдельного упоминания наверное стоит только тот факт, что /bin/sh нужен лишь для того, чтобы запустить более одной команды, как в моём случае – если команда одна, то запуск шелла будет лишним.

Ссылка по теме: Desktop Entry Specification

Добавляем действия в контектное меню KDE
Tagged on:

Leave a Reply