Alterando teclas específicas no teclado Apple sob o Fedora 22

2

Estou tentando alterar algumas teclas específicas no meu teclado USB da Apple que executa o Fedora 22.

Passamos três dias procurando por uma resposta e tentando soluções diferentes, acabei usando xmodmap e ainda não consegui fazer tudo funcionar.

Meus problemas exatos são:

  • Alternando a tecla Alt esquerda com a Alt direita
  • Altera a tecla Ctrl esquerda com a tecla cmd esquerda

Até agora, é isso que eu tentei por último:

Eu fiz uma cópia do meu arquivo xmodmap :

xmodmap -pke ~/.xmodmap

Então eu descobri os códigos de teclas que eu estou tentando mudar usando xev , o que me deu para Alt Left e Alt Right:

KeyPress event, serial 36, synthetic NO, window 0x3400001,
root 0xd7, subw 0x0, time 7033878, (38,-14), root:(38,23),
state 0x10, keycode 64 (keysym 0xffe9, Alt_L), same_screen YES,
XLookupString gives 0 bytes: 
XmbLookupString gives 0 bytes: 
XFilterEvent returns: False

KeyPress event, serial 36, synthetic NO, window 0x3400001,
root 0xd7, subw 0x0, time 7035742, (38,-14), root:(38,23),
state 0x10, keycode 108 (keysym 0xfe03, ISO_Level3_Shift), same_screen YES,
XKeysymToKeycode returns keycode: 92
XLookupString gives 0 bytes: 
XmbLookupString gives 0 bytes: 
XFilterEvent returns: False

Assim, a tecla Alt à esquerda está usando keycode 64 e a tecla Alt Right , chamada ISO_Level3_Shift está usando o código de chave 108 .

Em relação a outras fontes na web, criei um novo arquivo xmodmap com este conteúdo:

keycode 64 = Alt_L
keycode 108 = ISO_Level3_Shift
remove Mod1 = Alt_L
remove Mod4 = ISO_Level3_Shift
add Mod1 = ISO_Level3_Shift
add Mod4 = Alt_L

Então eu tentei executar essa nova configuração:

xmodmap -v .mymodmap

E tenho esses erros:

! .mymodmap:
! 1:  keycode 64 = Alt_L
    keycode 0x40 = Alt_L
! 2:  keycode 108 = ISO_Level3_Shift
    keycode 0x6c = ISO_Level3_Shift
! 3:  remove Mod1 = Alt_L
! Keysym Alt_L (0xffe9) corresponds to keycode(s) 0x40 0xcc
    remove mod1 =  0x40 0xcc
! 4:  remove Mod4 = ISO_Level3_Shift
! Keysym ISO_Level3_Shift (0xfe03) corresponds to keycode(s) 0x5c 0x6c 0x9a
    remove mod4 =  0x5c 0x6c 0x9a
! 5:  add Mod1 = ISO_Level3_Shift
    add mod1 = ISO_Level3_Shift
! 6:  add Mod4 = Alt_L
    add mod4 = Alt_L
!
! executing work queue
!
    keycode 0x40 = Alt_L
    keycode 0x6c = ISO_Level3_Shift
    remove mod1 =  0x40 0xcc
    remove mod4 =  0x5c 0x6c 0x9a
    add mod1 = ISO_Level3_Shift
    add mod4 = Alt_L
X Error of failed request:  BadValue (integer parameter out of range for operation)
Major opcode of failed request:  118 (X_SetModifierMapping)
Value in failed request:  0x17
Serial number of failed request:  15
Current serial number in output stream:  15

Isso me deixa confuso, embora eu esteja procurando por soluções.

Alguém tem uma pista ou uma fonte com informações sobre como alterar chaves específicas em um novo teclado da Apple?

Editar:

Até agora, depois de testar várias configurações, acabei com a abordagem mais próxima com esta aparência:

clear mod1
clear mod5
keycode 64 = ISO_Level3_Shift Mode_switch ISO_Level3_Shift Mode_switch
keycode 92 = Alt_L Meta_L Alt_L Meta_L
keycode 108 = Alt_L Meta_L Alt_L Meta_L
add mod1 = ISO_Level3_Shift Mode_switch
add mod5 = Alt_L Meta_L

Keycode 92 e 108 parecem ser a mesma chave que eu vejo nas saídas xev .

Esta é a minha saída xmodmap antes das minhas alterações:

xmodmap:  up to 4 keys per modifier, (keycodes in parentheses):
shift       Shift_L (0x32),  Shift_R (0x3e)
lock        Caps_Lock (0x42)
control     Control_L (0x25),  Control_R (0x69)
mod1        Alt_L (0x40),  Meta_L (0xcd)
mod2        Num_Lock (0x4d)
mod3
mod4        Super_L (0x85),  Super_R (0x86),  Super_L (0xce),  Hyper_L (0xcf)
mod5        ISO_Level3_Shift (0x5c),  Mode_switch (0xcb) 

E esta é minha saída xmodmap após minhas alterações:

xmodmap:  up to 4 keys per modifier, (keycodes in parentheses):

shift       Shift_L (0x32),  Shift_R (0x3e)
lock        Caps_Lock (0x42)
control     Control_L (0x25),  Control_R (0x69)
mod1        ISO_Level3_Shift (0x40),  Mode_switch (0xcb)
mod2        Num_Lock (0x4d)
mod3
mod4        Super_L (0x85),  Super_R (0x86),  Super_L (0xce),  Hyper_L (0xcf)
mod5        Alt_L (0x5c),  Alt_L (0x6c),  Alt_L (0xcc),  Meta_L (0xcd)

Depois de aplicar essas alterações, minha tecla Alt parece funcionar como minha tecla Alt esquerda (por exemplo, alternar Menus em alguns aplicativos), mas a tecla Alt esquerda não está fazendo nada.

Talvez, para concretizar minhas intenções:

Eu preciso alternar as duas teclas Alt para minha programação, pois quero que meu teclado da Apple aqui no meu escritório funcione como meu teclado em casa (onde eu uso um Macbook).

Sou muito usado para escrever símbolos especiais como til e cachimbos | e assim por diante, com a tecla Alt esquerda (acionando a tecla Alt esquerda com o polegar esquerdo).

Além disso, preciso alternar left cmd com left ctrl , pois eles também são ativados no meu Macbook em casa.

Certamente, eu poderia me acostumar com essas teclas comutadas aqui no trabalho, mas isso está me incomodando todos os dias, já que estou pressionando as combinações de teclas erradas quando estou no meu fluxo não pensando nas teclas corretas.

Então, alguém tem alguma ajuda aqui para mim?

    
por ne0h 05.10.2015 / 11:17

1 resposta

0

Por enquanto, tenho uma solução parcial em relação à troca de ctrl e cmd no lado esquerdo.

É uma estupidez simples, mas tudo bem para os meus propósitos:

Eu uso a Ferramenta Gnome Tweak para alterar o comportamento de essas chaves. Na minha linguagem há uma opção chamada Entrada e sob esta opção existe o quinto ponto da parte superior "Posição da tecla ctrl" e eu mudei para "Trocar super-chave esquerda e tecla ctrl esquerda".

Deve ser algo semelhante em outras traduções.

Até agora, agora posso usar a tecla esquerda cmd para alguns atalhos padrão (cmd + c para copiar e assim por diante). Mas, ao contrário do teclado do meu Macbook em casa, não consigo alternar a troca de janelas com cmd + tab . Portanto, eu preciso usar ctrl + tab ou alt + tab . Mas tudo bem, é algo que você pode se acostumar.

Mas, infelizmente, ainda não encontrei uma opção de troca de ambas as chaves alt .

    
por 09.10.2015 / 12:15