起動時に Numlock を有効化

提供: ArchWiki
ナビゲーションに移動 検索に移動

コンソール

Early bootup (mkinitcpio)

initramfs でカーネルが起動した直後に numlock を有効にすることができます。これは、フルディスク暗号化 パスワード入力中でも numlock が確実にオンになる唯一の方法です。 mkinitcpio-numlockAUR をインストールし、/etc/mkinitcpio.conf HOOKS 配列の encrypt の前に numlock mkinitcpio フックを追加します:

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

次に、変更を有効にするために Initramfs を再生成します。

この方法を使用する利点は、numlock 設定が後の起動プロセスでレプリケートされ、新しい仮想コンソールではデフォルトで numlock がオンになることです。

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 を参照。