воскресенье, 4 января 2009 г.

Linux. Добавляем новый пункт в контекстное меню KDE

Надоело мне то, что Амарок не умеет музыку добавлять папками. То есть он, конечно, умеет - из него самого много что можно сделать. Но у меня обычно пара окон открыта с музыкой - я из них добавляю, а в Амароке метаться между ними лень. В Конквероре все наглядей и проще.

В общем добавлять он умеет только файлы, и то - не дай бог там лежит картинка - приходится выделение убирать с неё, а то нет пункта в меню.

Достало.

Решил добавить новый пункт в меню KDE - добавление папки и вложенных подпапок в Амарок. Для этого достаточно иметь более-менее прямые руки и пару свободных минут. Даже не так. Так как это KDE - руки вообще могут расти из одного места - никаких проблем не возникнет =)

Сама инструкция лежит тут:
http://developer.kde.org/documentation/tutorials/dot/servicemenus.html

У меня только пример.
Итак, суть в том, что есть у вас папка с этими пунктами меню. Вероятно одна из трех:
/opt/kde3/share/apps/konqueror/servicemenus/
/usr/share/apps/konqueror/servicemenus/
/home/user/.kde3/share/apps/konqueror/servicemenus/

Выбираете одну. Я взял "/home/diman/.kde/share/apps/konqueror/servicemenus/"

Создаете в выбранной папке файл "bla-bla.desktop", где бла-бла любое имя. Отлично - пол-дела сделано.

Заносим в него сей текст:

[Desktop Entry]
ServiceTypes=inode/directory
Actions=addDir

[Desktop Action addDir]
Name=Add to Amarok
Icon=/usr/share/icons/hicolor/16x16/apps/amarok.png
Exec=/bin/sh -c "find %U -iname *mp3 -exec amarok -e {} \;"

Суть текста.
[Desktop Entry] это описание, указывающее что появится пункт меню только при нажатии на Папки (директории то бишь, а не файлы). А так же указывает что надо бы вызывать "процедуру" addDir при нажатии на пункт меню.
[Desktop Action addDir] это как-бы "процедура". Условно очень. В ней мы присваиваем нашему действию имя в меню (Name), выбираем картинку (Icon; я через команду find нашел перво-попавшуюся в системе). Наконец Exec - команда, которая будет выполняться, она заключена в кавычки. Если команда одна - кавычки не нужны. И вообще будет выглядеть так:
Exec=find %U -iname *mp3 -exec amarok -e {} \;

Ну да я на всякий заключил. А команда Exec это обычная bash-команда.
Сохраняете файл и KDE моментально подхватывает ваш скрипт.

Правда есть один большой нюанс - она не работает в окнах с адресом "system:/media/hda5". Т.е. путь должен быть стандартный, типа: "/home/music"

Вот так - эта штуковина добавляет mp3-файлы из нужной папки. Надо еще придумать как приделать остальные типы файлов (ogg, flac). Ну а так суть, думаю - понятна.

Удачи :)

Если вам помогла эта статья - оставьте комментарий! Они доступны даже не зарегистрированным пользователям.

Комментариев нет: