Несколько клавиатур с разными раскладками

16

У меня Ubuntu (11.04) работает на недавнем MacBook Pro. Я использую как встроенную клавиатуру, так и внешнюю клавиатуру. Я хочу переназначить capslock на обеих клавиатурах на super, и я хочу поменять местами left-alt (опция mac) и left-super (mac cmd) только на встроенной (apple) клавиатуре.

Xmodmap не может настраивать несколько клавиатур по-разному, так что вот и все.

Я могу сделать это из кли через setkbmap. Вот скрипт, который я использую:

#!/bin/sh
#set caps to super
setxkbmap -option caps:super

#swap command and option for apple keyboard
setxkbmap -device `xinput list | grep -o -P 'Apple Internal Keyboard / Trackpad\s+id=\d+' | grep -o -P '\d+'` -option altwin:swap_lalt_lwin

Если мне нужно, я могу запустить это как приложение для запуска, но мне бы очень хотелось узнать, есть ли файл конфигурации, к которому я могу добавить эти настройки.

Похоже, я должен иметь возможность добавить опцию (XkbOptions) в раздел inputdevice моего xorg.conf, но когда я попробовал это, настройки не оказали влияния (возможно, gnome переопределяет настройки X?). Я также попытался добавить новый входной класс в xorg.conf, но это тоже не сработало.

Как правильно настроить несколько клавиатур с разными привязками клавиш?

psanford
источник
1
Примечание. Помещение этого скрипта в автозагрузку приложения исправляет его при входе в систему, но после выхода из режима ожидания необходимо снова запустить его вручную. Должен быть лучший способ сделать это!
Псанфорд
1
Должно быть ... Я установил макет по умолчанию через /etc/default/keymap(Debian) или /etc/X11/xorg.conf.d/00-keyboard.conf(Fedora), чтобы избежать проблемы при возобновлении работы, но она может не работать для нескольких клавиатур с разными параметрами (в обеих ОС это используется для указания раскладка консоли, а также раскладка X и, таким образом, несколько ограничены).
Дарди,

Ответы:

7

Это можно сделать в конфиге xorg:

Section "InputClass"
  Identifier     "Keyboard Catch All"
  MatchUSBID     "058f:9410"
  Option         "XkbOptions" "caps:super,terminate:ctrl_alt_bksp"
EndSection

Section "InputClass"
  Identifier "Apple Keyboards"
  MatchUSBID     "05ac:0236"
  Option         "XkbOptions" "altwin:swap_lalt_lwin,caps:super"
EndSection

Однако в GDM есть свой собственный способ управления настройками клавиатуры, который перезаписывает эти настройки xorg. Я не нашел решение, которое хорошо работает с GDM.

psanford
источник