Я немного отчаялся здесь и немного разочаровался в возможностях определения раскладки клавиатуры в linux (ubuntu 10.04 здесь). кажется, не существует простого графического способа определения отображений клавиатуры (за исключением keyboardlayouteditor, но честно говоря, я не понял в описании установки. установить antlr? Каир? панго? символы?? генерировать грамматику?? какого хрена???).
Я использую алюминиевую клавиатуру apple с немецкой раскладкой, но неважно то, что я делаю () и (^°) клавиши всегда меняются местами (мне удалось изменить поведение по умолчанию для f1...клавиши f12 от мультимедийных до "обычных", ориентированных на приложения... все, что вам нужно сделать, это добавить строку echo 2 > /sys/module/hid_apple/parameters/fnmode
to /etc/rc.local
... это так чертовски очевидно, что мне стыдно, что мне пришлось искать это в интернете!).
добавляя к моему бедствию, я нахожу китайские IMEs ужас (ни один из многих, которые я пробовал, нигде не приближается к Google pinyin для windows), и не получил ни ibus ни scime работать удовлетворительным образом для меня.
Я нахожу, что клавиатура linux обрабатывает болото. я знаю, что это, должно быть, одна из самых сложных проблем в информатике, так как эта тема становится настолько запутанной независимо от того, на windows или в браузере javascript. как лингвист я хорошо осведомлен о присущих тексту усложнениях правильной обработки поз, но глядя на описания как настроить xkb для создания межзвездных космических кораблей похож на легкой прогулкой.
Итак, моя идея заключается в следующем:
- найдите место в системе, где записываются нажатия клавиш;
- считайте эти коды (могут быть коды сканирования или коды символов) с помощью демона (реализованный в python; я слышал, что вы должны слушать IOCTL или somesuch);
- когда появляются определенные кодовые комбинации, переключите их, чтобы делать то, что вы хотите;
- приложения теперь увидеть X, где ранее получил U и вице versa;
- профит!
Итак, вопросы:
- есть ли место в системах ubuntu / linux, которое позволяет считывать коды клавиатуры?
- есть ли способ блокировать обработку таких действий клавиатуры, пока демон их не обработает?
- могу ли я действительно возиться с такими кодами?
- будет ли такой перехватчик работать в широком диапазоне случаев использования? как в командной строке, в приложении gtk, в вине, в Firefox и так далее?
- альтернативой фактически было бы grok keyboardlayouteditor, поэтому, если бы кто-то мог опубликовать читаемую, полную инструкцию по установке или указать устанавливаемые пакеты, это тоже было бы здорово. или какой-либо полезной программы.