禁用数字锁定指示灯 LED 或反向键盘,这样当数字锁定打开时,指示灯将熄灭

禁用数字锁定指示灯 LED 或反向键盘,这样当数字锁定打开时,指示灯将熄灭

我正在使用 Debian 测试/Stretch 和 Xfce。我刚买了这个有线键盘。我希望默认打开数字锁,但我不想让 LED 指示灯亮起。这可以通过完全禁用数字锁定指示器、反转状态(当数字锁定关闭时显示指示灯)来实现,或者可以将所有数字锁定关闭键重新映射为键入数字(这样我可以当指示灯打开或关闭时键入数字)。setleds -L -num有效,但仅在 tty 会话中有效。谢谢

答案1

您可以反转 Num Lock 的含义。使用 Xmodmap,将其放入您的.Xmodmap.

keycode  79 = KP_Home KP_7 KP_Home KP_7 KP_Home KP_7 KP_Home KP_7
keycode  80 = KP_Up KP_8 KP_Up KP_8 KP_Up KP_8 KP_Up KP_8
keycode  81 = KP_Prior KP_9 KP_Prior KP_9 KP_Prior KP_9 KP_Prior KP_9
keycode  83 = KP_Left KP_4 KP_Left KP_4 KP_Left KP_4 KP_Left KP_4
keycode  84 = KP_Begin KP_5 KP_Begin KP_5 KP_Begin KP_5 KP_Begin KP_5
keycode  85 = KP_Right KP_6 KP_Right KP_6 KP_Right KP_6 KP_Right KP_6
keycode  87 = KP_End KP_1 KP_End KP_1 KP_End KP_1 KP_End KP_1
keycode  88 = KP_Down KP_2 KP_Down KP_2 KP_Down KP_2 KP_Down KP_2
keycode  89 = KP_Next KP_3 KP_Next KP_3 KP_Next KP_3 KP_Next KP_3
keycode  90 = KP_Insert KP_0 KP_Insert KP_0 KP_Insert KP_0 KP_Insert KP_0
keycode  91 = KP_Delete KP_Decimal KP_Delete KP_Decimal KP_Delete KP_Decimal KP_Delete KP_Decimal

您可能需要添加xmodmap ~/.Xmodmap到启动应用程序中,我不确定 Xfce 是否默认这样做。

这样做的好处是,大多数时候,您不会打开 NumLock。一些程序在使用 NumLock 时遇到问题,因为它们认为它是一个修饰符,这会导致它们的键盘快捷键在它打开时不起作用。

如果您从未关闭 NumLock,则可以在使用时禁用 NumLock 键。

keycode 77 = NoSymbol

如果你喜欢痛苦,你可以使用XKB来代替。这是我的配置,它有效地使 NumLock 始终打开。创建一个文件,~/.xkb/types/mytypes其中包含

// Digits without NumLock, cursor with NumLock. Shift swaps the meaning.
// Do it this way because I almost always want digits, but the NumLock state
// breaks key bindings in some applications.
partial xkb_types "invert_numlock" {
  type "KEYPAD" {
    modifiers = Shift+NumLock;
    map[None] = Level2;
    map[Shift] = Level1;
    map[NumLock] = Level1;
    map[Shift+NumLock] = Level2;
    level_name[Level1] = "Base";
    level_name[Level2] = "Number";
  };
  include "extra(keypad)"
};

创建一个包含以下内容的文件~/.xkb/symbols/mysymbols

partial xkb_symbols "mykeypad" {
    key  <KP7> {         [            KP_7,         KP_Home ] };
    key  <KP8> {         [            KP_8,           KP_Up ] };
    key  <KP9> {         [            KP_9,        KP_Prior ] };
    key  <KP4> {         [            KP_4,         KP_Left ] };
    key  <KP5> {         [            KP_5,        KP_Begin ] };
    key  <KP6> {         [            KP_6,        KP_Right ] };
    key  <KP1> {         [            KP_1,          KP_End ] };
    key  <KP2> {         [            KP_2,         KP_Down ] };
    key  <KP3> {         [            KP_3,         KP_Next ] };
    key  <KP0> {         [            KP_0,       KP_Insert ] };
    key <KPDL> {         [      KP_Decimal,       KP_Delete ] };
};

运行以下 shell 命令作为 X 初始化启动的一部分(setxkbmap根据需要向调用添加其他选项):

setxkbmap -types "complete+mytypes(invert_numlock)" \
          -symbols "us+compose(menu)+mysymbols(mykeypad)" \
          -print | xkbcomp -I ~/.xkb - "$DISPLAY"

答案2

如果“数字锁定默认打开”意味着“默认情况下数字键盘上的按键”并且您不希望/不关心键盘上的导航:

setxkbmap -option numpad:mac <layout>

所以对于us布局:

setxkbmap -option numpad:mac us

现在,无论数字锁定状态如何,小键盘始终输入数字。

参考:xkeyboard-config 手册页

答案3

每次发出命令时,您都可以关闭 X11 中的 LED

xset -led named "Num Lock"

或者尝试明确的数字,例如xset -led 3.

相关内容