16進カラー値を処理するために端末に色を表示する方法は?テーマ、XResourcesなどに便利です。たとえば、
$ command '#FF0000'
// display a red square
私はmanjaroでurxvt、i3wmを使用します。
答え1
代替:
ディスプレイカラー(){ perl -e 'foreach $a(@ARGV){print "\e[48:2::".join(":",unpack("C*",pack("H*",$a))))。 "m \e[49m "};印刷"\n"' "$@" }
使用例:
$show_color "FF0088" "61E931" "1256E2"
これにより、指定されたRGBの背景色でスペースが印刷されます。#
RGBコードでは使用しないでください。存在する場合は、読者のための練習レベルから削除します。 ☺
端末エミュレータのカラーパレットは変更されません。
警告:ターミナルエミュレータは次のことを理解する必要があります。直接色正しい ITU T.416 形式を使用する SGR 制御シーケンス。一部はそうです。長い間、間違ったレシピでこれらの制御シーケンスの詳細を学んでください。 rxvt-unicodeがこれをまったく理解していないことがわかります。一般的な誤った表現については、次のあいまいさに置き換えてください。
ディスプレイカラー(){ perl -e 'foreach $a(@ARGV){print "\e[48;2;".join(";",unpack("C*",pack("H*",$a)))." m \e[49m "};印刷"\n"' "$@" }
別のオプション:
setterm
私はラップトップを使ってhttps://unix.stackexchange.com/a/491883/5132。 16 進 RGB 表記法を理解し、#
それをインジケータとして使用することもあります。
使用例:
$ setterm -7 - 背景 '#FF0088' ;印刷''; > setterm -7 -背景 '#61E931' ;印刷'' \ > setterm -7 -背景 '#1256E2' ;印刷'' \ > setterm -7 --背景デフォルト printf '\n'
これは、直接色SGR制御順序を理解する端末の他の印刷例と同じである。
以前の選択肢との1つの違いはsetterm
返品専用その他端末。直接色SGR制御順序を理解していない端末タイプの代替方法があります。索引の色だけを理解する端末タイプ(つまり、256色のみ)または16のAIXTerm色のみを理解する端末は、目的の色に最も近いRGB色を選択しようとします。
% TERM=rxvt-256color setterm -7 --Background "#FF0088" |hexdump -C 00000000 1b 5b 34 38 3b 35 3b 31 39 38 6d |.[48;5;198m| 0000000b % TERM=ansi COLORTERM=16color setterm -7 --Background "#FF0088" |hexdump -C 00000000 1b 5b 31 30 35 6d |.[105m| 00000006 % TERM=ansi setterm -7 --Background "#FF0088" |hexdump -C 00000000 1b 5b 34 35 6d |.[45m| 00000005 %
追加読書
- ジョナサンデボインポラード(2018)。
setterm
。 スナックガイド。ソフトウェア。
答え2
次のコマンドを使用して端末の背景色を変更できます。
printf '\e]11;%s\a' '#ff0000'
これは少なくともxterm
VTEベースの端末(VTEなどgnome-terminal
)で動作するようです。konsole
rxvt
必要に応じて、背景以外の色も変更できます。色1を変更し、その色で長方形を表示するのと同じです。
printf '\e]4;1;%s\a\e[0;41m \n \n\e[m' '#ff0000'
複数の色を表示するには:
show_colour() {
for i do
printf '\e]4;%d;%s\a\e[0;48;5;%dm%s\e[m\n' "$#" "$i" "$#" "$i"
shift
done
}
show_colour black purple green '#ff0000'
しかし、これは対応するエミュレータウィンドウのカラーパレットを永久に変更する。tput oc
基本色を復元するために使用されます。
他のオプションは、以下を実行することです。
xlogo -bg '#ff0000'
または
rxvt -bg '#ff0000'
答え3
KDEターミナルプログラムkonsoleバージョン21.12.3(https://konsole.kde.org/)、16進カラーコードの上にマウスを置くと、その色がポップアップ四角形で表示されます。