У меня 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, но это тоже не сработало.
Как правильно настроить несколько клавиатур с разными назначениями клавиш?
Это можно сделать в конфигурации 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.