私の端末には白い背景があります。コマンドが端末に黄色のテキストを印刷した場合(低いコントラストのため)、テキストは明確に表示されません。私は考えました:印刷される黄色のテキストがすべて茶色のテキストに変換されたらいいのでは?これにより、印刷されたテキストを見るのに苦労することなくカラー出力を楽しむことができます。
コマンドが黄色のテキストを印刷したいとします。茶色のテキストが印刷されるようにエスケープシーケンスを「ハイジャック」する方法はありますか?それとも色変換を実行する他の方法はありますか?
gnome-terminal
注:私はUbuntu 18.04を使用しています。
答え1
今日、多くの端末(gnome-terminalを含む)は、8色、256色、および24ビット(約16×10^6色)の2つまたは3つのカラーパレットを使用しています。しかし、通常、最初の2つのグループは最後のグループからランダムに選択できますgnome-terminal
(この場合も同様ですterminator
。
24ビットRGBパレットで選択した特定のパレットを変更するには、次のものが必要です。\e]4
脱出コード以下は、カラーコード番号とRGBの色を変更することです。あなたの場合
printf '\e[33mTEST\e[m\n' # first print "TEST" to see yellow text
printf '\e]4;3;rgb:b0/4a/00\e\\' # now we change yellow to brown
printf '\e[33mTEST\e[m\n' # test again
黄色のニックネームはで3
、茶色のニックネームは私が任意に決めたものですb04a00
。変更後は、以前に印刷されたテキストを含め、すべての黄色のテキストが変更されたことを確認できます。