Линуксы : D-Bus - как я сделал запуск keyboard shorcuts для Crow Translate

D-Bus - как я сделал запуск keyboard shorcuts для Crow Translate

Пользователи Linux наверняка неоднократно сталкивались с упоминанием сервиса DBus. Эта система появляется в журналах работы различных программ, в руководствах по конфигурации ОС, а при запуске системы вы можете обнаружить загружающийся процесс DBus-daemon.

Что такое D-Bus?

D-Bus или Desktop Bus - это система, которая используется в основном в операционной системе Linux для того, чтобы различные приложения и сервисы могли общаться между собой. Но с помощью Dbus могут взаимодействовать не только приложения, но и пользователи с приложениями. По сути, DBus состоит из управляющего демона, API для языков программирования, с помощью которых приложения могут взаимодействовать с системой и консольного клиента.

Каждое приложение, которое хочет работать с DBus, должно зарегистрировать свой сервис в демоне DBus. Поскольку все приложения и сервисы могут беспрепятственно обмениваться сообщениями, этот способ еще называется шина DBus. На шине каждое приложение имеет свой адрес, а каждое сообщение имеет своего отправителя и адресата. Приложение может обмениваться сообщениями даже не с одним, а несколькими приложениями одновременно. Каждое приложение может отправлять сообщения и прослушивать входящие.

Этот механизм дает системе огромную гибкость, например, программы могут подписываться на сообщения о подключении новых устройств, изменении настроек, изменении состояния системы и многое другое. Все это с помощью стандартизированного интерфейса DBus, что гарантирует совместимость. Также программы могут регистрировать свои сервисы таким образом, чтобы программа запускалась только при поступлении сообщений и не работала в фоне.

Доступные объекты D-Bus

Обьекты D-Bus описаны на сайте freedesktop.org. Но лучший способ узнать какие сервисы поддерживает система - это воспользоваться программой qdbusviewer. В окружении рабочего стола kde она поставляется по умолчанию, в Gnome и других ее можно установить из пакета:

$ sudo apt install qttools5-dev-tools

Crow Translate вешаем событие

Первое

запускаем qdbusviewer, и смотрим что нам нужно:

Второе

в Settings > Keyboard > Keyboard Shortcuts > Custom Shortcuts, вешаем на кнопочки события:

dbus-send --type=method_call --dest=io.crow_translate.CrowTranslate /io/crow_translate/CrowTranslate/MainWindow io.crow_translate.CrowTranslate.MainWindow.translateSelection
dbus-send --type=method_call --dest=io.crow_translate.CrowTranslate /io/crow_translate/CrowTranslate/MainWindow io.crow_translate.CrowTranslate.MainWindow.open


Как обычно - все просто. Спасибо.


Ну нравиться мне Crow-Translate, google | yandex есть, прокси через что и куда бегать есть, вот только горячих кнопочек не хватало, но все теперь на месте.



Вы только посетили наш сайт, КОММЕНТИРОВАНИЕ будет доступно через несколько минут.
возможно у Вас отключен javascript, если включен - просто обновите страницу