Недавно, всвязи с некоторой неприятностью, я чисто случайно узнал про такую штуку как DCOP. Попробовав ее в деле, я узрел довольно интересный функционал, коим хочу поделиться с читателями, которые выбрали в качестве своего "жизненного пути" KDE 3.5. В унылом KDE 4 этот модуль заменили на D-Bus, на который мне срать. Итак, товарищи красноглазики, начинаем:
Обратимся к вики, так как более точных определений сложным понятиям никто не даст. DCOP (от Desktop COmmunication Protocol) — легковесная система коммуникации процессов, а также программных компонентов. Основная цель этой системы — обеспечивать межпроцессное взаимодействие и распределять сложные задачи. Таким образом DCOP — система управления, позволяющая приложениям или скриптам использовать другие приложения.
Почти в любом приложении поддерживаются минимальные интерфейсы DCOP. Приложения самого KDE, естественно, поддерживают их в большем объеме, именно они нам интересны. Приложения не KDE имеют как минимум команду закрытия, что обычно от них и требуется. Существует консольная утилита `dcop`, которой мы и будем все делать. Так же есть гуевый `kdcop`, но смысла использовать его нет, так как он не позволяет даже соединяться по SSH, а это одна из самых отличных возможностей DCOP. Но можно его использовать в качестве справочника, если вы любитель клацать мышкой. Консольный `dcop`, к слову, обладает всеми возможностями.
Команды DCOP записываются через пробел. Если команда не закончена, выдается список возможных окончаний. Например для смены обоев в списке обоев KDE можно воспользоваться одной из строчек
dcop kdesktop KBackgroundIface changeWallpaper
dcop kdesktop KBackgroundIface currentWallpaper 1
Чаще всего необходимо переключать музыку в любимом amarok, не вставая с кровати, или же переключать музыку на удаленной машине. Хочу сказать, что использование DCOP по SSH немного отличается от простого десктопного. Отличие заключается в том, что перед командой вызова dcop необходимо определить дисплей. Делается это приписыванием DISPLAY=:0 перед командой. Что-то типа того:
DISPLAY=:0 dcop amarok player play
Список команд плеера amarok доступен по dcop amarok player. Там их действительно много, все приводить не буду. Можно полностью управлять плеером, останавливать, перематывать, выводить название трека, год, исполнителя, мешать плейлист и еще много всего интересного. И не забываем про DISPLAY=:0, когда делаем это по SSH.
Несколько неплохих штук у амарока:
dcop amarok player nowPlaying - выводит текущую композицию
dcop amarok player coverImage - скажет адрес, где найти текущую обложку
dcop amarok player volumeUp (volumeDown) - повысить(понизить) громкость
dcop amarok player lyrics - вывести текст играющей песни
(если включен Lyrc и он активен)