代替:

代替:

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'

これは少なくともxtermVTEベースの端末(VTEなどgnome-terminal)で動作するようです。konsolerxvt

必要に応じて、背景以外の色も変更できます。色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進カラーコードの上にマウスを置くと、その色がポップアップ四角形で表示されます。

関連情報