← All posts tagged KDE

С управлением настройками планшетов wacom в kde всё немного грустно. В KDE4 есть более-менее нормальный модуль для этого, но 4е кеды вроде как уходят в прошлое. В Plasma 5 модуль есть, но недопортирован и хромает на обе ноги.
При этом ни тот, ни другой (и, насколько я знаю, гномовский тоже?) не умеют автоматом переключать профили настроек при переключении окон. И ещё они не умеют управлять режимами кольца на планшете (intuos pro).
А если у вас не кеды и не гном, а какой-нибудь lxde, то всё совсем грустно — остаётся только баш-скриптами xsetwacom запускать.
В итоге глюки кде-шного демона довели меня до того, что я сел и написал свой.
github.com
Тут есть несколько вещей:
* Пакет wacom-daemon содержит библиотеку, в которой реализована основная часть логики, и запускалки для этой библиотеки. hswcmcli — тестовая утилита, можно например с командной строки профили планшета переключать. hswcmd — демон, работающий на основе своего конфига (в yaml-формате), умеет автоматом переключать профили.
* Пакет xmonad-wacom содержит модули для автоматического переключения профилей настроек планшета при переключении текущего окна для XMonad. Там есть примеры конфигов xmonad. Поддерживается как интеграция с KDE-шным демоном через dbus, так и самостоятельная работа при помощи библиотеки wacom-daemon. Ещё показывает сообщения о перелкючении профилей через libnotify.
Всё это работает так: запускается демон (в случае xmonad — отдельный поток в рамках самого xmonad, в случае hswcmd — в нём), который помнит текущий профиль настроек, через udev отлавливает подключение планшета и при этом запускает xsetwacom с правильными параметрами. Этому демону через хаскельное API можно сказать "поменяй профиль", он запустит xsetwacom и запомнит новый профиль. Пользоваться этим API можно из XMonad (оконный менеджер сам знает, когда окна переключаются) или из hswcmd (он слушает иксовые события переключения окон). Ну или какие-нибудь ещё программы могут ту же библиотеку использовать, теоретически.
Т.е. если используется xmonad, то можно эту штуку интегрировать в xmonad, и больше ничего запускать не надо. Если используется какой-нибудь там опенбокс, то можно при старте иксов запускать hswcmd.
Всё это в процессе разработки и хреново документировано, но если сильно хочется можно пробовать.

Конфигурационные файлы современных KDE-приложений обычно называются ${appname}.rc. Почему так? Потому что как-то так сложилось, что в линуксах раньше (да и сейчас зачастую) вообще все подряд конфиги назывались ${чтонибудь}rc. А почему в линуксах они так назывались? Потому что так они назывались в старых юниксах. А почему они там так назывались? Потому что они так назывались в операционках, которые были распространены до юниксов. А почему там они так назывались? Потому что в MIT Compatible Time-Sharing System (CTSS) 1965-го года выпуска был стандартный шелл под названием «run commands», сокращённо runcom или rc, и соответственно скрипты для этого шелла назывались ${чтото}rc.
Вот так и получилось, что <del>размер двигателя шаттла произошёл от размера крупа римской лошади</del> названия конфигов современных KDE-приложений произошли от названия шелла доюниксовой операционки 1965-го года.