После прочтения заметки о “странных кнопках ноутбука” сразу вспомнил о неработающем zoom-слайдере на клавиатуре Microsoft Microsoft® Digital Media Keyboard. Немедленно с помощью showkeys выяснил keycodes событий “слайдер вверх” – 418, слайдер вниз – 419. Перечитав ещё несколько раз заметку понял что мне она больше не поможет – xOrg в принципе не переваривает keycodes выше 255, ситуация казалось бы безвыходная, но оказалось не совсем, нашлось решение в виде evrouter – программы, которая (как видно из названия) “пробрасывает” события одних устройств на другие трансформируя согласно правилам описанным в конфигурационном файле.
После непродолжительных мытарств родился следующий ~/.evrouterrc:
#при нажатии на slider up на клавиатуре - сгенерируй событие "mousewheelup" "Microsoft Microsoft® Digital Media Keyboard" "/dev/input/event.*" none key/418 "XButton/4" #при нажатии на slider down на клавиатуре - сгенерируй событие "mousewheeldown "Microsoft Microsoft® Digital Media Keyboard" "/dev/input/event.*" none key/419 "XButton/5"
Для получения необходимых прав в /dev/input в rc.local была добавлена строка:
# внимание - используйте на свой страх и риск! Слабо представляю какие подсистемы затронет такое наглое вмешательство в /dev chgrp users /dev/input/event*
В ~/.kde/Autostart добавлен запуск /usr/bin/evrouter /dev/input/event*
Вы можете запускать evrouter через sudo (и не трогать права на /dev), но подозреваю, что с автозапуском могут быть проблемы…
После чего обнаружил что скроллинг работает, да совсем не так, как ожидалось – одно нажатие на слайдер прогручивает активное окно на три строки (как и указано в настройках KDE), но хотелось-то чтобы прокручивалось до тех пор пока слайдер не отпустишь… Снова поиск и снова решение – патч evrouter, который добавляет повторения “мышиных” событий. Качаю, накладываю, пересобираю evrouter, меняю команду запуска на evrouter -r /dev/input/event* и получаю желанное.
Напоследок добавляю в rc.local_shutdown :
/usr/bin/evrouter -q rm -f /tmp/.evrouter*
Спустя семь лет после приобретения клавиатуры заработал “ползунок”, пройдут десятилетия и возможно удастся завести “фаворитные” пять кнопок 🙂
“Такой день” (ц)