i3Blocksスクリプト(シェーディング)

i3Blocksスクリプト(シェーディング)

帯域幅入力/出力を印刷するi3Blocksスクリプト(i3 WM環境のユーティリティブロック)を変更したいと思います。特に、このディレクティブの出力色を変更したいと思います。

echo -n " $INLABEL"

色で#9fbc00何をしますか?ありがとう

ベストアンサー1

短い答えはできないということです。真の24ビットカラー(RGB)は許容される標準の一部ではなく、端末がそれをサポートしているかどうかによって問題になるためです。端末パレットで事前定義された色を使用する必要があります。ANSI 3/4ビットカラー

つまり、一部の端末は実際の24ビットカラーをサポートし、ほとんどは\033[48;2;r;g;bm色を背景に4設定し、色を前景として定義する48ために変更できる形式を使用します。3追加情報)

文字rgとbは10進数で8桁の数字を表すため、printf "\033[38;2;159;188;0mhellohello()は目的の色で印刷されますが、#9fbc00コマンドを実行するとリセットされないため、端末に戻る前に戻すように指示する必要があります。オリジナルカラー。これを行うには、別のエスケープシーケンスを使用する必要があります。 \033[0m

これでわかるように、エラーのない印刷Hello world!方法#9fbc00

printf "\033[38;2;159;188;0mHello world!\033[0m\n"

ps:echoはエスケープコードが好きではありません。フォーマットするにはprintfを使用してください。

おすすめ記事