Mapear Ctrl-Shift-Tab no rxvt-unicode

8

Gostaria de mapear os atalhos de teclado Ctrl + Deslocamento + Guia em rxvt-unicode . Eu consegui mapear Ctrl + Tab como segue. o entrada correspondente em .Xresources é

URxvt.keysym.Control-Tab: 3[27;5;9~

Usar cat -v confirma que esse mapeamento funciona:

$ cat -v
^[[27;5;9~

A sequência ^[[27;5;9~ pode então ser usada em aplicativos como vim para mapeamento Ctrl + Separador . Eu gostaria espere que a seguinte entrada .Xresources funcione da mesma forma.

URxvt.keysym.Control-Shift-Tab: 3[27;6;9~

No entanto, cat não mostra o mapeamento correto:

$ cat -v
^[[Z

Como configurar o Ctrl + Deslocamento + mapeamento do Tab ?

Editar

Os mapeamentos

URxvt.keysym.Control-ISO_Left_Tab: 3[27;6;9~    
URxvt.keysym.Control-Shift-ISO_Left_Tab: 3[27;6;9~

se comporte da mesma forma. Depois de pressionar primeiro Ctrl + Tab , liberando ambos e depois pressionando Retornar duas vezes e pressionando Ctrl + Shift + Tab , liberando tudo e pressionando Retornar duas vezes Eu recebo a seguinte saída:

$ cat -v
^[[27;5;9~
^[[27;5;9~


^[[27;6;9~↵
^[[27;6;9~M-bM-^FM-5
  • Caso Ctrl + Guia : O primeiro retorno faz a entrada aparecer novamente como saída.
  • Caso Ctrl + Deslocamento + Guia : O primeiro retorno produz o sinal , o segundo retorno produz a última linha mostrada acima .

Próxima edição: Mais informações

What happens if you press ctrl-shift (release both without pressing any keys), then enter, in a different window?

Em uma janela diferente de urxvt? Quando pressiono Ctrl + Shift e libero ambas as teclas A caixa amarela estridente aparece no canto inferior esquerdo: KEYCAP PICTURE INSERT MODE parece vir de urxvt, não aparece em outras aplicações.

Or even just ctrl-shift-tab then enter in a different window (i mean not rxvt, like in a gedit window or the web browser or something.)

Eu recebo uma nova linha.

What happens if you press shift+ctrl+tab [i.e. shift down, ctrl down, tab, ctrl up, shift up] instead, or vice versa if that was what you were doing?

Em urxvt?

$ cat -v
shift+ctrl+tab then enter: ^[[27;6;9~
ctrl+shift+down: ↓
ctrl+shift+up: ↑
shift+down: ^[[b
shift+up: ^[[a
ctrl+down: ^[Ob
ctrl+up: ^[Oa
tab: |       | (tab)

I'm trying to narrow down things because I think you might have some sort of mapping on "ctrl+shift" in xcompose or something.

Não que eu saiba, mas você nunca sabe.

What is the output of xev when you press "ctrl+shift+tab, enter"?

KeyPress event, serial 32, synthetic NO, window 0x4800001,
    root 0xb4, subw 0x0, time 311734869, (567,395), root:(567,411),
    state 0x0, keycode 66 (keysym 0xffe3, Control_L), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyPress event, serial 35, synthetic NO, window 0x4800001,
    root 0xb4, subw 0x0, time 311734971, (567,395), root:(567,411),
    state 0x4, keycode 62 (keysym 0xffe2, Shift_R), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyPress event, serial 35, synthetic NO, window 0x4800001,
    root 0xb4, subw 0x0, time 311736110, (567,395), root:(567,411),
    state 0x5, keycode 23 (keysym 0xfe20, ISO_Left_Tab), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 35, synthetic NO, window 0x4800001,
    root 0xb4, subw 0x0, time 311736494, (567,395), root:(567,411),
    state 0x5, keycode 23 (keysym 0xfe20, ISO_Left_Tab), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 35, synthetic NO, window 0x4800001,
    root 0xb4, subw 0x0, time 311736525, (567,395), root:(567,411),
    state 0x5, keycode 62 (keysym 0xffe2, Shift_R), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 35, synthetic NO, window 0x4800001,
    root 0xb4, subw 0x0, time 311736525, (567,395), root:(567,411),
    state 0x4, keycode 66 (keysym 0xffe3, Control_L), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyPress event, serial 35, synthetic NO, window 0x4800001,
    root 0xb4, subw 0x0, time 311737530, (567,395), root:(567,411),
    state 0x0, keycode 36 (keysym 0xff0d, Return), same_screen YES,
"   XLookupString gives 1 bytes: (0d) "
"   XmbLookupString gives 1 bytes: (0d) "
    XFilterEvent returns: False

KeyRelease event, serial 35, synthetic NO, window 0x4800001,
    root 0xb4, subw 0x0, time 311737633, (567,395), root:(567,411),
    state 0x0, keycode 36 (keysym 0xff0d, Return), same_screen YES,
"   XLookupString gives 1 bytes: (0d) "
    XFilterEvent returns: False
    
por Marco 08.10.2012 / 10:49

3 respostas

1

A tecla Shift + Tab é freqüentemente mapeada para o ISO_Left_Tab keysym no X11, então alguns programas podem precisar disso em vez de um literal 'shift- tab 'em sua configuração.

urxvt tem um mapeamento estranho em ctrl + shift, parece que você terá que recompilar para desabilitá-lo: veja esta página para mais detalhes. EDIT Parece que em versões recentes do rxvt você pode simplesmente adicionar

URxvt.iso14755_52: False
    
por 08.10.2012 / 17:25
2

Eu tenho S-Tab trabalhando com isso:

URxvt.keysym.C-Tab: 3{
URxvt.keysym.Control-Shift-ISO_Left_Tab: 3} 
! disable ctrl-shit
URxvt*iso14755: False 
URxvt*iso14755_52: False

e no vim eu tenho

nmap ^[{ :tabnext<cr>
imap ^[{ <ESC>:tabnext<cr>
nmap ^[} :tabprevious<cr>
imap ^[} <ESC>:tabprevious<cr>
    
por 07.06.2014 / 13:14
1

Resposta parcial: Você pode desativar o modo ISO 14755 do Control-Shift - pelo menos no URxvt moderno - adicionando o seguinte ao seu arquivo .Xdefaults (ou talvez .Xresources, dependendo do seu sistema):

URxvt.iso14755:    false
URxvt.iso14755_52: false
    
por 17.11.2017 / 11:31