Como reativar a tecla caps lock?


12

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

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

Desativa a tecla caps lock e a torna uma tecla ctrl adicional, juntamente 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, não reativa a tecla caps lock; tanto a tecla de controle esquerda quanto a tecla caps lock permanecem como teclas de controle, tanto quanto eu posso ver.

Sei que posso limpar toda a lista de opções, mas, no interesse da manutenção, prefiro não copipar as opções. Como reativar o caps lock?

Atualização: Observando as teclas pressionadas com xev (1), aparece ctrl: nocaps fornece a Control_Lpara ambas as teclas e ctrl: swapcaps "restaura" a tecla caps lock (pressionar a tecla fornece Caps_Lock). No entanto, o LED caps lock não acende nem funciona.

Observar o xkeyboard-config/symbols/ctrlarquivo nas 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 faça


Eu estou supondo que todos os que tentou me ajudar obtiveram seus teclados preso a Dvorak = (
hhaamu

4
X é tão antigo e complexo agora que muitas pessoas realmente não entendem os vários mecanismos internos. Há até seções na página do manual que dizem (e cito): " Ninguém quer dizer como isso funciona. Talvez ninguém saiba ... ". Estou interessado em ver uma resposta a esta questão tão bem, mas pode ser o caso de que ninguém sabe ...
jw013

Respostas:


14

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 quase nunca preciso, por sorte.

Normalmente refiro o capslock para Control (felizmente VI / VIM suporta CTRL-C em vez de ESC) com o seguinte comando:

setxkbmap -option ctrl:nocaps -layout gb

A opção "setxkbmap -option" para limpar as configurações é exatamente o que eu estava procurando. Continuei tentando mudar meu comportamento, mas ele continuava anexando itens conflitantes à lista de opções.
M0j0 13/06/2015

2

Tentar 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:swapcapsrealmente se sobrepõe -option ctrl:nocaps- acho que o comportamento mudou.

Editar: Como o OP afirmou, ele deseja evitar a limpeza das opções (como feito da maneira acima).

/usr/share/X11/xkb/rules/xorg.lstmostra a opção ctrl:aa_ctrl(controle no canto inferior esquerdo), que parece redefinir o caps lock depois nocapsdaqui.

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 este não funcione.

Se não houver opção para isso, acho que a solução é invadir o mapa de teclas atual, associando o Caps Lock à tecla Caps Lock novamente (mas não tenho experiência com isso, além de acreditar que existe uma ferramenta que permite que você faça isso com uma linha).


Isso de fato limpa a lista de opções, mas desejo manter as opções não relacionadas a maiúsculas (como afirmei na pergunta), como as teclas de composição.
Hhamam

Oh, desculpe, eu interpretei mal a pergunta. Não tenho certeza se isso funcionará (como afirmei, swapcapsna verdade reativa o caps lock aqui), mas a partir de /usr/share/X11/xkb/rules/xorg.lst, vejo que existe a opção ctrl:aa_ctrl(controle na parte inferior esquerda), que parece redefinir o caps lock depois nocapsdaqui.
njsg

Eu acho que o programa de magia é xmodmap, mas eu não tenho certeza de como usá-lo
hhaamu

0

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

No entanto, essa opção (talvez todas as maiúsculas: xxxxx?) É adicionada antes das ctrl: xxxxx ones existentes; como ctrl: swapcaps redefine a tecla capslock, essa opção não tem efeito.

Portanto, você absolutamente precisa remover todas as opções e colocar as que deseja; da maneira que as opções existem, elas não devem desfazer a ação de uma anterior e, tendo opções conflitantes (por exemplo, duas (ou mais) que definem a mesma chave), não é possível definir a ordem delas.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.