Escape na tecla Control, Control na tecla Capslock, Capslock na tecla Escape

4

Estou procurando um método que funcione no X e no console com configuração de console (por exemplo, xkboptions, sem métodos exclusivos do X, como xmodmap ). Com o XKBoptions, combinar ctrl:swapcaps e caps:swapescape não atinge o efeito desejado - coloca o controle em capslock (bom) e capslock nas teclas de controle e escape.

Para os curiosos / confusos, a lógica é otimizar o layout do teclado, colocando funções usadas com mais frequência em teclas fáceis de alcançar.

Como eu nunca uso o capslock, de qualquer forma, eu também gostaria de uma solução que coloque Control no CapsLock e Escape on Control e deixe a chave Escape como está (deixando-me sem a função CapsLock).

    
por jw013 06.06.2014 / 18:15

2 respostas

1

Adicionando um XKBOption personalizado

O Debian usa o sistema XKB tanto para o Xorg quanto para o console, então um método é adicionar um XKBOption customizado. Os arquivos relevantes no Debian estão localizados em /usr/share/X11/xkb , arquivos fornecidos pelo xkb-data package .

  1. Crie symbols/custom

    // rotate the caps lock, left control, and escape keys so left control is on
    // the caps lock key
    partial modifier_keys
    xkb_symbols "rotatectrlcapsescape" {
        replace key <CAPS>      {  [ Control_L ] };
        replace key <LCTL>      {  [ Escape    ] };
        replace key <ESC>       {  [ Caps_Lock ] };
    };
    
  2. Modifique rules/xorg : procure a seção ! option = symbols e adicione

    custom:rotatectrlcapsescape = +custom(rotatectrlcapsescape)
    
  3. (Opcional) Atualize rules/xorg.lst e rules/xorg.xml (exercício deixado para o leitor).

Agora, as XKBOptions personalizadas custom:rotatectrlcapsescape estão disponíveis para uso. De acordo com as instruções Debian, isto é configurado por padrão em /etc/default/keyboard , com um simples XKBOPTIONS="custom:rotatectrlcapsescape" .

O Ubuntu / Gnome parece usar rules/evdev* em vez de rules/xorg* .

Desvantagens

  • A modificação de arquivos do pacote de repositório em /usr/ raramente é uma boa ideia. Os arquivos modificados provavelmente serão destruídos na próxima vez que o pacote proprietário ( xkb-data ) for atualizado.
por 15.06.2014 / 00:46
0

O que há de comum entre a entrada do teclado no console e o XWindow é que, em ambos os casos, um driver de teclado USB no kernel fala com o teclado USB e produz códigos de varredura. Uma alteração nesse componente do sistema afetará toda a entrada do teclado.

Veja a tabela estática usb_kbd_keycode e o código relacionado, no arquivo de origem drivers/hid/usbhid/usbkbd.c na árvore do kernel.

    
por 06.06.2014 / 20:38