Vários teclados com diferentes layouts

16

Eu tenho o ubuntu (11.04) rodando em um macbook pro recente. Eu uso o teclado embutido e um teclado externo. Quero remapear o capslock em ambos os teclados para super e quero trocar left-alt (opção mac) e left-super (mac cmd) apenas no teclado interno (apple).

O Xmodmap não pode configurar vários teclados de maneira diferente, então é isso.

Eu sou capaz de fazer isso a partir do cli via setkbmap. Aqui está o script que estou usando:

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

Se for necessário, posso executá-lo como um aplicativo de inicialização, mas realmente gostaria de saber se existe um arquivo de configuração ao qual posso adicionar essas configurações.

Parece que eu deveria poder adicionar uma opção (XkbOptions) à seção inputdevice do meu xorg.conf, mas quando tentei isso, as configurações não tiveram efeito (talvez o gnome substitua as configurações do X?). Também tentei adicionar uma nova classe de entrada ao xorg.conf, mas isso também não funcionou.

Qual é o local correto para configurar vários teclados com diferentes combinações de teclas?

psanford
fonte
11
Nota: A inserção desse script nos aplicativos de inicialização o corrige no login, mas depois de retomar a suspensão, preciso executá-lo manualmente novamente. Deve haver uma maneira melhor de fazer isso!
Psanford
11
Deveria haver ... Eu tenho definido o layout padrão via /etc/default/keymap(Debian) ou /etc/X11/xorg.conf.d/00-keyboard.conf(Fedora) para evitar o problema de retomada, mas pode não funcionar para vários teclados com opções diferentes (em ambos os sistemas operacionais, isso é usado para especificar o mapa de teclas do console e o mapa de teclas X e, portanto, é um pouco restrito).
Dhardy

Respostas:

7

É possível fazer isso na configuração do 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

No entanto, o GDM tem sua própria maneira de gerenciar as configurações do teclado que substituirão essas configurações do xorg. Não encontrei uma solução que funcione bem com o GDM.

psanford
fonte