Basado en la respuesta de @Michał Górny. Estos son los comandos para deshabilitar el bloqueo numérico, usar números de todos modos y asignar el bloqueo numérico a F13 (puede ser útil para enlazar a una función especial en su administrador de ventanas).
# NumLock is F13
xmodmap -e "remove mod2 = Num_Lock" \
-e "keycode 77 = F13"
# Use numbers even when numlock is off
xmodmap -e "keysym KP_End = KP_1" \
-e "keysym KP_Down = KP_2" \
-e "keysym KP_Next = KP_3" \
-e "keysym KP_Left = KP_4" \
-e "keysym KP_Begin = KP_5" \
-e "keysym KP_Right = KP_6" \
-e "keysym KP_Home = KP_7" \
-e "keysym KP_Up = KP_8" \
-e "keysym KP_Prior = KP_9" \
-e "keysym KP_Insert = KP_0" \
-e "keysym KP_Delete = KP_Decimal"
Es bueno no tener la luz de bloq num encendida todo el tiempo :)
Comencemos con una explicación de lo que está sucediendo y por qué su idea no funciona. Primero, echa un vistazo al mapa de modificadores:
$ xmodmap
xmodmap: up to 3 keys per modifier, (keycodes in parentheses):
shift Shift_L (0x32), Shift_R (0x3e)
lock Caps_Lock (0x42)
control Control_L (0x25), Control_R (0x69)
mod1 Alt_L (0x40), Meta_L (0xcd)
mod2 Num_Lock (0x4d)
mod3
mod4 Super_L (0x85), Super_L (0xce), Hyper_L (0xcf)
mod5 ISO_Level3_Shift (0x5c), Mode_switch (0xcb)
Como puedes ver, Num_Lock
es mod2
aquí. Cuando está activado, todos los eventos de pulsación de tecla vienen con mod2
poco encendido.
Si lo deshabilitas así:
$ xmodmap -e "keycode 77 = NoSymbol"
$ xmodmap
xmodmap: up to 3 keys per modifier, (keycodes in parentheses):
shift Shift_L (0x32), Shift_R (0x3e)
lock Caps_Lock (0x42)
control Control_L (0x25), Control_R (0x69)
mod1 Alt_L (0x40), Meta_L (0xcd)
mod2 BadKey (0x4d)
mod3
mod4 Super_L (0x85), Super_L (0xce), Hyper_L (0xcf)
mod5 ISO_Level3_Shift (0x5c), Mode_switch (0xcb)
Tenga en cuenta que mod2
ahora está asociado con BadKey
, y esto parece confundir mucho a Xorg. De hecho, la mayoría de los cambios en el mapa modificador parecen romper X11 para mí.
En este momento, no puedo encontrar una buena solución que implique jugar con el mapa modificador. Pero tengo otra idea:puede asignar todas las teclas del teclado para que funcionen igual con el bloqueo numérico activado y desactivado. Eso es:
xmodmap -e "keysym KP_Up = KP_8"
xmodmap -e "keysym KP_Left = KP_4"
# ...
etc. Una vez que haga eso, el estado de bloq num ya no importará.
Incluso puede quitar el modificador después para apagar el LED:
xmodmap -e "remove mod2 = Num_Lock"