Xorg: несколько клавиатур, одна конфигурация

На моем ноутбуке я настраиваю некоторые привязки клавиш и предпочтения клавиатуры с помощью xmodmap и xset . Когда я подключаю внешнюю клавиатуру USB, настройка для этой новой клавиатуры по умолчанию, т. Е. Без моих настроек. Если I xmodmap и xset снова, то эти предпочтения применяются и к недавно подключенной клавиатуре, но при подключении / отключении они снова будут сброшены до значения по умолчанию. Обратите внимание, что подключение / отключение никогда не влияет на конфигурацию клавиатуры ноутбука, которая поддерживается в течение всего процесса.

Вопрос. Как я могу установить один набор настроек xmodmap и xset, который применяется к любой клавиатуре (теперь подключен и в будущем).

Конфигурация : Arch Linux на ядре 3.1.1, Xorg 1.11.2 без домашней конфигурации, оконный менеджер: awesome 3.4.11, no kde или gnome stuff

Благодаря!

@Patkos Csaba: он изменился: теперь по умолчанию вы не должны ничего настраивать, и он работает автоматически. В определенном смысле добавление setxkbmap в .xinitrc стало проще, чем изменение конфигурации сервера.

В настоящее время вы можете подключить USB-клавиатуру или мышь и добавить X11 и распознать ее, не нужно полагаться на / dev / mice или что-то в этом роде.

Теперь я столкнулся с проблемой, и, IMHO, идеальным решением было бы каким-то образом сказать Xorg наследовать новые настройки клавиатуры с текущей подключенной клавиатуры или сообщить setxkbmap, чтобы установить параметры в качестве сервера по умолчанию для текущей и будущей клавиатуры.

До сих пор я не нашел никакого способа сделать это. Единственный способ избежать запуска setxkbmap / xmodmap снова – отредактировать настройки по умолчанию, используемые hald при настройке новых устройств, см. Документацию freebsd , §6.4.2 (некоторые абзацы ниже заголовка раздела, имеет два примера установки значений по умолчанию для клавиатуры). См. Также «Вариант 2» в учебном пособии Клааса Тесхауэра о миграции на пол . Существует также вопрос о Stackoverflow со ссылками о запуске скрипта на аппаратных дополнениях , если вы предпочитаете делать это именно так.

Мне удалось решить эту проблему, используя файлы конфигурации Xorg, созданные с помощью localectl . Я использую компоновку dvorak / qwerty с caplock как дополнительный управляющий ключ. Раньше у меня это было в моем .xinitrc:

 setxkbmap -layout us,us -variant dvorak, \ -option 'grp:alt_space_toggle' \ -option 'grp_led:caps' \ -option 'ctrl:nocaps' 

Чтобы получить эквивалентную настройку в конфигурационном файле Xorg, я использовал

 sudo localectl set-x11-keymap us,us "" dvorak, 'grp:alt_space_toggle,grp_led:caps,ctrl:nocaps' 

который хранится в файле /etc/X11/xorg.conf.d/00-keyboard.conf .

На странице конфигурации клавиатуры archwiki :

Для удобства инструмент localectl можно использовать вместо ручного редактирования файлов конфигурации X. Он сохранит конфигурацию в файле /etc/X11/xorg.conf.d/00-keyboard.conf, этот файл не должен редактироваться вручную, так как localectl перезапишет изменения при следующем запуске.

Используется следующее:

  $ localectl set-x11-keymap layout [model] [variant] [options] 

Я никогда не использовал его, но «usbd» – это то, что вы ищете. Согласно его документации, он смотрит порты USB и выполняет пользовательские команды при определенных изменениях.

Вот страница руководства.