Emula o Numpad no linux

2

Meu laptop não tem um numpad, nem mesmo aqueles nos quais ele é ativado pela tecla FN.

Quando eu estava usando o windows, usei o AutoHotkey com um script que substituí as chaves QWEASDZXC por 789456123, e se eu quiser desativá-lo, só preciso digitar F12.

Existe uma maneira de fazer isso no linux?

    
por Roland 02.04.2017 / 16:49

1 resposta

1

Eu posso pensar em algumas maneiras de fazer isso com XKB, mas não é para os fracos de coração.

  1. Faça uma opção de símbolo personalizado que adicione seus números a "level3" ou "level5" das chaves escolhidas. ( AltGr é a chave ISO_Level3_Shift , usada em layouts não-US ou US-intl Normalmente, essas teclas agem como Shift - você deve mantê-las pressionadas enquanto digita os números. Mas sua nova opção pode fazê-los agir como CapsLock , se preferir. Essa opção, então, substituiria as ligações padrão do seu layout para essas letras para adicionar os números.

    // emulate numpad on first 3 columns of alphabetic keys
    // initial key definitions from /usr/share/X11/xkb/symbols/us
    // ("intl" stanza)
    partial 
    xkb_symbols "qweasdzxc" {
    
        // numbers on level3 (RightAlt chooses lv3)
        include "level3(ralt_switch)"
        key <AD01> { [ q, Q, 7, division ] };
        key <AD02> { [ w, W, 8, multiply ] };
        key <AD03> { [ e, E, 9,    minus ] };
        // etc ...
    
        // OR ...
    
        // numbers on level5 (RightCtrl chooses lv5)
        include "level5(rctrl_switch)"
        key <AD01> { [ q, Q, adiaeresis,  Adiaeresis,  7,  division ] };
        key <AD02> { [ w, W,      aring,       Aring,  8,  multiply ] };
        key <AD03> { [ e, E,     eacute,      Eacute,  9,     minus ] };
        // etc ...
    
    }; // end "qweasdzxc"
    
    
    // rules to load this as an option
    ! option         = symbols
      lv3:qweasdzxc  = +filename(qweasdzxc)
    
    
    // load from commandline. may need -I/path/to/custom/xkb
    setxkbmap -layout us -option lv3:qweasdzxc
    
  2. Crie um layout vazio que emite apenas os números dessas chaves e nenhum outro símbolo alfanumérico. Quando carregado como segundo layout, você teria uma chave de mudança de layout predefinida e usaria isso para alternar entre o layout principal e este. Novamente, a chave de troca de layout pode ser configurada como um Shift (somente layouts de comutação enquanto mantido) ou um CapsLock .

    // emulate numpad on first 3 columns of alphabetic keys
    // leave other alphanumeric keys undefined
    // otherwise from /usr/share/X11/xkb/symbols/us (basic stanza)
    default partial alphanumeric_keys modifier_keys
    xkb_symbols "qweasdzxc" {
    
        name[Group1]= "Numpad Emulation";
    
        key <AD01> { [ 7, division ] }; // q
        key <AD02> { [ 8, multiply ] }; // w
        key <AD03> { [ 9,    minus ] }; // e
    
        key <AC01> { [ 4,        F ] }; // a
        key <AC02> { [ 5,        E ] }; // s
        key <AC03> { [ 6,        D ] }; // d
    
        key <AB01> { [ 1,        C ] }; // z
        key <AB02> { [ 2,        B ] }; // x
        key <AB03> { [ 3,        A ] }; // c
        // hexadecimal just for fun, replace if desired
    
    }; // end "qweasdzxc"
    
    
    // rules to load this as a layout
    ! layout         = symbols
      qweasdzxc      = qweasdzxc
    
    
    // load from commandline. may need -I/path/to/custom/xkb
    setxkbmap -layout us,qweasdzxc -option grp:caps_toggle
    

Qualquer uma dessas opções pode ser implementada alterando os arquivos XKB do sistema em /usr/share/X11/xkb/{symbols,rules} ou armazenando suas customizações em arquivos de configuração XKB locais . Mudanças nos arquivos do sistema podem ser eliminadas por uma atualização no pacote xkeyboard-config , mas são mais fáceis de usar com as ferramentas de configuração de layout do sistema como /etc/default/keyboard ou o daemon de configurações do GNOME.

    
por quixotic 02.04.2017 / 20:59