После нескольких бесплодных попыток, всё-таки напишу в Q&A.
ПРЕДЫСТОРИЯ
Хочу упростить себе работу с клавиатурой под Linux (в Windows это решается с помощью AutoHotKey):
— CapsLock + HJKL — стрелки (плюс ещё пара комбинаций);
— голый CapsLock — переключение раскладки;
— Shift +CapsLock — настоящий капс.
Первая попытка: раскладка для xkb (на капс вешается Level3Switch). Голый капс вообще невозможен. Кроме того, ничего почему-то не работает в Java-приложениях и некоторых других программах (Monodevelop). В общем, неудача.
Вторая попытка: демон, грабящий капс и щлющий XTestFakeKeyEvent, отпуская клавиатуру на время отправки события. Уже лучше, но теперь глючит в лисе (от нажатия CapsLock'а до его отпускания, теряется фокус: курсор видно от случая к случаю, выделение не видно вообще). К тому же, не удалось заставить работать авторепит (а для стрелок он практически необходим).
СОБСТВЕННО, ВОПРОС
Пришёл к выводу, что нужен демон (может быть даже модуль ядра, не знаю), который полностью заберёт себе /dev/input/event0 и отдаст системе что-нибудь другое. Как сграбить устройство и читать события, вроде нашёл
тут. Осталось выяснить,
как программно создать устройство, которое подхватится системой как клавиатура?
Буду благодарен за любые ссылки/советы, как эту затею реализовать.
Никогда не писал системных вещей, и самостоятельно нарыть в интернете этого не смог, извините :)