Как сохранить настройки раскладки клавиатуры?

959
nh2

Я использую xmodmap(и иногда xkbcompвместо этого) для настройки раскладки клавиатуры (например, сопоставление Caps Lock с модификатором Mod3).

Когда я подключаю USB-клавиатуру к своему ноутбуку или вставляю YubiKey (который действует как клавиатура), настройки для моей клавиатуры ноутбука сразу теряются, что приводит к тому, что Mod3 перестает работать, и я больше не могу использовать свой оконный менеджер.

Как я могу сделать мои xmodmap/ xkbcompнастройки постоянными или, по крайней мере, постоянными в течение сеанса X для моей внутренней клавиатуры, чтобы она сохраняла раскладку, независимо от того, присоединяю ли я другие сочетания клавиш?

3

2 ответа на вопрос

2
andrewsh

You may try inputplug, a daemon which connects to your X server and listens for XInput events. It can run your script which reloads the keymap:

inputplug -c ~/.xkb_load_hook 

And ~/.xkb_load_hook in my case is:

#!/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 

The last bit detects a Sun Type 6 keyboard and applies different settings for it.

1
nh2

Похоже, это не X, но gnome-settings-daemonэто сбрасывает мои раскладки, когда я присоединяю новую клавиатуру.

Это помогло: правило udev для автоматической загрузки раскладки клавиатуры, когда USB-клавиатура подключена

dconf write /org/gnome/settings-daemon/plugins/keyboard/active false 

чтобы отключить его от этого.