啟動時打開數字鎖定鍵 - 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」標記的頁面或章節

啟動時打開數字鎖定鍵
新增話題