起動時に Numlock を有効化

提供: ArchWiki
2023年6月26日 (月) 09:35時点におけるKusanaginoturugi (トーク | 投稿記録)による版 (→‎Sway: 翻訳)
ナビゲーションに移動 検索に移動

コンソール

Early bootup (mkinitcpio)

You can enable numlock right after the kernel boots in the initramfs. This is the only way to ensure numlock is on even during full-disk encryption password entry. Install mkinitcpio-numlockAUR and add the numlock mkinitcpio hook before encrypt in the /etc/mkinitcpio.conf HOOKS array:

/etc/mkinitcpio.conf
...
HOOKS=(base udev autodetect keyboard keymap consolefont numlock modconf block encrypt lvm2 filesystems fsck)
...

Then regenerate the initramfs for the change to take effect.

An advantage of using this method is that the numlock setting will be replicated in the later boot process, and new virtual consoles will default to having numlock on.

With systemd service

ヒント: These steps can be automated by installing the systemd-numlockonttyAUR package and enabling the numLockOnTty service.

First create a script to set the numlock on relevant TTYs:

/usr/local/bin/numlock
#!/bin/bash

for tty in /dev/tty{1..6}
do
    /usr/bin/setleds -D +num < "$tty";
done

Once the script is created, you will need to make it executable. Otherwise the script cannot run.

Then create and enable a systemd service:

/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 の拡張

新しくサービスを作るのよりシンプルで(特に systemd-198 以降)、かつスクリプト内で VT の数をハードコード(決め打ち)しません。ディレクトリを作成してください:

# mkdir /etc/systemd/system/getty@.service.d

作成したディレクトリに以下のファイルを追加。

activate-numlock.conf
[Service]
ExecStartPost=/bin/sh -c 'setleds +num < /dev/%I'
ノート: このユニットファイルの拡張は systemd-198 からサポートされたものです。古いバージョンでは、デフォルトの getty@.service とスニペットから新しいユニットを作って下さい。詳しくはこのページの revision 250379 を見て下さい。

Bash を使う

~/.bash_profilesetleds -D +num を追加してください。この方法は、他の方法と違って、ログインするまでは Numlock が有効になりません。

X.org

様々な方法があります。

startx

numlockx パッケージをインストールして numlockx を ~/.xinitrc ファイルの exec の前に追加してください:

#!/bin/sh
#
# ~/.xinitrc
#
# Executed by startx (run your window manager from here)
#

numlockx &

exec window_manager

KDM

KDM をログインマネージャとして使っているのなら以下を /usr/share/config/kdm/Xsetup (KDM3 の場合は /opt/kde/share/config/kdm/Xsetup) に追加してください:

numlockx on

このファイルはアップデート時に上書きされるので注意してください。その際 .pacnew ファイルは作られません。上書きを防ぐには、次の行を /etc/pacman.conf ファイルに追加してください (パスの最初のスラッシュは省略します):

NoUpgrade = usr/share/config/kdm/Xsetup

KDE4 ユーザー

システム設定を開いてください。NumLock の挙動を変えるオプションがハードウェア/入力デバイス/キーボードにあります。

他の方法

あるいは、以下の内容で ~/.kde4/Autostart/numlockx スクリプトを追加してください:

#!/bin/sh
numlockx on

そしてスクリプトを実行可能にしてください:

$ chmod +x ~/.kde4/Autostart/numlockx

GDM

まず (extra から) numlockx をインストールしてください。それから以下のコードを /etc/gdm/Init/Default に追加してください:

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

あるいは、起動スクリプトまたは ~/.profilenumlockx on (numlockx から) を追加することもできます。

Xfce

~/.config/xfce4/xfconf/xfce-perchannel-xml/keyboards.xml ファイルの中の、以下の値を true に設定してください:

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

SDDM

/etc/sddm.conf ファイルの中の、[General] セクションの下に以下の行を追加してください:

[General]
Numlock=on

SLiM

/etc/slim.conf ファイルの中の以下の行をアンコメント (# を削除) してください:

#numlock             on

OpenBox

~/.config/openbox/autostart ファイルに以下の行を加えて下さい:

numlockx &

それからファイルを保存してください。

LightDM

LightDM#NumLock を ON にするを見て下さい。

LXDM

/etc/lxdm/lxdm.conf ファイルの以下の行をアンコメントして:

#numlock=0

以下のように変更してください:

numlock=1

Wayland

Sway

Sway#Initially enable CapsLock/NumLock を参照。