Como reativar a tecla caps lock?

9

Atualmente, estou configurando meu layout de teclado padrão assim:

setxkbmap -layout us -variant dvorak -option ctrl:nocaps,[...]

Desativa a tecla caps lock e a torna uma tecla ctrl adicional, junto com um enxame de outras opções.

Gostaria de fazer o seguinte para alternar os layouts de teclado:

setxkbmap -layout us -variant dvorak-l -option ctrl:swapcaps

No entanto, ele não reativa a tecla caps lock; tanto a tecla de controle esquerda quanto a tecla Caps Lock permanecem como teclas de controle até onde eu posso ver.

Eu sei que posso limpar toda a lista de opções, mas no interesse de manutenção, prefiro não copiar as opções ao redor. Como reativar o caps lock?

Atualização: Olhando para keypresses com xev (1), aparece ctrl: nocaps dá um Control_L para ambas as chaves, e ctrl: swapcaps "restaura" a tecla caps lock (pressionando a tecla dá Caps_Lock ). No entanto, o LED de caps lock não acende nem funciona de fato.

Observar o arquivo xkeyboard-config/symbols/ctrl em fontes do X.org sugere o problema:

xkb_symbols "nocaps" {
    replace key <CAPS>  {  [ Control_L, Control_L ] };
    modifier_map  Control { <CAPS>, <LCTL> };
};
xkb_symbols "swapcaps" {
    replace key <CAPS>  {  [ Control_L ] };
    replace key <LCTL>  {  [ Caps_Lock ] };
};

A última opção não possui uma linha modifier_map, o que quer que isso

    
por hhaamu 19.10.2011 / 06:59

3 respostas

10

Os seguintes comandos devem funcionar:

xmodmap -e 'keycode 0x42 = Caps_Lock'

ou

setxkbmap -option

Os comandos acima funcionam muito bem para restaurar o comportamento padrão, que dificilmente preciso, felizmente.

Eu normalmente remapeio o capslock para Control (por sorte, o VI / VIM suporta CTRL-C ao invés de ESC) com o seguinte comando:

setxkbmap -option ctrl:nocaps -layout gb
    
por 26.10.2012 / 18:43
2

Experimente setxkbmap -option -layout us -variant dvorak-l -option ctrl:swapcaps

Na página de manual:

[...] If you want to
replace all previously specified options, use the -option  flag
with an empty argument first.

A ironia é que aqui -option ctrl:swapcaps substitui -option ctrl:nocaps - acho que o comportamento mudou.

Editar: Como o OP declarou, ele quer evitar limpar as opções (conforme feito da maneira acima).

/usr/share/X11/xkb/rules/xorg.lst mostra a opção ctrl:aa_ctrl (controle no canto inferior esquerdo), que parece redefinir o caps lock após nocaps aqui.

Eu acho que vale a pena tentar, e você também pode olhar para a lista ( grep ctrl\: ) e ver se há algo mais que pode funcionar, caso isso não aconteça.

Se não houver uma opção para isso, acho que a solução é hackear o mapa de teclas atual, associando o Caps Lock com a tecla Caps Lock novamente (mas não tenho experiência com isso, além de acreditar que há uma ferramenta que permite você faz isso com um one-liner).

    
por 13.02.2012 / 20:30
0

existe uma opção "caps: capslock" (que mapeia para adicionar "+ capslock (capslock)" a xkb_symbols) que ativa o capslock.

No entanto, essa opção (talvez todas em maiúsculas: xxxxx?) é adicionada antes da ctrl existente: xxxxx; como ctrl: swapcaps redefine a tecla capslock, essa opção não tem efeito.

Então, você precisa remover todas as opções e colocar as que deseja; as opções de maneira existem, elas não devem desfazer a ação de uma anterior, e tendo opções conflitantes (por exemplo, duas (ou mais) que recife uma mesma tecla) você não pode definir sua ordenação.

    
por 21.02.2013 / 13:32