恥は/dev/nullへ by 初心者

プログラミング素人がのろのろと学んだことをつづっています♪

X Window System起動時にNumLockキーをONにする

ウィンドウマネージャ(i3wm)が起動した際にNumLockキーがオンになっていないことに気づきました。そこで、

setleds +num

を実行してみたところ、

setleds: Unable to read keyboard flags: デバイスに対する不適切なioctlです

と怒られてしまいました^^;。X Window内のターミナルエミュレータでsetledsは使えないようです。

そこで、解決方法を調べてみました。

参考にしたページ

https://wiki.archlinux.org/title/Activating_numlock_on_bootup

解決方法

上記「参考にしたページ」のstartxに関する部分を読むと

Install the numlockx package and add it to the ~/.xinitrc file before exec: 

という説明の後に、以下の記述例が書かれています。

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

numlockx &

exec window_manager


つまり、

(1) numlockxというソフトをインストールする。
(2).xinitrcファイルにおいて、ウィンドウマネージャを起動する前にnumlockxが実行されるように記述する。

とすれば良いみたいです。

実行例

sudo apt install numlockx

を行ってから、ホームディレクトリにある.xinitrcを以下のようにしました。

export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx
fcitx &
numlockx &
i3

(下から2行目にnumlockxを記述)

最後に、X Windowを終了し再びX Windowを起動すると、NumLockがONになっていました。