跳至內容

啟動時打開數字鎖定鍵

出自 Arch Linux 中文维基

本文或本節需要翻譯。要貢獻翻譯,請訪問簡體中文翻譯團隊

附註: 部分內容已經過時(在 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