Про DCOP

Старожилы помнят, как легко и просто было во времена KDE 3.5, и как быстро писались однострочники вроде

dcop amarok Player pause

которая вызывала соответствующее действие в amarok.

В KDE 4 от старой системы DCOP отказались в пользу единой для всех DE и системы вообще шины DBUS. Главное преимущество этой шины перед DCOP состоит в том, что она, во-первых, нормально работает с несколькими объектами на шине, а во-вторых, умеет посылать сигналы нескольким объектам сразу. Плюс она теоретически может быть транслирована в удалённые вызовы XML-RPC, хотя я не видел приложений, которые бы этим пользовались на практике, разве что PulseAudio вроде этим занимается.

А как быть с полюбившимися однострочниками? Ничего страшного, DBUS предлагает несколько более сложный, но вполне удобный инструментарий для создания сообщений из командной строки. Команда зовётся qdbus. Запустив amarok, откройте терминал и выполните команду:

qdbus

Получите список объектов на вашей шине (выполните sudo qdbus — и получите другой список, рутовый). Найдите в нём org.kde.amarok — это и есть ваш amarok. Также, как и в случае dcop, запустим:

qdbus org.kde.amarok

Получим список интерфейсов, прямо почти как в dcop, только нотация другая. Ну и наконец, доберёмся до методов:

qdbus org.kde.amarok /Player

Получим список методов, которых можно вызвать. Например, для вызова Пуск/Пауза, наберём:

qdbus org.kde.amarok /Player org.freedesktop.MediaPlayer.PlayPause

Вуаля.

P.S. Думаете, гнома это не касается? :)

qdbus org.gnome.Listen /org/gnome/listen org.gnome.Listen.play_pause

:)

спасибо за

спасибо за статью. не знал :)

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Допускаются только следующие теги HTML: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Строки и параграфы переносятся автоматически.

Подробнее о форматировании