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?