Eu consegui isso no Ubuntu 13.04 combinando a resposta de Christophe (que me ajudou, mas não funcionou para os modificadores e eu não preciso de graves e til para serem chaves mortas), outra resposta sobre o setxkbmap , jogando com diferentes opções em configurações de teclado-layout de opções (mesmo olhando para o Código fonte ) e inspecionando a configuração atual usando o comando setxkbmap -query
(que você também deve executar, para verificar o modelo específico do teclado e os códigos de layout, pois eles podem ser diferentes).
Eu tenho um script que eu chamo quando mudo para um teclado da Apple (a opção crucial sendo altwin:swap_lalt_lwin
para trocar as teclas modificadoras Alt e Super):
# clear all options
setxkbmap -model "pc105" -layout "hr,us" -option ""
# set the Apple keyboard
setxkbmap -rules "evdev" -model "pc105" -layout "hr,us" -option "terminate:ctrl_alt_bksp,lv3:rwin_switch,grp:shifts_toggle,caps:ctrl_modifier,altwin:swap_lalt_lwin"
# swap the grave-tilde with less-greater key
# - variant without dead keys
xmodmap -e "keycode 94 = grave asciitilde"
xmodmap -e "keycode 49 = less greater less greater bar brokenbar bar brokenbar"
E outro que eu chamo quando estou de volta em um teclado normal:
# clear settings
setxkbmap -model "pc105" -layout "hr,us" -option ""
# pc keyobard
setxkbmap -rules "evdev" -model "pc105" -layout "hr,us" -option "terminate:ctrl_alt_bksp,lv3:rwin_switch,grp:shifts_toggle,caps:ctrl_modifier"
Note que eu adicionei as configurações
terminate:ctrl_alt_bksp,lv3:rwin_switch,grp:shifts_toggle,caps:ctrl_modifier
para habilitar a terminação de sessão do Gnome ctrl + alt + backspace, acesso de chave de nível 3 usando a tecla de vitória direita, mudança de layout pressionando ambas as teclas shift e transformou meu Caps Lock em um Ctrl adicional (respectivamente). Você pode querer excluir alguns ou todos eles.
Você pode usar AutoKey para vincular a chamada a algum atalho de teclado ou chamá-lo de seu .profile
ou .bashrc
se você usar o teclado da Apple o tempo todo.
setxkbmap -device 8 dvorak -option altwin:swap_alt_win,ctrl:nocaps
. Eu só quero o Alt e o Win certos trocados. Isso não "cancela" a troca à esquerda:setxkbmap -device 8 dvorak -option altwin:swap_lalt_lwin,altwin:swap_alt_win,ctrl:nocaps
. Aparentemente não háaltwin:swap_ralt_rwin
opção, de acordo comman xkeyboard-config
.