R/O

ターミナルのカラースキームを自作した

Posted on 2020-06-26

長時間ターミナルを眺めて作業していると目の疲れを感じることが増えてきたので、目に優しい配色を目指してターミナルのカラースキームを自作してみた1

以下で公開している。(2021-04-11 追記: 名前を変えて GitHub に移した)

ryot4/Hikage

全体的に彩度を抑えているのが特徴。数日間使ってみて目が痛くなったりはしていないので、それなりに目論見通りにはできた気がする。(使いながら何度か調整はした)

使ったもの

これからカラースキームを作りたい人の参考になるかもしれないので紹介。

terminal.sexy
Web ブラウザ上でターミナルのカラースキームを作成できるツール2。iTerm2 や Xresources などの設定をインポートして別のフォーマットでエクスポートできるので、自分ではカラースキームを作らない場合にも役立つかもしれない。
Contrast Checker
2つの色 (前景色と背景色) のコントラスト比を確認できるツール。色の組み合わせが WCAG 2.0 に適合しているかどうか教えてくれるので、見やすさに問題がないか客観的に確認できる。
Windows Terminal
設定がテキストファイルで、保存すると即座に画面に反映される点は試行錯誤するのに便利だった。

見栄えの確認は実際に色付きの出力をするコマンド (ls とか vim とか tmux とか) で試すほかに、簡単なスクリプトで色の組み合わせを一覧表示3して眺めたりもした。

#!/bin/sh

echo
for bg in '' $(seq 40 47); do
    for bold in '' 1; do
        for fg in '' $(seq 30 37); do
            code="${bold}${fg:+;$fg}${bg:+;$bg}"
            code="${code#;}"
            printf '\033[%sm%7sm \033[0m' "${code}" "${code}"
        done
        echo
    done
done
echo

出力はこんな感じになる。

colortable

  1. ここ数年は Tango Desktop Project のカラーパレット (を少しいじったもの) を使っていた。最近だと Windows Terminal のデフォルト設定にも Tango のカラースキームが付属している。 

  2. 他に Web 上でターミナルのカラースキームを作成できるツールとしては 4bit Terminal Color Scheme Designer がある。こちらは個々の色を細かくいじることはできないが、その分手軽で統一感のあるカラースキームを作りやすい。 

  3. ターミナル上での色付き出力は ANSI エスケープコード を使って行う。この手のスクリプトは Web 上で探すといろいろ見つかるが、Bash Prompt HOWTO 6.1. Colours の最後に載っているものがカラースキームの紹介ではよく使われている (と思う)。