17:19:32]<L29Ah> unkolchu: расскажи как ты используешь
https://github.com/unclechu/xlib-keys-hack
17:29:28]<unkolchu> в первую очередь делаю так:
sudo setfacl -m "u:$(whoami):r" /dev/input/by-id/*
ну это чтобы иметь доступ для юзера к девайсам напрямую
api там для уведомления моей кастомной панельки об индикаторах caps-lock, num-lock, раскладки и alternative мода (это такой мод этой утилиты)
17:30:40]<unkolchu> вот пример команды для запуска:
xlib-keys-hack \
\
--shift-numeric-keys \
--right-control-as-super \
\
&
#39;/dev/input/by-id/usb-1d57_2.4G_Receiver-event-kbd&
#39; \
&
#39;/dev/input/by-id/usb-1d57_2.4G_Receiver-event-if02&
#39; \
--disable-xinput-device-name=&
#39;2.4G Receiver&
#39; \
\
&
#39;/dev/input/by-id/usb-04b4_6018-event-kbd&
#39; \
&
#39;/dev/input/by-id/usb-04b4_6018-if01-event-mouse&
#39; \
&
#39;/dev/input/by-id/usb-04b4_6018-if01-mouse&
#39; \
--disable-xinput-device-name=&
#39;HID 04b4:6018&
#39; \
\
&
#39;/dev/input/by-id/usb-Telink_Wireless_Receiver-event-kbd&
#39; \
&
#39;/dev/input/by-id/usb-Telink_Wireless_Receiver-if01-event-mouse&
#39; \
&
#39;/dev/input/by-id/usb-Telink_Wireless_Receiver-if01-mouse&
#39; \
--disable-xinput-device-name=&
#39;Telink Wireless Receiver&
#39; \
\
тут три клавиатуры разных перечислены, если какой-то не обнаружится - просто будет проигнорирована
17:34:08]<unkolchu> а насчёт зачем: тут целый ряд причин, я хотел сделать использование традиционной клавиатуры менее ущербным для себя, вот несколько ключевых фичур:
1. чтобы не выворачивать запястья, я сместил контролы к caps lock и enter, если заживается и отпускается какая-либо из этих клавишь - то триггерится оригинальная клавиша (но capslock по дефолту триггерит escape, это можно выключить через --real-capslock, капс включается одновременным нажатием этих обоих клавишь), а если зажали какую-либо из клавишь и после ещё какую-то другую клавишу, то эта клавиша уже триггерится как правый или левый контрол + прочие зажатые клавиши
17:35:46]<unkolchu> 2. alternative mode - это при зажатии обоих alt одновременно, или даблкликом по super, - включается этот режим, при нём hjkl превращается в стрелочки, y/u в pagedown/pageup, </> в home/end, i - insert, m - menu
17:37:19]<unkolchu> --shift-numeric-keys - смещает ряд цифровых клавишь на одну клавишу вправо, а клавиша minus/underscore перемещается на старое место единицы, - это для меня более удобно с точки зрения 10-и пальцевого ввода
17:38:31]<unkolchu> там также есть api для включения к примеру alternative mode и прочих капсов/намлоков, смены раскладки, чтобы по dbus можно было этим управлять извне
17:38:55]<unkolchu> когда enter работает как доп. control, - там есть спец. логика чтобы работали комбинации вроде shift+enter
17:39:23]<unkolchu> я этим пользуюсь уже года 2 наверное сам, так что за это время всякие нюансы обкатал и подтюнил
17:39:52]<unkolchu> так что практически каждая клавиша, которую я нажимаю, проходит через эту штуку
17:41:35]<unkolchu> и да, ещё там есть фича (выключаемая через --disable-reset-by-escape-on-capslock), когда жмёшь capslock и когда триггерится по этой клавише escape - сбрасываются: капс, alternative и раскладка
17:41:51]<unkolchu> я это скорее под vim делал
17:42:13]<unkolchu> аналогично там есть фича (тоже отключаемая), которая тоже всё сбрасывает при смене фокуса окна
17:44:36]<unkolchu> из не самого оптимального там - это опрос состояния numlock/capslock/раскладки по таймеру (но интервал достаточно большой, чтобы не кушать проц, но при этом достаточно для рилтайма), - пока не знаю как это сделать в блокирующем режиме