Capsulação não-comutável bloquear com xkmodmap ou xkb?

0

Existe uma maneira de configurar o botão caps lock para que ele não seja alternado? Isto é, para que apenas aplique o estado de maiúsculas e minúsculas enquanto estiver pressionado, e quando liberado, tudo será revertido para o normal.

A história de fundo:

Estou adaptando um teclado industrial de 1981 como um dispositivo USB. Está funcionando bem - na verdade, estou digitando agora.

No entanto, a tecla caps lock (identificada como ALPHA LOCK na imagem) é uma chave de travamento de hardware, de forma que, se eu pressioná-la uma vez, faz o contato e apenas o quebra quando eu o pressiono novamente. Do ponto de vista do computador, é outra tecla shift.

No entanto, não encontrei uma maneira de configurar o X para suportar isso. O Caps Lock sempre parece ser manipulado por meio de uma alternância de software. Combinado com a alternância de hardware, isso significa que preciso pressionar o botão duas vezes para ativar e desativar o Caps Lock, o que não é o ideal. O ideal seria que houvesse um modificador Caps Shift que eu pudesse usar, mas não consigo encontrar um no xmodmap e não estou conseguindo acelerar em xkb.

Alguém sabe de alguma configuração (ainda que oculta) que possa ajudar aqui? Eu poderia mapeá-lo para outra tecla shift, mas isso realmente não produz o efeito correto.

    
por David Given 29.10.2017 / 20:38

1 resposta

2

Edite o arquivo (como sudo)

/usr/share/X11/xkb/compat/basic

e altere

interpret Any+Lock {
  action= LockMods(modifiers=Lock);
};

para

interpret Any+Lock {
  action= SetMods(modifiers=Lock);
};

Então saia e volte. Tenho certeza que isso deve funcionar. Esteja ciente de que isso alterará a função de cada tecla do Caps Lock em todos os teclados conectados ao seu sistema. É possível limitar isso a um dispositivo específico, mas isso está um pouco além do escopo desta questão e exigirá que você se familiarize um pouco mais com os arquivos de configuração do xkb.

    
por 30.10.2017 / 03:59