Na základě odpovědi @Michał Górny. Zde jsou příkazy pro deaktivaci num-locku, použití čísel i přesto a mapování numlocku na F13 (může být užitečné při navázání na speciální funkci ve správci oken).
# 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"
Je hezké nemít neustále rozsvícenou kontrolku numlock :)
Začněme vysvětlením toho, co se děje a proč váš nápad nefunguje. Nejprve se podívejte na mapu modifikátoru:
$ 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)
Jak můžete vidět, Num_Lock
je mod2
tady. Když je zapnutá, všechny události stisku klávesy mají mod2
bit na.
Pokud jej zakážete takto:
$ 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)
Všimněte si, že mod2
je nyní spojeno s BadKey
, a zdá se, že to Xorg hodně mate. Ve skutečnosti se mi zdá, že většina změn mapy modifikátorů narušuje X11.
Právě teď nemohu najít dobré řešení, které by zahrnovalo hraní s modifikační mapou. Ale mám jiný nápad:můžete namapovat všechny klávesy klávesnice tak, aby fungovaly stejně se zapnutým i vypnutým num lock. To je:
xmodmap -e "keysym KP_Up = KP_8"
xmodmap -e "keysym KP_Left = KP_4"
# ...
atd. Jakmile to uděláte, na stavu num lock již nebude záležet.
Modifikátor můžete dokonce poté odstranit a vypnout LED diodu:
xmodmap -e "remove mod2 = Num_Lock"