启动时启用 Numlock
控制台
早期启动 (mkinitcpio)
您可以在内核启动后立即在 initramfs 中启用 numlock。这是确保即使在 全盘加密 密码输入期间也启用 numlock 的唯一方法。安装 mkinitcpio-numlockAUR 并在 /etc/mkinitcpio.conf
HOOKS 数组中将 numlock
mkinitcpio 钩子添加到 encrypt
之前
/etc/mkinitcpio.conf
... HOOKS=(base udev autodetect microcode modconf kms keyboard keymap consolefont numlock block encrypt lvm2 filesystems fsck) ...
然后重新生成 initramfs 以使更改生效。
使用此方法的一个优点是 numlock 设置将在后续的启动过程中被复制,并且新的虚拟控制台将默认启用 numlock。
使用 systemd 服务
首先安装 numlockx 软件包。
然后创建一个脚本来在相关的 TTY 上设置 numlock
/usr/local/bin/numlock
#!/bin/bash for tty in /dev/tty{1..6} do /usr/bin/setleds -D +num < "$tty"; done
脚本创建完成后,您需要使其成为可执行文件。否则脚本无法运行。
然后创建并启用一个 systemd 服务
/etc/systemd/system/numlock.service
[Unit] Description=numlock [Service] ExecStart=/usr/local/bin/numlock StandardInput=tty RemainAfterExit=yes [Install] WantedBy=multi-user.target
扩展 getty@.service
这比使用单独的服务更简单,并且不会在脚本中硬编码 VT 的数量。为 getty@.service
创建一个放置片段,这些片段会应用在原始单元之上
/etc/systemd/system/getty@.service.d/activate-numlock.conf
[Service] ExecStartPre=/bin/sh -c 'setleds -D +num < /dev/%I'
ExecStartPre
替换为 ExecStartPost
,和/或禁用如下所述的提示。要禁用登录屏幕上显示的 numlock 激活提示,编辑 getty@tty1.service
并在 agetty 选项中添加 --nohints
[Service] ExecStart= ExecStart=-/sbin/agetty '-p -- \\u' --nohints --noclear %I $TERM
Bash 替代方案
将 setleds -D +num
添加到 ~/.bash_profile
。请注意,与其他方法不同,此方法在您登录后才会生效。
X.org
有多种方法可用。
startx
安装 numlockx 软件包并将其添加到 xinitrc 文件中的任何 exec
语句之前
~/.xinitrc
numlockx & exec window manager
MATE
默认情况下,MATE 会在注销时保存最后的状态,并在下次登录期间恢复它。要在每次登录时启用 numlock,您必须更改以下 dconf 属性
$ dconf write org.mate.peripherals-keyboard remember-numlock-state false $ dconf write org.mate.peripherals-keyboard numlock-state 'on'
KDE Plasma
转到系统设置 > 输入和输出 > 键盘,在硬件选项卡中的Plasma 启动时 NumLock 部分,选择所需的 NumLock 行为。
为了使此操作生效,请确保系统设置 > 系统 > 会话 > 后台服务 > 键盘守护程序已启用。
kcmshell6 kcm_kded
(根据您的 kcmshell 版本进行替换)应该会显示此菜单。GDM
/etc/gdm/Init
中的脚本。确保您已安装 numlockx,然后将以下代码添加到 ~/.xprofile
if [ -x /usr/bin/numlockx ]; then /usr/bin/numlockx on fi
GNOME
运行以下命令
$ gsettings set org.gnome.desktop.peripherals.keyboard numlock-state true
为了记住 numlock 键的最后状态(无论您禁用还是启用),请使用
$ gsettings set org.gnome.desktop.peripherals.keyboard remember-numlock-state true
或者,您可以将 numlockx on
(来自 numlockx)添加到启动脚本或 ~/.profile
。
Xfce
在文件 ~/.config/xfce4/xfconf/xfce-perchannel-xml/keyboards.xml
中,确保以下值设置为 true
~/.config/xfce4/xfconf/xfce-perchannel-xml/keyboards.xml
<property name="Numlock" type="bool" value="true"/> <property name="RestoreNumlock" type="bool" value="true"/>
keyboards.xml
文件。SDDM
在文件 /etc/sddm.conf
的 [General]
部分下,设置 Numlock=on
[General] ... Numlock=on
SLiM
在文件 /etc/slim.conf
中,找到该行并取消注释(删除 #
)
/etc/slim.conf
numlock on
OpenBox
在 autostart 文件中,添加
~/.config/openbox/autostart
numlockx &
LightDM
LXDM
在 lxdm.conf
中设置选项
/etc/lxdm/lxdm.conf
numlock=1
LXQt
在 ~/.config/lxqt/session.conf
中设置选项
~/.config/lxqt/session.conf
[Keyboard] numlock=true
Wayland
Sway
请参阅Sway#初始启用 CapsLock/NumLock。
Hyprland
在 ~/.config/hypr/hyprland.conf
中设置选项
~/.config/hypr/hyprland.conf
input { numlock_by_default = true ... }
使用 KWIN 的 SDDM (KDE Plasma)
在 /var/lib/sddm/.config/kcminputrc
中设置选项
/var/lib/sddm/.config/kcminputrc
[Keyboard] NumLock=0