Linux コンソール/キーボード設定
仮想コンソールのキーボードマッピング (keymap) やコンソールフォント、コンソールマップは kbd パッケージ (既にインストールされているはずです) によって提供されています。このパッケージには仮想コンソールを管理するための低水準なツールも多く含まれています。
目次
キーボード設定の表示
次のコマンドを使うことでキーボード設定を表示することができます:
$ localectl status
System Locale: LANG=ja_JP.UTF-8 VC Keymap: jp106 X11 Layout: n/a
キーボードレイアウトの設定
複数のコンポーネントによって構成されている XKB キーボードレイアウトとは異なり、仮想コンソールのキーボードレイアウトはコンポーネントがひとつしかありません。基本的にはひとつの keymap ファイルがひとつのキーボードレイアウトに対応しています (include ステートメントを使って共有の部分を共有することで keymap ファイルには複数のレイアウトを含めることができます)。keymap ファイルは /usr/share/kbd/keymaps/
ディレクトリツリーに保存されています。次のコマンドを使うことで利用可能な全てのキーマップを表示できます:
$ localectl list-keymaps
コンソールキーマップの命名規則は厳格には定まっていませんが、一般的には 2-letter country code と variant をスラッシュ (-
) かアンダースコア (_
) で区切った名前が付けられています。
find を使ってキーマップを調べることもできます:
$ find /usr/share/kbd/keymaps/ -type f
永続的な設定
高度な設定を /etc/vconsole.conf
ですることができ、起動時に systemd によって読み込まれます。KEYMAP
変数がキーマップの指定に使用されます。変数が空だったり設定されていない場合、デフォルトの値として us
キーマップが使われます。全てのオプションは man 5 vconsole.conf
を見て下さい。例:
/etc/vconsole.conf
KEYMAP=jp106 ...
localectl を使ってコンソールのキーマップを設定することも可能です。コマンドを実行することで /etc/vconsole.conf
内の KEYMAP
変数が変更され現在のセッションのキーマップが設定されます。例:
$ localectl set-keymap --no-convert jp106
詳しくは man 1 localectl
を参照してください。
一時的な設定
もちろん現在のセッションでのみ有効なキーマップを設定することもできます。異なるキーマップを試したり、問題を解決したりするときに有用です。
一時的な設定を行うには loadkeys ツールを使います。このツールは systemd によって /etc/vconsole.conf
に設定されたキーマップをロードするために内部的に使用されています。とても簡単に使えます:
# loadkeys keymap
詳しくは man 1 loadkeys
を参照してください。
他の設定
コンソールフォントの変更
kbd パッケージにはコンソールフォントやフォントマッピングを変更するためのツールが含まれています。フォントは /usr/share/kbd/consolefonts/
ディレクトリに保存されています。
vconsole.conf
内で FONT
や FONT_MAP
変数を使うことで設定できます:
/etc/vconsole.conf
... FONT=Lat2-Terminus16 FONT_MAP=8859-2
FONT
変数が空だったり設定されていない場合、カーネルに組み込まれているフォントがデフォルトとして使われます。詳細は man 5 vconsole.conf
を参照してください。
typematic delay と rate の調整
typematic delay はキーリピートを始めるのにキーを押し続ける必要がある時間 (ミリ秒) を表します。キーリピートが開始されると、typematic rate によって指定された頻度 (Hz) で文字が繰り返されます。これらの値は kbdrate コマンドを使うことで変更できます:
# kbdrate [-d delay] [-r rate]
例えば typematic delay を 200ms に typematic rate を 30Hz に設定するには、次のコマンドを実行します:
# kbdrate -d 200 -r 30
delay や rate の値を指定しないでコマンドを実行することで typematic の値をデフォルト (delay は 250ms で rate は 11Hz) に戻すことができます:
# kbdrate
Xorg で設定したい場合は Xorg でのキーボード設定#typematic delay と rate の調整を見てください。
Systemd サービス
systemd サービスを使ってキーボードレートを設定することもできます。例:
/etc/systemd/system/kbdrate.service
[Unit] Description=Keyboard repeat rate in tty. [Service] Type=oneshot RemainAfterExit=yes StandardInput=tty StandardOutput=tty ExecStart=/usr/bin/kbdrate -s -d 450 -r 60 [Install] WantedBy=multi-user.target