コンソール出力の現在の色を確認するには?

コンソール出力の現在の色を確認するには?

カラーターミナルがあれば可能であることを知っています。エスケープ文字を使用した出力色の指定

しかし、出力が現在どの色で表示されているのかわかりますか?それとも今テキストを出力すると、テキストはどの色で表示されますか?

これらのエスケープ文字を使用すると、以前の色設定が壊れないように要求します。 「デフォルトの前景色」エスケープ文字は、変更前のテキストの色ではなく、カラースキームから情報を取得します。

ベストアンサー1

ここでは、xtermクエリRGBカラーコードの色の変更エスケープを変更して、レポートの現在の色を取得できます。 - を使用しますESC ] Ps mが、?疑問符を追加します。 ~から文書:

  • "?"名前またはRGB仕様の代わりにaが指定されている場合は、同じxterm形式の制御シーケンスが応答します。これは対応する動的色を設定するために使用できます。 1つの制御順序で2つ以上の色番号と仕様を提供できるため、xterm2つ以上の応答が可能です。
    • P s = 1 0→VT100テキストの前景色をP tに変更します。
    • P s = 1 1→VT100テキストの背景色をP tに変更します。
    • P s = 1 2→テキストカーソルの色をP tに変更します。
    • P s = 1 3→マウスの前景色をP tに変更します。
    • P s = 1 4→マウスの背景色をP tに変更します。
    • P s = 1 5→Tektronixの前景色をP tに変更します。
    • P s = 1 6→Tektronixの背景色をP tに変更します。
    • P s = 1 7→ハイライトの背景色をP tに変更します。
    • P s = 1 8→Tektronixカーソルの色をP tに変更します。
    • P s = 1 9→ハイライト前景色をP tに変更します。

これが他の端末エミュレータで動作できるかどうか真剣に疑われますが、xterm実行すると...

printf '\033]11;?\007'

...xterm次のシーケンスを端末の入力バッファに戻します。

11;rgb:ffff/ffff/ffff

...背景または前景の場合:

printf '\033]10;?\007'

10;rgb:0000/0000/0000

おすすめ記事