Os dispositivos com os quais trabalho e desenvolvo são fabricados por uma empresa dinamarquesa. Sempre que entramos nos dispositivos baseados no Debian 8, o layout do teclado é QWERTY dos EUA, mas se anexarmos um teclado USB dos EUA ao próprio dispositivo, o layout do teclado é dinamarquês.
Estou tentando encontrar uma maneira simples de definir o layout do teclado em todos os 10 terminais virtuais, pois os usamos para fins de desenvolvimento. (Eles são um mingetty executado por um serviço systemd na inicialização).
Descobri que posso alterar com sucesso o layout para US se:
- Estou SSH no dispositivo
- Edite
/etc/default/keyboard
manualmente para terXKBLAYOUT="us"
em vez deXKBLAYOUT="dk"
- Corre
udevadm trigger --subsystem-match=input --action=change
No entanto, ele não alterou o layout dos terminais virtuais nos quais eu faço login localmente depois.
Posso alterar com sucesso o layout para US para todos os VTs se:
- Estou SSH no dispositivo ou estou logado localmente
- Edite
/etc/default/keyboard
manualmente para terXKBLAYOUT="us"
em vez deXKBLAYOUT="dk"
- Reinicie o dispositivo
Existe alguma outra maneira de obter essas alterações sem precisar reiniciar todo o dispositivo?
Eu sei que tudo que eu preciso fazer é mudar o XKBLAYOUT
então quando eu tentar usar setxkbmap -model pc105 -layout us
eu Cannot open display "default display"
volto. Nota: Quando eu ssh ou faço login localmente no dispositivo, sou root e tenho executado todos os comandos como root.
Meu /etc/default/keyboard
arquivo é muito simples:
# KEYBOARD CONFIGURATION FILE
# Consult the keyboard(5) manual page.
XKBMODEL="pc105"
XKBLAYOUT="dk"
XKBVARIANT=""
XKBOPTIONS=""
BACKSPACE="guess"
Meu objetivo é fazer um script do processo para que tudo o que o QA faça seja executar um script simples para alternar entre US (para que eles possam digitar mais facilmente) e dinamarquês (para que eles possam definir o dispositivo de volta para ser semelhante aos dispositivos de produção que possível).
No Debian, para configurar o teclado (e fonte) em VTs que não executam o X, você deve executar
setupcon
. Para reconfigurar o teclado padrão e configurá-lo, você deve executardpkg-reconfigure keyboard-configuration
.setupcon
pode usar várias variantes de seus arquivos de configuração, o que permitiria alternar rapidamente entre os layouts de teclado.A configuração do teclado do sistema não afeta os mapeamentos usados no SSH: o SSH não transmite pressionamentos de tecla, ele transmite caracteres, não há mapeamento de estilo de teclado envolvido.