Basato sulla risposta di @Michał Górny. Ecco i comandi per disabilitare il blocco numerico, usare comunque i numeri e mappare il blocco numerico su F13 (può essere utile per collegarsi a una funzione speciale nel tuo gestore di finestre).
# 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"
È bello non avere la spia del blocco numerico sempre accesa :)
Cominciamo con qualche spiegazione di cosa sta succedendo e perché la tua idea non funziona. Innanzitutto, dai un'occhiata alla mappa dei modificatori:
$ 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)
Come puoi vedere, Num_Lock
è mod2
qui. Quando è attivo, tutti gli eventi di pressione dei tasti hanno mod2
un po'.
Se lo disabiliti in questo modo:
$ 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)
Nota che mod2
è ora associato a BadKey
, e questo sembra confondere molto Xorg. In effetti, la maggior parte delle modifiche alla mappa dei modificatori sembra rompere X11 per me.
In questo momento, non riesco a trovare una buona soluzione che implichi giocare con la mappa del modificatore. Ma ho un'altra idea:puoi mappare tutti i tasti della tastiera in modo che funzionino allo stesso modo con il blocco numerico sia attivato che disattivato. Cioè:
xmodmap -e "keysym KP_Up = KP_8"
xmodmap -e "keysym KP_Left = KP_4"
# ...
ecc. Dopo averlo fatto, lo stato del blocco numerico non avrà più importanza.
Puoi anche rimuovere il modificatore in seguito per spegnere il LED:
xmodmap -e "remove mod2 = Num_Lock"