Mapa Control-Mayúsculas-Tab en rxvt-unicode

9

Me gustaría asignar la combinación de teclas Ctrl+ Shift+ Taben rxvt-unicode. Logré mapear Ctrl+ de la Tabsiguiente manera. La entrada correspondiente en .Xresourceses

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

El uso cat -vconfirma que esta asignación funciona:

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

La secuencia ^[[27;5;9~se puede usar en aplicaciones como vimmapeo Ctrl+ Tab. Esperaría que la siguiente .Xresourcesentrada funcione igual.

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

Sin embargo, catno muestra la asignación correcta:

$ cat -v
^[[Z

¿Cómo configurar el mapeo Ctrl+ Shift+ Tab?

Editar

Los mapeos

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

comportarse igual. Después de presionar Ctrl+ Tab, soltando ambos y luego presionando Return dos veces y luego presionando Ctrl+ Shift+ Tab, soltando todo y luego presionando Return dos veces obtengo la siguiente salida:

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


^[[27;6;9~↵
^[[27;6;9~M-bM-^FM-5
  • Caso Ctrl+ Tab: el primer retorno hace que la entrada aparezca nuevamente como salida.
  • Caso Ctrl+ Shift+ Tab: El primer retorno produce el signo , el segundo retorno produce la última línea que se muestra arriba.

Próxima edición: más información

¿Qué sucede si presiona ctrl-shift (suelte ambos sin presionar ninguna tecla) y luego ingrese en una ventana diferente?

En una ventana de urxvt diferente? Cuando presiono Ctrl + Shift y suelto ambas teclas, aparece un cuadro amarillo estridente en la esquina inferior izquierda: KEYCAP PICTURE INSERT MODEparece provenir de urxvt, no aparece en otras aplicaciones.

O incluso simplemente ctrl-shift-tab y luego ingrese en una ventana diferente (es decir, no rxvt, como en una ventana gedit o el navegador web o algo así).

Me sale una nueva línea.

¿Qué sucede si presiona shift + ctrl + tab [es decir, shift down, ctrl down, tab, ctrl up, shift up] o viceversa si eso era lo que estaba haciendo?

En 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)

Estoy tratando de reducir las cosas porque creo que podría tener algún tipo de mapeo en "ctrl + shift" en xcompose o algo así.

No es que yo sepa, pero nunca se sabe.

¿Cuál es la salida de xev cuando presiona "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
Marco
fuente
No tengo idea de si esto funcionará, así que aún no publico como respuesta, pero intente Control-Shift-ISO_Left_Tab o Control-ISO_Left_Tab.
Random832
@ Random832 Definitivamente es un empujón en la dirección correcta, pero el mapeo se comporta de manera extraña. Cuando presiono Ctrl-Tab cat -vsale la secuencia mencionada, Ctrl-Shift-Tabemite la secuencia correcta, ^[[27;6;9~sin embargo, la siguiente tecla no se interpreta como de costumbre. En la cat -vsalida Ctrl-Shift-Tab+ enter se muestra como ^[[27;6;9~↵, en lugar de dos líneas ^[[27;6;9~(una para la entrada, una para la salida). Este mapeo no funcionaría en vim. ¿Tienes otra idea?
Marco
¿Como un símbolo ↵ literal? ¿Estás liberando ctrl-shift antes de presionar enter? ¿Cuál de las dos asignaciones que sugerí funcionó para poder comenzar a escribir una respuesta?
Random832
@ Random832 Agregué información más detallada (ver edición). Gracias por tu esfuerzo hasta ahora.
Marco
¿Qué sucede si presiona ctrl-shift (suelte ambos sin presionar ninguna tecla) y luego ingrese en una ventana diferente? O incluso simplemente ctrl-shift-tab y luego ingrese en una ventana diferente (es decir, no rxvt, como en una ventana gedit o el navegador web o algo así). ¿Qué sucede si presiona shift + ctrl + tab [es decir, shift down, ctrl down , tab, ctrl arriba, mayúscula] o viceversa si eso era lo que estabas haciendo? Estoy tratando de reducir las cosas porque creo que podría tener algún tipo de mapeo en "ctrl + shift" en xcompose o algo así. ¿Cuál es la salida de xevcuando presiona "ctrl + shift + tab, enter"?
Random832

Respuestas:

2

Shift+ a Tabmenudo se asigna al ISO_Left_Tabkeyym en X11, por lo que algunos programas pueden necesitar esto en lugar de una 'pestaña de desplazamiento' literal en su configuración.

urxvt tiene un mapeo extraño en ctrl + shift, parece que tendrá que volver a compilar para deshabilitarlo: vea esta página para más detalles. EDITAR Parece que en las versiones recientes de rxvt simplemente puede agregar

URxvt.iso14755_52: False
Aleatorio832
fuente
3

Tengo que S-Tabtrabajar con esto:

URxvt.keysym.C-Tab: \033{
URxvt.keysym.Control-Shift-ISO_Left_Tab: \033} 
! disable ctrl-shift
URxvt*iso14755: False 
URxvt*iso14755_52: False

y en vim tengo

nmap ^[{ :tabnext<cr>
imap ^[{ <ESC>:tabnext<cr>
nmap ^[} :tabprevious<cr>
imap ^[} <ESC>:tabprevious<cr>
usuario2565785
fuente
1

Respuesta parcial: puede deshabilitar el modo Control-Shift ISO 14755, al menos en URxvt moderno, agregando lo siguiente a su archivo .Xdefaults (o tal vez .Xresources, dependiendo de su sistema):

URxvt.iso14755:    false
URxvt.iso14755_52: false
Peter
fuente