Как сохранить настройки раскладки клавиатуры?
Я использую xmodmap
(и иногда xkbcomp
вместо этого), чтобы настроить раскладку клавиатуры (например, сопоставление Caps Lock с модификатором Mod3).
Когда я подключаю USB-клавиатуру к своему ноутбуку или вставляю YubiKey (который действует как клавиатура), настройки клавиатуры моего ноутбука сразу теряются, в результате чего я перестаю работать в ситуациях, когда Mod3 перестает работать, и я больше не могу использовать свой оконный менеджер.
Как я могу сделать мой xmodmap
/xkbcomp
настройки постоянные или, по крайней мере, постоянные для каждой сессии X для моей внутренней клавиатуры, так что она сохраняет раскладку, независимо от того, присоединяю ли я другие сочетания клавиш?
2 ответа
Вы можете попробовать inputplug, демон, который подключается к вашему X-серверу и прослушивает события XInput. Он может запустить ваш скрипт, который перезагрузит раскладку:
inputplug -c ~/.xkb_load_hook
А также ~/.xkb_load_hook
в моем случае это:
#!/bin/sh
xkbcomp -I$HOME/.xkb ~/.xkb_keymap :0 2>/dev/null 1>/dev/null
xmodmap ~/.xmodmaprc
sun_id=$(xinput list | grep "HID 0430:0005" | grep -o 'id=[0-9]*' | cut -d = -f 2)
if [ -n "$sun_id" ]
then
xkbcomp -i "$sun_id" -I$HOME/.xkb ~/.xkb_keymap_sun :0 2>/dev/null 1>/dev/null
fi
Последний бит обнаруживает клавиатуру Sun Type 6 и применяет для нее различные настройки.
Похоже, это не X, но gnome-settings-daemon
это сбрасывает мои раскладки, когда я присоединяю новую клавиатуру.
Это помогло: правило udev для автоматической загрузки раскладки клавиатуры, когда USB-клавиатура подключена
dconf write /org/gnome/settings-daemon/plugins/keyboard/active false
чтобы отключить его от этого.