Linux仮想ターミナルの背景色の設定方法
概要
Linuxは通常、デスクトップ環境と一緒に使用されることが多いですが、ブートプロセスや意図的(Ctrl+Alt+F2, Alt+F2などで)に仮想ターミナルを表示することができます。以下の説明では、この仮想ターミナルの背景色や文字色などを変更する方法を解説します。
setvtrgb
仮想ターミナルの色の変更は次のコマンドで行います。
setvtrgb FILE
引数FILE
は10進数または、16進数のフォーマットを満たすテキストファイルのパスであり、10進数のフォーマットを利用するテンプレートは次のコマンドで生成することができます。
cat /sys/module/vt/parameters/default_{red,grn,blu} > FILE
色の設定方法
setvtrgb
コマンドの引数へは以下のような内容を含むFILE
を指定する必要があります。
0,170,0,170,0,170,0,170,85,255,85,255,85,255,85,255
0,0,170,85,0,0,170,170,85,85,255,255,85,85,255,255
0,0,0,0,170,170,170,170,85,85,85,85,255,255,255,255
この10進数のフォーマットは1行目から順に赤(red
)、緑(grn
)、青(blu
)を意味しており、16個の要素は右から順にターミナルで利用されるANSIカラーパレットを表しています。
Normal | Bright | |
---|---|---|
Black | 0 | 8 |
Red | 1 | 9 |
Green | 2 | 10 |
Yellow | 3 | 11 |
Blue | 4 | 12 |
Purple | 5 | 13 |
Cyan | 6 | 14 |
White | 7 | 15 |
上の表のように0から順に対応しています。また、FILE
のフォーマットのように読み難いこともあるので、16進数のフォーマットで表すこともできます。
#000000
#AA0000
#00AA00
#AA5500
#0000AA
#AA00AA
#00AAAA
#AAAAAA
#555555
#FF5555
#55FF55
#FFFF55
#5555FF
#FF55FF
#55FFFF
#FFFFFF
16進数のフォーマットも10進数と同様にsetvtrgb
で指定するファイルに使用することができます。
カーネルパラメータによる変更の永続化
setvtrgb
コマンドを実行しただけでは変更はそのセッション中のみに適用されるため、ログアウトや再起動で元に戻ります。変更を永続化するためにはカーネルパラメータとしてFILE
の内容をロードする必要があります。ただし、カーネルパラメータに16進数の表記は使用できません。
次の4つのパラメータを設定します。
- vt.color
- vt.default_blu
- vt.default_grn
- vt.default_red
vt.color
は仮想ターミナルの文字色と背景色が設定されます。フォーマットは16進数2桁で0x<背景色><文字色>
のように指定します。初期値は0x07
です。これは一般的な灰色の文字に黒背景のターミナルとなります。例として、明るい緑の文字に白い背景へ変更する場合は0xFA
のように設定します。
vt.default_blu
以降のパラメータは前述の通り、10進数をコンマで区切った16個の数値を設定します。
カーネルパラメータはinitramfsやブートローダなど、いくつかの方法で設定することができますが、メジャーだと思われるGRUB2による設定を以下に説明します。
# 省略
GRUB_CMDLINE_LINUX_DEFAULT='vt.color=0xFA vt.default_red=0,170,0,170,0,170,0,170,85,255,85,255,85,255,85,255 vt.default_grn=0,0,170,85,0,0,170,170,85,85,255,255,85,85,255,255 vt.default_blu=0,0,0,0,170,170,170,170,85,85,85,85,255,255,255,255'
# 省略
GRUB_CMDLINE_LINUX_DEFAULT
行へパラメータ名=値
をスペース区切りで追加してください。
最後に、以下のコマンドを実行することで設定ファイルを自動生成します。
grub-mkconfig -o /boot/grub/grub.cfg
参考
- kernel.org. kernel-parameters.txt. https://www.kernel.org/doc/Documentation/admin-guide/kernel-parameters.txt
- man7.org. "setvtrgb(8)". https://man7.org/linux/man-pages/man8/setvtrgb.8.html
- ArchWiki. "GRUB". https://wiki.archlinux.jp/index.php/GRUB
Discussion