Como saber o que é super chave?

3

Eu tenho esta saída do comando xmodmap :

shift       Shift_L (0x32),  Shift_R (0x3e)
lock        Caps_Lock (0x42)
control     Control_L (0x25),  Caps_Lock (0x42),  Control_R (0x69)
mod1        Alt_L (0x40),  Alt_R (0x6c),  Meta_L (0xcd)
mod2        Num_Lock (0x4d)
mod3
mod4        Super_L (0x85),  Super_R (0x86),  Super_L (0xce),  Hyper_L (0xcf)
mod5        ISO_Level3_Shift (0x5c),  Mode_switch (0xcb)

Então eu me pergunto o que é super chave aqui? O problema é que quando eu tento mapear superchave, aqui eu assumo mod4 as windows button left para uma chave de combinação usando sxhkd daemon, parece não funcionar, por exemplo, mapear para abrir firefox , no efeito.

EDIT: Estou tentando usar windows left button no teclado para mapear rapidamente algum comando usando sxhkd daemon no archlinux, como discutido no comentário, mesmo que eu tenha keycod 133 mod4 = Super_L em .Xmodmap , usando mod4 em .config/sxhkd/sxhkdrc para mapear, por exemplo, para abrir o firefox:

mod4 + f
   firefox

isto parece não funcionar, pressione windows lef button e f não invocou o firefox nem eu, apenas imprima séries de ffffff no terminal.

    
por Tuyen Pham 15.10.2018 / 15:28

1 resposta

6

Em resposta a sua primeira pergunta "Eu me pergunto o que é super chave aqui": xmodmap não pode dizer qual é o código da chave, você tem que usar o comando xev , check xev man para mais informações.

Chame xev do terminal, depois clique em "superchave", depois verifique a informação de saída no terminal. Será algo assim:

KeyRelease event, serial 37, synthetic NO, window 0x4000001,
    root 0x75, subw 0x0, time 2014984514, (70,-18), root:(82,60),
    state 0x50, keycode 115 (keysym 0xffeb, Super_L), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

xev tende a gerar muita saída, especialmente quando você move o mouse sobre a janela do terminal. Você pode ter que voltar um pouco para encontrar a saída que está procurando. Na saída anterior, vemos que o super_L tem o código de acesso 115.

Para verificar o mapeamento do teclado, o utilitário xmodmap pode ser usado para essa finalidade. Chame xmodmap do terminal ', isso imprimirá modificadores virtuais ou abstratos (ou mod) semelhantes à tabela fornecida na sua pergunta.

Tutorial:

Na tabela fornecida no texto da pergunta, parece que mod3 não está em uso. A super-chave do Windows é mapeada em mod4 e Hyper_R (ou F8) não está mapeada.

Digamos que gostaríamos de mapear Hyper_R para mod3 . Nós fazemos o seguinte:

  • Ligue para xev do terminal > > pressione Hyper_R . Isso mostrará o seguinte:

    Evento KeyRelease, série 37, NO sintético, janela 0x4000001,     raiz 0x75, subw 0x0, hora 2188213888, (74, -12), raiz: (687,178),     estado 0x10, código de acesso 74 (keysym 0xffc5, F8), same_screen YES,     XLookupString dá 0 bytes:     XFilterEvent retorna: False

  • Abra gedit e digite o seguinte:

    claro mod3 keycode 74 = Hyper_R adicione mod3 = Hyper_R

  • Salve essas informações como um arquivo oculto em seu diretório pessoal. Nomeie o arquivo .Xmodmap .

  • Efetue logout e depois em. Depois, abra o terminal e chame xmodmap . Você deve ver Hyper_R mod3 mapeado e assim por diante para qualquer outro propósito de mapeamento. Para fins de mapeamento mais complicado, você pode considerar que algumas outras ferramentas podem ser mais úteis, consulte aqui

Tenha em mente:

xmodmap não pode definir uma chave para digitar combinações de teclas como CTRL + W

xmodmap não pode definir uma chave para executar um script.

xmodmap key não pode alterar a chave com base no aplicativo atual.

    
por 15.10.2018 / 16:23