Depois de mudar para o layout dos EUA com wsconsctl -w encoding=us
, eu estava procurando uma maneira de modificar o mapa de teclado do meu gosto.
eu fiz:
wsconsctl -w map+="keycode 1 = Cmd_Debugger Caps_Lock"
wsconsctl -w map+="keycode 58 = Escape"
para trocar caps e teclas de escape (sou usuário do Vim, então esse tipo de swap faz sentido).
Eu notei wsconsctl map
set keycode 184 = Mode_switch Multi_key
, que, até onde eu entendo, é a função que você obtém com AltGr em um teclado alemão, por exemplo.
Eu tentei configurar o keycode 184 para Mode_switch
(normalmente é definido como Alt_R
, o que não faz nada para mim), mas não consigo exatamente a funcionalidade de AltGr .
Como o NetBSD não parece vir com uma variante US AltGr-Intl, eu pensei em definir pelo menos algumas das chaves que eu preciso (que são tremas alemãs, por exemplo) eu mesmo, e "backport" a variante AltGr-Intl dessa maneira.
Então, a primeira coisa que tentei foi wsconsctl -w map+="keycode 16 = q Q adiaeresis Adiaeresis"
Quando faço isso, recebo códigos de erro estranhos no console, ao digitar AltGr + q : <00ef>
se parece com um código utf-8 ou algo similar para mim. De qualquer forma, não está produzindo um 'ä', como eu esperava.
Além disso, ao verificar o que está no mapa de teclado agora, depois de tê-lo alterado, é o que acontece:
# wsconsctl map | grep -i "code 16"
keycode 16 = q Q adiaeresis gr_D
" gr_D
"? De onde veio isso? Por algum motivo, wsconsctl
parece não gostar de Adiaeresis
, embora esteja em /usr/include/dev/wscons/wsksymdef.h
linha 192:
#define KS_Adiaeresis 0xc4
Notei que isso não acontece com todos os personagens.
Eu tentei mapear wsconsctl -w map+="keycode 16 = q Q at at"
e isso funciona bem. Depois disso, eu posso digitar '@', pressionando AltGr + q .
Além disso, quando estou no prompt de login, posso digitar caracteres especiais pressionando AltGr , digitando äåéóöëíúáßðfø¶œï
como um nome de usuário não é problema, mas depois de fazer login, parece carregar a codificação us, e eu só tenho um layout americano simples a partir de então.
Basicamente, a ideia é poder inserir caracteres especiais (latim) pressionando AltGr ou Alt direita.
O sistema operacional é o NetBSD 7.0 / amd64 em execução em uma máquina virtual em um host amd64 (Linux).
Tags keyboard-layout netbsd