起動時に Numlock を有効化
目次
コンソール
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
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'
Bash を使う
~/.bash_profile
に setleds -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
あるいは、起動スクリプトまたは ~/.profile
に numlockx 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