启动时打开数字锁定键 - Arch Linux 中文维基

跳转到内容

# 启动时打开数字锁定键

来自 Arch Linux 中文维基
翻译状态：

- 本文（或部分内容）译自 Activating numlock on bootup，最近一次同步于 2025-01-13，若英文版本有所更改，则您可以帮助同步与翻译更改的内容。
- 您可以在 ArchWiki 的对应页面找到本文翻译的原始修订历史。
- 本文可能与英文原文存在出入。

本文或本节需要翻译。要贡献翻译，请访问简体中文翻译团队。

附注： 部分内容已经过时（在 Talk:启动时打开数字锁定键# 中讨论）

## 控制台

### 早期启动 (mkinitcpio)

您可以在内核启动后立即在 initramfs 中启用 numlock。这是确保即使在输入全盘加密密码期间 numlock 也开启的唯一方法。安装 mkinitcpio-numlockAUR ，并在 `/etc/mkinitcpio.conf` HOOKS 数组中的 `encrypt` 之前添加 `numlock` mkinitcpio 钩子：

    /etc/mkinitcpio.conf

    ...
    HOOKS=(base udev autodetect microcode modconf kms keyboard keymap consolefont numlock block encrypt lvm2 filesystems fsck)
    ...

然后重新生成镜像以应用更改。

使用此方法的优势在于，numlock 设置将在后续启动过程中被复制，并且新的虚拟控制台将默认开启 numlock。

### 使用 Systemd 服务

提示：安装 systemd-numlockonttyAUR 并启用 `numLockOnTty` service 可以替代这些步骤。

首先创造在相关 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 编号。在原始 gettty unit 文件上添加一段扩展：

    /etc/systemd/system/getty@.service.d/activate-numlock.conf

    [Service]
    ExecStartPre=/bin/sh -c 'setleds -D +num < /dev/%I'

要禁用登录屏幕上打数字键启用提示，编辑 `getty@tty1.service`，添加 `--nohints` 到 agetty 选项:

    [Service]
    ExecStart=-/sbin/agetty -o '-p -- \\u' --nohints --noclear %I $TERM

### Bash 替代方案

将 `setleds -D +num` 加入到 `~/.bash_profile`. 需要注意的是，不同于其他方法，这种方式将会在你登录后才生效。

## X window

有许多可选方案：

### startx

安装 numlockx包 包，并将其添加到 `~/.xinitrc` xinitrc 文件所有 `exec` 语句前：

    ~/.xinitrc

    numlockx &
    exec window manager

### MATE

MATE 默认会保存上次启动时的数字键盘状态，要确保每次启动都启用：

     $ dconf write org.mate.peripherals-keyboard remember-numlock-state false
     $ dconf write org.mate.peripherals-keyboard numlock-state 'on'

### KDE Plasma 用户

系统设置 > 输入设备 > 键盘，硬件选项卡中，包含了 NumLock 行为的配置。

### GDM

因为`numlock-state`设置,要更改它，您必须更改相应的dconf键（并以`gdm`用户身份执行）

    # su
    # su gdm -s /bin/sh #become gdm user with a shell
    sh$ export $(dbus-launch)
    sh$ GSETTINGS_BACKEND=dconf gsettings set org.gnome.settings-daemon.peripherals.keyboard numlock-state on
    sh$ exit
    $ systemctl restart gdm
    #

### GNOME

运行下面命令:

     $ gsettings set org.gnome.desktop.peripherals.keyboard numlock-state true

要记住上次的数字键盘状态:

      $ gsettings set org.gnome.desktop.peripherals.keyboard remember-numlock-state true

### Xfce

在 `~/.config/xfce4/xfconf/xfce-perchannel-xml/keyboards.xml` 中确保以下值设定为 true:

    <property name="Numlock" type="bool" value="true"/>
    <property name="RestoreNumlock" type="bool" value="true"/>

注意：如果文件不存在，可以通过 设置 > 键盘 中的 启动时恢复数字按键状态 进行配置。这个配置会创建 `keyboards.xml`。

### SDDM

在`/etc/sddm.conf`配置文件中, 在`[General]`部分中添加以下行:

    [General]
    Numlock=on

### SLiM

取消文件`/etc/slim.conf`中如下行的注释(删除`#`):

    #numlock             on

### OpenBox

在文件 `~/.config/openbox/autostart` 中加入如下内容：

    numlockx &

### LightDM

参见 LightDM#NumLock on by default.

### LXDM

在 `/etc/lxdm/lxdm.conf` 中设置:

    numlock=1

### LXQt

在 `~/.config/lxqt/session.conf` 中设置:

    [Keyboard]
    numlock=true

## Wayland

### Sway

参见 Sway#初始化启用_CapsLock 。

### Hyprland

在 `~/.config/hypr/hyprland.conf` 中配置：

    ~/.config/hypr/hyprland.conf

    input {
      numlock_by_default = true
      ...
    }

### SDDM with KWIN (KDE Plasma)

在 `/var/lib/sddm/.config/kcminputrc` 中配置：

    /var/lib/sddm/.config/kcminputrc

    [Keyboard]
    NumLock=0

分类：​

- 启动过程
- 键盘

隐藏分类：​

- 使用“模板:Translateme”标记的页面或章节

启动时打开数字锁定键
添加话题