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

Я использую 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

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

Другие вопросы по тегам