Gostaria de alterar o comportamento do Caps Lock em terminais virtuais (por exemplo, tty CtrlAltF3) para que ele funcione como um modificador de controle. Idealmente, eu também gostaria que ele atuasse como Escape quando pressionado sozinho, mas apenas obter o comportamento de Controle está se mostrando difícil.
Estou executando o Ubuntu 17.04. Eu li e tentei várias abordagens para fazer essa alteração, mas nenhuma parece se aplicar ao meu sistema, conforme descrito. Tenho a sensação de que o systemd desempenha um papel nisso, mas os detalhes não são claros.
Eu escrevi um arquivo caps_control.kmap
, que mapeia limites para controlar,
keymaps 0-255
keycode 58 = Control
Se eu correr loadkeys caps_control.kmap
de um console virtual, ele funcionará. Agora eu gostaria que ele fosse carregado automaticamente durante a inicialização / login / o que for ...
Eu encontrei referências a usar /etc/rc.local
a fazê-lo, mas meu sistema não tem esse arquivo, embora ele não tem vários diretórios gosto /etc/rc0.d/
, /etc/rc1.d/
...
Parece que, como o Ubuntu 17 usa o sytemd, devo usar localectl
para gerenciar esse tipo de coisa, mas não está claro para mim como fazê-lo. Por exemplo,
$ localectl status
System Locale: LANG=en_US.UTF-8
VC Keymap: n/a
X11 Layout: us
X11 Model: pc105
$ localectl list-keymaps
Couldn't find any console keymaps.
A página de manual para localectl
menções /etc/locale.conf
e /etc/vconsole.conf
, nenhuma das quais existe no meu sistema.
Estou totalmente perdido. Alguém pode me apontar na direção certa?
loadkeys caps_control.kmap
qual seria executada quando você efetuar login.loadkeys
de ~ / .profile parece ser problemático. Ao efetuar login, recebo um erro dizendo "Não foi possível obter um descritor de arquivo referente ao console".Respostas:
Para transformar o Caps Lock em um modificador Ctrl adicional, que também é eficaz em tty consoles, abra
/etc/default/keyboard
para edição e ajuste:Se você já
XKBOPTIONS
configurou, acrescentectrl:nocaps
ao valor existente usando uma vírgula para separador, por exemplo:Deve ter efeito após a próxima reinicialização ou emissão do
setupcon
comando.A opção deve estar presente ao executar
localectl status
:E na sessão X, outra maneira de verificar se está definida é:
fonte
"ctrl:nocaps"
. em X a diferença é sutil: com actrl
opção,xev
e outras ferramentas verão umControl_L
símbolo quando a tecla CapsLock for pressionada, enquanto acaps
opção ainda mostrará oCaps_Lock
teclado. não tenho certeza se essa diferença se traduzirá no mapa de teclas do console virtual.ctrl:nocaps
. Eu adicionei à minha resposta.caps:ctrl_modifier
) não é eficaz em tty. No entanto, para mim (em 17.10)ctrl:nocaps
é. Por favor, veja minha resposta editada.ckbcomp
, eu acho?). não me lembrava dacaps:ctrl_modifier
opção mencionada pela primeira vez, então procurei comparar com actrl:nocaps
que costumo usar e achei que a diferença poderia valer a pena mencionar aqui. feliz por ter sido útil.