Gostaria de trocar Esce CapsLockno console (não no X e usar xev
), como posso fazer isso?
Meu sistema operacional é o Ubuntu.
As ferramentas para manipular o layout do teclado nos consoles virtuais são loadkeys
, dumpkeys
e showkey
. Leia suas páginas de manual e informe-se sobre seus meandros.
Observe que essas ferramentas funcionam apenas em um console virtual, não em um emulador de terminal em um ambiente gráfico como o gnome. Para aprender sobre a diferença, leia esta pergunta e respostas: https://askubuntu.com/questions/14284/why-is-a-virtual-terminal-virtual-and-what-why-where-is-the-real-terminal .
Aqui está um pequeno guia para fazer o que você deseja:
Salve seu layout de teclado atual:
$ dumpkeys > backup.kmap
Caso algo dê errado, você poderá restaurar seu mapa de teclas usando o comando:
$ sudo loadkeys backup.kmap
Se o teclado está tão bagunçado que você nem consegue fazer isso, sua única opção que não envolve a magia antiga do kernel é reiniciar.
Verifique quais códigos de chave estão atribuídos às suas chaves:
$ showkey
Agora pressione a tecla ESC e a tecla CAPSLOCK. Os códigos das teclas devem aparecer na tela. Observe os códigos de teclas. No meu sistema, o ESC possui o código de chave 1 e o CAPSLOCK possui o código de chave 58.showkey
terminará após 10 segundos de inatividade (pelo menos no ubuntu 10.04).
Observe os nomes das teclas ESC e CAPSLOCK das dumpkeys:
$ dumpkeys | grep 1
...
keycode 1 = Escape
...
$ dumpkeys | grep 58
...
keycode 58 = CtrlL_Lock
...
Observe a linha do mapa de teclas em dumpkeys:
$ dumpkeys | head -1
keymaps 0-127
Crie um arquivo de mapa de chaves que alterna ESC e CAPSLOCK:
keymaps 0-127
keycode 1 = CtrlL_Lock
keycode 58 = Escape
Carregue o mapa de teclas:
$ sudo loadkeys swap_esc_capslock.kmap
Teste: o teste da chave CAPSLOCK é óbvio. Basta pressionar a tecla CAPSLOCK e verificar se outras teclas aparecem em maiúsculas. Para testar a tecla ESC, você pode usar CTRL + V seguido de ESC. Deve imprimir ^[
. CTRL + V faz com que o shell imprima a próxima chave literalmente, em vez de interpretá-la.
Para carregar essa modificação em cada reinicialização, coloque a seguinte linha no seu /etc/rc.local
arquivo:
/usr/bin/loadkeys /path/to/swap_esc_capslock.kmap
Informações coletadas de várias páginas, incluindo, entre outras:
sudo setupcon --save
para tornar as alterações permanentes, em vez de editar o rc.local. Isso é essencialmente o mesmo quedumpkeys < /dev/tty1 | gzip > /etc/console-setup/cached.kmap.gz
/usr/bin/loadkeys
,/etc/rc.local
pois não é garantido que a variável de ambiente do caminho seja configurada neste estágio. Esudo
não é necessáriorc.local
.rc.local
executado sempre que o sistema é inicializado. @ bukzor desudo setupcon
é não emrc.local
, é um comando de configuração única, que substitui o mapa de teclado padrão do sistema, sem acrescentar qualquer código de inicialização de tempo de execução. Adicionandoloadkeys
arc.local
, adiciona código de inicialização extra e duplica o que já foi feito pelas teclas de carregamento padrão do sistema. Narc.local
verdade, o método pode ser menos seguro porque depende de um caminho não padrão para o mapa de teclas.setupcon
método. Adicione sua própria resposta ou edite a minha, se desejar.setupcon
. Parece que agosto fez a suposição de que osudo setupcon --save
iria pararc.local
que eu não acho que é verdade, mas se isso acontecer, você não precisasudo
derc.local
. Acho que precisamos de mais informações antes de atualizar sua resposta. A questão principal é "Como instalar o mapa de teclas modificado para que ele seja carregado automaticamente durante o processo de inicialização?" Realmente não sei qual é a melhor maneira,rc.local
ou instalar um mapa de teclas, ou mesmo se a instalação de um mapa de teclas funcionará. Eu tenho pesquisado isso ultimamente e voltarei aqui.Use 'ctrl: nocaps' em vez de 'ctrl: swapcaps' se você quiser apenas ter duas teclas de capslocks (capslock com outro nome ainda é super inútil).
X11: (veja também:
/usr/share/X11/xkb/rules/base.lst
)Console de texto: (roubado do setupcon)
fonte