Estoy intentando reasignar la tecla Bloq Despl para que produzca el código clave de cualquiera de las teclas de Windows.
En primer lugar, descarto el mapa de teclas actual:
xkbcomp $DISPLAY original-dump
Luego busque los códigos clave de las claves que me interesan:
cat original-dump | grep SCLK
<SCLK> = 78;
cat original-dump | grep LWIN
<LWIN> = 133;
Ahora imprimo los nombres de los componentes en un archivo:
setxkbmap -print > original-components
Edite el archivo para agregar mi modificación de código clave:
xkb_keymap {
xkb_keycodes {
include "evdev+aliases(qwerty)"
// Remap Scroll-lock to the keycode of LWIN(133)
<SCLK> = 133;
};
xkb_types { include "complete" };
xkb_compat { include "complete" };
xkb_symbols { include "pc+us+inet(evdev)" };
xkb_geometry { include "pc(pc105)" };
};
Guardó el archivo anterior como componentes modificados y ejecutó:
xkbcomp modified-components $DISPLAY
Volcar de nuevo:
xkbcomp $DISPLAY original-dump
Verifique los códigos clave:
cat another-dump | grep SCLK
<SCLK> = 133;
Hasta ahora todo bien, pero cuando ejecuto xev
, el código clave de la tecla Bloq Despl sigue estando78.
Si corro:
xmodmap -e "keycode 78 = Super_L"
xevtodavía me muestra78, pero al menos funcionan los accesos directos que creé en XFCE para LWIN y RWIN.
Me gustaría saber en qué estoy haciendo malxkb. Gracias.
Respuesta1
Probé el siguiente nuevo enfoque (con éxito)
Creó un nuevo archivo nombrado sclkfile
en el /usr/share/X11/xkb/symbols/
directorio y agregó el siguiente contenido:
// Make the Scroll Lock key a left Super.
xkb_symbols "sclk_super" {
replace key <SCLK> { [ Super_L ] };
modifier_map Mod4 { <SCLK> };
};
Se agregó la nueva regla en /usr/share/X11/xkb/rules/evdev
:
sclkoption:sclk_super = +sclkfile(sclk_super)
Y descripciones de la regla en /usr/share/X11/xkb/rules/evdev.lst
:
! option
sclkoption Scroll Lock behaviour
sclkoption:sclk_super Scroll Lock is Super
Aquí también /usr/share/X11/xkb/rules/evdev.xml
:
<configItem>
<name>sclkoption</name>
<description>Scroll Lock behaviour</description>
</configItem>
<option>
<configItem>
<name>sclkoption:sclk_super</name>
<description>Scroll Lock is Super</description>
</configItem>
</option>
Finalmente ejecuta:
$ setxkbmap -option sclkoption:sclk_super
Sin errores y cuando imprimo los componentes de mi diseño:
$ setxkbmap -print
xkb_keymap {
xkb_keycodes { include "evdev+aliases(qwerty)" };
xkb_types { include "complete" };
xkb_compat { include "complete" };
xkb_symbols { include "pc+us+inet(evdev)+sclkfile(sclk_super)" };
xkb_geometry { include "pc(pc105)" };
};
La nueva regla está ahí.
Ahora, si ejecuto xev
:
keycode 78 (keysym 0xffeb, Super_R)
El código clave sigue siendo 78 pero el símbolo clave es Super_R.Éxito.