2 ポイント 投稿者 GN⁺ 2024-10-04 | 1件のコメント | WhatsAppで共有
  • ターミナルの色設定は、多くの人にとって難しい問題である。特に「黒い背景に青」は、読みにくい組み合わせとしてよく挙げられる。
  • ANSIカラーは16色で構成されており、各ターミナルエミュレータが色を異なる形で解釈することがある。

問題1: 黒い背景に青

  • 黒い背景に青いテキストは読みにくい。
  • ANSIカラーには標準がないため、ターミナルごとに見え方が異なる場合がある。

問題1.5: 白い背景に明るい黄色

  • 白い背景に明るい黄色は、ほとんど読めないレベルである。
  • 色のコントラストの問題を解決するために、ターミナルエミュレータの色を再構成できる。

色の再構成方法

  • 方法1: ターミナルエミュレータの設定 : ほとんどの現代的なターミナルエミュレータは、色の再構成機能を提供している。
  • 方法2: シェルスクリプトの実行 : ANSIエスケープコードを使ってターミナルの色を変更できる。

問題2: 256色を使うプログラム

  • fd のようなプログラムは、拡張256色セットを使うため、色のコントラストが悪くなることがある。
  • 一部の最新ツールはカスタムテーマをサポートしており、さまざまなターミナルテーマとうまく動作する。

問題3: Solarizedテーマのグレー

  • Solarizedテーマのグレーは、ディレクトリや実行ファイルの色に影響する。
  • デフォルトのSolarizedテーマはグレーを使うが、修正されたbase16版は明るい色を使う。

問題4: ターミナル背景と合わないvimテーマ

  • vimテーマの背景色がターミナルテーマと異なると、境界ができることがある。

問題5: プログラムの背景色設定

  • ngrok のようなプログラムが、望まない背景色を設定することがある。
  • base16-shell スクリプトは、追加の色を提供するために色 #16 を明るいオレンジに設定する。

問題6: 誤って設定された TERM

  • TERM 環境変数が誤って設定されていると、色が正しく表示されないことがある。

問題7: 良い色選びの難しさ

  • 色覚特性のある人は、適切な色の組み合わせを見つけるのが難しい。
  • 背景色とカーソル色が似ていると、見つけにくくなることがある。

問題8: nethack/mc の色問題

  • nethack や midnight commander のようなプログラムは、特定のカラーテーマを前提にしていることがある。
  • プログラム起動前にカラーパレットを変更することで、問題を解決できる。

問題9: パイプへの出力時に色を無効化

  • fd | less のようなコマンドは色を無効化する。
  • unbuffer fd | less -r を使うと色を表示できる。

問題10: ls と他のコマンドの望まない色

  • ls の色は無効化することも、カスタマイズすることもできる。

問題11: vim の色問題

  • vim の色設定には、ANSIカラーと24ビットカラーという2つの方法がある。
  • 2016年以降、vim は24ビットカラーをサポートしている。

その他の問題

  • 複数のプログラムの組み合わせで発生する問題は扱いにくい。

base16 の効果

  • base16-shell と base16-vim を使うことで、色をうまく設定できた。
  • 制限のある内蔵テーマやANSIカラー設定には問題がある場合がある。

その他のカラーテーマツール

  • rootloops.sh のようなカラーテーマ生成ツールがある。
  • 人気のカラーテーマには、catpuccin、Monokai、Gruvbox、Dracula などがある。

GN⁺のまとめ

  • ターミナルの色設定は複雑だが、最小コントラスト機能を使えば多くの問題を解決できる。
  • さまざまなカラーテーマやツールを活用することで、ユーザー体験を改善できる。
  • ターミナルの色設定は、個人の好みや必要に応じて異なる形で適用できる。
  • 類似の機能を持つ別のプロジェクトとして、Solarized や Gruvbox などが勧められる。

1件のコメント

 
GN⁺ 2024-10-04
Hacker Newsのコメント
  • さまざまな画面や設定では、ライトテーマはダークテーマよりも微妙に見え方が異なることに気づいた。これは、さまざまなコンピュータにテーマを移植する際に深刻な問題になる

    • フォントや色のサポートが限られた Linux や BSD のコンソールに切り替えると問題が起こりうる。X なしでも fbterm を使えばそこそこ良いターミナル機能を得られたが、fbterm 自体にも問題はある。vim の色設定をするときは、機能の乏しいコンソール向けの代替テーマを用意しておく必要がある
  • ターミナルエミュレータのデフォルトのカラーテーマは良くないので、変更すべきだ。個人的には Solarized テーマが好み

    • 8ビットまたは24ビットの色エスケープシーケンスを使う CLI ツールは避けるべきだ。これはユーザーに不親切になりうる。開発者がカラーテーマをデフォルトで決め打ちするのは助けにならない
  • ライトテーマを使いたかったが、多くのプログラムが暗い背景向けに最適化された色を使っているため断念した。今は暗い背景に ANSI テーマを使い、十分なコントラストを保っている

  • 新しい APCA アルゴリズムを使って色を確認するのが良い。APCA はフォントサイズ、太さ、前景/背景、周囲の照明などを考慮する

  • 色を完全に無効化したい人もいる。個人的にも試してみたいが、きれいな色も好きだ

  • Emacs の frame-background-mode が誤って設定されていると、色が良く見えないことがある

  • FlatUI のカラーテーマを少し調整して使っており、大きな問題なく使えている

  • ネオンサインや LED の看板の青色は、夜に最も目に負担がかかる。遠くから見るとかすんで焦点が合わない

  • ターミナルの色への関心は薄れ、色調整が生産性に良い影響を与えるとも思わなくなった。デフォルトの Apple Terminal の pro テーマでは背景のコントラストだけ少し調整している

  • ターミナルの色選びに多くの時間を使ったが、今は白い背景に黒い文字を使っている。昼はまぶしくなく、夜は f.lux を使って目の疲れを減らしている