Como eu mudo para o Linux Terminal a partir do Xorg via XF86Switch_VT_1 (control + alt + f1) com o teclado rollover USB n-key?

1

Eu tenho esse teclado USB novo e sofisticado com rolagem de teclas n para os feriados. A única coisa que tem me incomodado é que não consigo mais acessar os teclados virtuais do X11 / Xorg com este teclado. Com teclados antigos e novos conectados ao mesmo tempo, posso dizer que ainda posso usar o teclado antigo para alternar para o terminal. Além disso, posso usar o xev para verificar se o keysym XF86Switch_VT_1 está sendo gerado. (ver abaixo).   Pelo que eu li em outro lugar, o problema vem do fato de que o teclado tem que fingir que há vários teclados em USB, porque o padrão USB permite apenas 6 teclas de rolagem por teclado.

Existe alguma solução conhecida para fazer isso funcionar?

KeyRelease event, serial 40, synthetic NO, window 0x5000001,
    root 0x29e, subw 0x0, time 5626057, (675,-26), root:(679,936),
    state 0xc, keycode 67 (keysym 0x1008fe01, XF86Switch_VT_1), same_screen YES,
    XLookupString gives 0 bytes:
    XFilterEvent returns: False
    
por Jacob Brown 01.01.2018 / 03:42

2 respostas

0

Eu tenho DELL Laptop com o mesmo problema

Tente isto:

Ctrl + alt + [n] + F1

    
por 01.01.2018 / 04:14
0

Solução alternativa de XKB

Como suas teclas F # estão aparecendo em um dispositivo lógico diferente das teclas Ctrl + Alt , alterando seu layout XKB para gerar esses keyyms em algumas de suas chaves regulares pode ser uma solução razoável. Teste as chaves com evdev para garantir que estejam na mesma entrada; o exemplo abaixo assume que as teclas numéricas serão. Advertências a considerar:

  • xkbcomp não funcionará em Wayland, e os ambientes de área de trabalho baseados em GNOME podem redefinir as configurações do teclado , então use um gerenciador de janelas básico para testes. Se esta solução funcionar, ela poderá ser reescrita como uma opção XKB ou variante de layout, colocada no banco de dados XKB do sistema e configurada por qualquer meio que seu DE fornecer.

  • Você pode usar ckbcomp para gerar um mapa de teclas do console com essas mudanças, ou você pode achar que as funções do Ctrl + F2 do console são adequadas para que as modificações sejam desnecessárias. Ou talvez você precise se familiarizar com loadkeys .

  • Algumas aplicações podem já definir atalhos como Ctrl + Alt + 2 ; Não sei como eles podem interagir com esse layout.

Considerando todos esses fatores, esse é definitivamente um hack feio . Corrigir o problema em uma camada inferior (por exemplo, por evdev mesclando as duas entradas em uma antes de agir sobre elas) seria preferível.

Primeiro, gere um mapa de teclado básico, com setxkbmap -print ; então editaremos esse arquivo e adicionaremos substituições a ele e, finalmente, carregaremos o mapa de chaves alterado com xkbcomp [file] $DISPLAY :

$ setxkbmap -print > mykeymap.xkb
xkb_keymap {
    xkb_keycodes  { include "evdev+aliases(qwerty)" };
    xkb_types     { include "complete"  };
    xkb_compat    { include "complete"  };
    xkb_symbols   { include "pc+us(altgr-intl)+inet(evdev)" };
    xkb_geometry  { include "pc(pc105)" };
};

Gere um mapa de teclado completo com xkbcomp para encontrar os símbolos originais em seu layout. Não se preocupe muito se os símbolos forem um pouco diferentes em seu layout; contanto que sejam de quatro níveis ou menos, isso deve funcionar.

$ xkbcomp $DISPLAY - > origkeymap.xkb
#         (from)  (to)

// the # keys on a typical PC keyboard are AE01,AE02,...,AE09,AE10
// in the xkb_symbols section you'll find these:
    key <AE01> {
        type= "FOUR_LEVEL",
        symbols[Group1]= [ 1, exclam, onesuperior, exclamdown ]
    };

Agora edite mykeymap.xkb e insira as substituições necessárias:

// Attempting to place XF86Switch_VT_N keysyms on 1-0.
//
// starting point: setxkbmap -layout us -variant altgr-intl -option '' -print
// load this file: xkbcomp mykeymap.xkb $DISPLAY
xkb_keymap {
    xkb_keycodes  { include "evdev+aliases(qwerty)" };
    xkb_types     { include "complete"      };
    xkb_compat    { include "complete"      };
    xkb_symbols   { 
        include "pc"
        include "us(altgr-intl)"
        include "inet(evdev)"

        // redefine numeric keys
        key <AE01> {
            type= "CTRL+ALT",
            symbols[Group1]= [ 1, exclam, onesuperior, exclamdown, XF86Switch_VT_1 ]
        };
        key <AE02> {
            type= "CTRL+ALT",
            symbols[Group1]= [ 2, at, twosuperior, dead_doubleacute, XF86Switch_VT_2 ]
        };
        key <AE03> {
            type= "CTRL+ALT",
            symbols[Group1]= [ 3, numbersign, threesuperior, dead_macron, XF86Switch_VT_3 ]
        };
        key <AE04> {
            type= "CTRL+ALT",
            symbols[Group1]= [ 4, dollar, currency, sterling, XF86Switch_VT_4 ]
        };
        key <AE05> {
            type= "CTRL+ALT",
            symbols[Group1]= [ 5, percent, EuroSign, dead_cedilla, XF86Switch_VT_5 ]
        };
        key <AE06> {
            type= "CTRL+ALT",
            symbols[Group1]= [ 6, asciicircum, dead_circumflex, onequarter, XF86Switch_VT_6 ]
        };
        key <AE07> {
            type= "CTRL+ALT",
            symbols[Group1]= [ 7, ampersand, dead_horn, onehalf, XF86Switch_VT_7 ]
        };
        key <AE08> {
            type= "CTRL+ALT",
            symbols[Group1]= [ 8, asterisk, dead_ogonek, threequarters, XF86Switch_VT_8 ]
        };
        key <AE09> {
            type= "CTRL+ALT",
            symbols[Group1]= [ 9, parenleft, leftsinglequotemark, dead_breve, XF86Switch_VT_9 ]
        };
        key <AE10> {
            type= "CTRL+ALT",
            symbols[Group1]= [ 0, parenright, rightsinglequotemark, dead_abovering, XF86Switch_VT_10 ]
        };

    };
    xkb_geometry  { include "pc(pc105)"     };
};

Agora você pode carregar este arquivo e testar as chaves:

# load keymap for all keyboards
$ xkbcomp mykeymap.xkb $DISPLAY

# load only on device id=# (see 'xinput -list')
$ xkbcomp -i # mykeymap.xkb $DISPLAY

Isso não alterará o mapa de teclas do console, portanto, voltar a usar esse teclado pode ser necessário.

Se o teste mostrar que essas teclas funcionam e não estiver atropelando outros usos dessas combinações de teclas, você poderá tornar este permanente método de modificação XKB favorito .

    
por 02.01.2018 / 02:31