Como ligar. Tab only = Tab, mas Tab com outra chave = WinKey + outra chave

1

Eu quero remapear minha tecla Tab , então quando ela clica somente sem nenhuma tecla extra, ela age como Tab normalmente, mas quando eu a combino com outras teclas como a Tab + j ele se comportará como Win .

TAB = TAB (pressed solely)
TAB + (any_key) = WIN_KEY + (any_key)

Qual ferramenta devo usar para isso?

    
por Miszo97 19.09.2018 / 22:58

2 respostas

0

@Goro em sua resposta listou boas ferramentas para reconhecer uma tecla pressionada como xev . Mas a segunda parte de sua resposta não era o que eu estava procurando.

Eu queria mudar o comportamento da tecla Tab e não da Windows . Por exemplo, para ativar o script no gerenciador de janelas do i3 para alterar a janela, eu posso pressionar Tab + 1 para alternar para a primeira tela. Win + 1 (padrão). Mas eu ainda posso usar o Tab para fazer um recuo se eu o pressionar apenas.

O que fiz para funcionar foi usando xmodmap e xcape .

spare_modifier="Super_L"
echo $spare_modifier
xmodmap -e "keycode 23 = $spare_modifier"
xmodmap -e "remove mod4 = $spare_modifier"
xmodmap -e "add Win = $spare_modifier"
xmodmap -e "add mod4 = $spare_modifier"
xmodmap -e "keycode any = Tab"
xcape -e "$spare_modifier=Tab"
    
por 24.09.2018 / 15:15
0

Você precisa de duas ferramentas baseadas em linha de comando, xev e xmodmap .

Você pode usar xev para remapear uma chave. Inicie a janela do terminal e execute xev e, em seguida, pressione a tecla cujo comportamento você deseja alterar. No seu caso, a tecla Tab .

xev mostrará informações sobre a tecla Tab . como:

 KeyRelease event, serial 37, synthetic NO, window 0x4000001,
    root 0x75, subw 0x0, time 4090453521, (461,542), root:(468,620),
    state 0x10, keycode 23 (keysym 0xff09, Tab), same_screen YES,
    XLookupString gives 1 bytes: (09) " "
    XFilterEvent returns: False

A terceira linha é a mais importante, onde Tab é o nome do comportamento ao qual a chave é atribuída no momento, o número keycode 23 é o ID interno para reconhecer a tecla Tab.

ou as informações sobre a chave Windows :

KeyPress event, serial 37, synthetic NO, window 0x4000001,
    root 0x75, subw 0x0, time 4090816069, (681,389), root:(688,467),
    state 0x10, keycode 115 (keysym 0xffeb, Super_L), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

Novamente, a terceira linha é a mais importante, onde Super_L é o nome do comportamento ao qual a chave está atribuída no momento, o número keycode 115 é o ID interno para reconhecer a chave Windwos.

Você pode usar xmodmap para trocar duas chaves. Aqui está um tutorial . Por exemplo:

xmodmap -e "keycode 115 = Tab"

Isso alterará o comportamento das teclas do Windows e fará com que ele se comporte exatamente como uma tecla Tab. ou

xmodmap -e "keycode 115 = Tab j"

Isto mudará o comportamento das teclas Tab + j e fará com que ele se comporte como a tecla Tab .

    
por 19.09.2018 / 23:42