@Michał Górnyの回答に基づいています。 num-lock を無効にし、とにかく数字を使用し、numlock を F13 にマップするコマンドは次のとおりです (ウィンドウ マネージャーの特別な機能にバインドすると便利な場合があります)。
# 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"
常に numlock ライトが点灯していないのはいいですね :)
何が起こっているのか、そしてなぜあなたのアイデアがうまくいかないのかについての説明から始めましょう。まず、修飾子マップを見てください:
$ 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)
ご覧のとおり、Num_Lock
mod2
です ここ。オンにすると、すべてのキー押下イベントに mod2
が付きます
次のように無効にすると:
$ 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)
mod2
に注意してください BadKey
に関連付けられました 、これは Xorg をかなり混乱させているようです。実際、モディファイヤ マップの変更のほとんどは、私にとって X11 を壊しているように見えます。
現在、モディファイア マップをいじる良い解決策が見つかりません。しかし、別のアイデアがあります。すべてのキーパッド キーをマッピングして、Num Lock のオンとオフの両方で同じように機能させることができます。つまり:
xmodmap -e "keysym KP_Up = KP_8"
xmodmap -e "keysym KP_Left = KP_4"
# ...
など。これを行うと、num lock の状態は問題になりません。
後で修飾子を削除して、LED スイッチをオフにすることもできます:
xmodmap -e "remove mod2 = Num_Lock"