Reasignación de teclado [Alt_L] + {ijkl} como flecha {Arriba, Izquierda, Abajo, Derecha}

Reasignación de teclado [Alt_L] + {ijkl} como flecha {Arriba, Izquierda, Abajo, Derecha}

Quiero usar 'ijkl' junto con alt para que actúe como teclas de flecha. es decir, Alt+i = Arriba, Alt+K = Abajo, etc.

Yo he tratadoxmodmapasiguienteesta respuesta. La respuesta dice que la tecla Alt modificada es la tercera columna en xmodmap. Sin embargo, xmodmap -e "keycode 31 = i I Up"no asigna hasta Alt+i.

yo también lo he probadoxbindkeyssiguienteotra respuesta. Pero esto no funciona tan bien.

"xvkbd -xsendevent -text '\[Left]'"
m:0x18 + c:44
alt + j

"xvkbd -xsendevent -text '\[Down]'"
m:0x18 + c:45
alt + k

"xvkbd -xsendevent -text '\[Right]'"
m:0x18 + c:46
alt + l

"xvkbd -xsendevent -text '\[Up]'"
m:0x18 + c:31
alt + i

Agradecería mucho una solución, preferiblemente que no rompa otras combinaciones alternativas que tengo como ctrl+alt+t para abrir la terminal, etc.

editar: (si ayuda a la respuesta) después de hacerloxmodmapareasignación cuando ejecuto xev y presiono Alt+i, devuelve lo siguiente.

KeyPress event, serial 37, synthetic NO, window 0x2e00001,
    root 0x66b, subw 0x0, time 35626163, (161,-15), root:(261,144),
    state 0x10, keycode 64 (keysym 0xffe9, Alt_L), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

FocusOut event, serial 37, synthetic NO, window 0x2e00001,
    mode NotifyGrab, detail NotifyAncestor

KeyPress event, serial 37, synthetic YES, window 0x2e00001,
    root 0x66b, subw 0x0, time 0, (1,1), root:(1,1),
    state 0x0, keycode 50 (keysym 0xffe1, Shift_L), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 37, synthetic YES, window 0x2e00001,
    root 0x66b, subw 0x0, time 0, (1,1), root:(1,1),
    state 0x1, keycode 50 (keysym 0xffe1, Shift_L), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyPress event, serial 37, synthetic YES, window 0x2e00001,
    root 0x66b, subw 0x0, time 0, (1,1), root:(1,1),
    state 0x0, keycode 111 (keysym 0xff52, Up), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 37, synthetic YES, window 0x2e00001,
    root 0x66b, subw 0x0, time 0, (1,1), root:(1,1),
    state 0x0, keycode 111 (keysym 0xff52, Up), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

FocusIn event, serial 37, synthetic NO, window 0x2e00001,
    mode NotifyUngrab, detail NotifyAncestor

KeymapNotify event, serial 37, synthetic NO, window 0x0,
    keys:  4294967216 0   0   0   0   0   0   0   1   0   0   0   0   0   0   0   
           0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   

KeyRelease event, serial 37, synthetic NO, window 0x2e00001,
    root 0x66b, subw 0x0, time 35628444, (161,-15), root:(261,144),
    state 0x18, keycode 64 (keysym 0xffe9, Alt_L), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

Primero, no sé por qué.Mayús_Laparece. En segundo lugar, muestra queArribaLa pulsación de tecla incluso se registra de alguna manera, pero no tiene ningún efecto, por ejemplo, no mueve el cursor hacia arriba.

(Yo uso Ubuntu 20.04)

Respuesta1

Hice esto editando el archivo correspondiente en el/usr/share/X11/xkb/símbolosdirectorio. Como uso una distribución de teclado alemana, para mí esto es esto./Delawarearchivo. Agregué/cambié las siguientes líneas en el primer bloque:

xkb_symbols "básico" {

...

key <AD08>  { [         i,          I,    Up,          Up ] };
key <AC07>  { [         j,          J,    Left,        Left ] };
key <AC08>  { [         k,          K,    Down,        Down ] };
key <AC09>  { [         l,          L,    Right,       Right ] };

...

include "level3(alt_switch)"

};

Las primeras líneas hacen que ALTGR + I = Arriba y así sucesivamente, lo cual está bien para mí ya que nunca uso esas combinaciones. Luego, la última línea esencialmente hace que ALT haga lo mismo que ALTGR. Esto funciona, pero no es nada bueno, ya que, como mencionaste, estropea las otras combinaciones ALT. Mi solución para esto fue simplemente no usar ALT para esto sino alguna otra tecla que está en una buena posición y que de todos modos nunca he necesitado: RWIN. En otras palabras, reemplacé la última línea por

include "level3(rwin_switch)" 

De esta manera, ahora puedo presionar RWIN cómodamente con mi meñique para navegar con ijkl como teclas de flecha. Lo bueno es que, a diferencia de otras soluciones, aún puedes presionar, por ejemplo, SHIFT + RWIN + L para seleccionar texto.

Espero que esto ayude :)

información relacionada