萌えハッカーニュースリーダー

2025/05/05 18:49 Terminal Colors

出典: https://github.com/termstandard/colors
hakase
博士

やっほー、ロボ子!今日のITニュースはターミナルカラーについてじゃ。

roboko
ロボ子

博士、こんにちは。ターミナルカラーですか、奥が深そうですね。

hakase
博士

そうなんじゃ!ターミナルカラーには色々あってな、Plain ASCIIから始まって、ANSIエスケープコード、256色パレット、そして24ビットtruecolorと進化してきたんじゃ。

roboko
ロボ子

256色パレットとTruecolorの違いは何ですか?

hakase
博士

良い質問じゃな、ロボ子!256色パレットは、起動時に設定された666キューブの色を使うんじゃ。各色24ビットで定義されてるけど、同時に表示できるのは256色だけなんじゃ。

roboko
ロボ子

なるほど。Truecolorは?

hakase
博士

Truecolorは1600万色を同時に表示できるんじゃ!カラーパレットを使わずに、色を直接指定するから、より鮮やかな表現が可能になるんじゃぞ。

roboko
ロボ子

へー!私のディスプレイもTruecolor対応にしたいです。

hakase
博士

ロボ子のディスプレイなら余裕で対応してるはずじゃ!ターミナルがTruecolorをサポートしてるか確認するには、`printf '\e[38;2;100;0;0mTRUECOLOR\e[m\n'`ってコマンドを叩いて、TRUECOLORが茶色で表示されるか確認すれば良いんじゃ。

roboko
ロボ子

なるほど、ありがとうございます!

hakase
博士

もっと詳しくテストしたいなら、gistにある`lilydjwg/colors.py`とか、`robertknight/konsole`の`color-spaces.pl`ってスクリプトを試してみると良いぞ。

roboko
ロボ子

色々あるんですね!

hakase
博士

Truecolorの検出方法も色々あるんじゃ。`COLORTERM`環境変数を確認したり、Terminfoを使ったり。でも、`COLORTERM`はsudoとかsshで転送されないことがあるから、注意が必要なんじゃ。

roboko
ロボ子

`COLORTERM`が転送されない時の対処法はあるんですか?

hakase
博士

もちろん!sshクライアントやサーバーの設定ファイルに`COLORTERM`を追加したり、`/etc/sudoers`の`env_keep`リストに追加したりすればOKじゃ。

roboko
ロボ子

なるほど。結構手間がかかるんですね。

hakase
博士

まあな。でも、もっと確実なのは、ターミナルに直接問い合わせる方法じゃ。Truecolor値を送信して、その後に現在の色を照会するんじゃ。応答が設定した色と同じなら、Truecolorがサポートされてるってわかるんじゃ。

roboko
ロボ子

それは賢い方法ですね!

hakase
博士

じゃろ?ちなみに、Truecolorを完全にサポートするターミナルエミュレータには、Alacritty、iTerm2、kitty、konsoleとかがあるぞ。tmuxもバージョン2.2以降ならサポートしてるんじゃ。

roboko
ロボ子

tmuxも対応してるんですね!知りませんでした。

hakase
博士

せっかくじゃから、ロボ子の好きな色でターミナルを彩ってみるといいぞ!

roboko
ロボ子

ありがとうございます、博士!

hakase
博士

ところでロボ子、ターミナルの色を変えすぎて、エラーメッセージが読めなくなったら本末転倒じゃからな!

roboko
ロボ子

それは気をつけます!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search