コンソール/仮想端末で使用可能なすべての色を変更する方法はありますか?
コンソールとは、Ctrl + Alt + F1を押した後に得られるものを意味し、xtermやurxvtのようなものではありません。だから、私はそれが変更を意味すると思います
次のようなエスケープシーケンスを使用して、8色を変更できます。
echo -en "\e]PY######"
ここで、Yは色の数値ID(0〜7)であり、######は16進色の値です。
私の最終的な目標は、ソーラー化されたカラースキームをコンソールに移植することです。コンソールにいるのかXにいるのかに関係なく、vimをまったく同じように見せたいからです。
これについて何か提案はありますか?
xtermのhtop:
xtermのhtop、ソラリゼーションカラー
8色を適用した後のコンソールのhtop:
コンソールのhtop、8色を適用した後
TTYフレームバッファーコンソールには、カーネルハッキングなしで8-16色を超える色を表示する方法はありません。次の引用を参照してください。 Linuxコンソールでは16色に制限されています。フレームバッファかどうかは関係ありません。」
したがって、16色または8色を超えることはできません。 〜/ .bashrcで説明したのと同じコマンドを使用して、フレームバッファターミナル(別名ctrl + alt + 1)の色を変更する方法のチュートリアルがあります。 TTYチュートリアルの色
コンソールでこのbash関数を試してください。ふさわしく、X端末では動作しません(タブがあると思います)。特に最後に使用した3つのファイル、つまり
/sys/module/vt/parameters/default_red
/sys/module/vt/parameters/default_grn
/sys/module/vt/parameters/default_blu
clr () {
clear # GFX bug otherwise
setterm -regtabs 4
Color_names="bla red gre yel blu mag cya whi"
Color_arr=($Color_names)
tput setaf 4
tput setab 7
echo -n " normal "
tput sgr0
echo -n " "
tput setaf 7
tput setab 4
echo " bright "
tput sgr0
for cmd in sgr0 bold
do
tput $cmd
for m in 0 1 2 3 4 5 6 7
do
tput setaf $m
echo -n ${Color_arr[$m]}" "
done
done
echo
tput sgr0
cat /sys/module/vt/parameters/default_red \
/sys/module/vt/parameters/default_grn \
/sys/module/vt/parameters/default_blu | sed s/,0/", "/g | \
sed s/^0/" "/g | \
tr "," "\t"
}
コメントに応じて編集
たとえば、緑のファイル(sys/module/vt/parameters/default_grn
)の2桁目を170
に変更します。これにより、2番目の色(インデックス1)は赤と同じくらい緑になり、青はなくなります(少なくともこれは、対応する数字がdefault_red
170
にあり、0
がdefault_blu
にあるためです。
次に、tput setaf 1; echo hi
と入力します。ここでは、前景色をインデックス1(変更した色)の色に合わせてから印刷します。 (コマンドを区切るためにコロンが付いたワンライナーに注意してください。そうしないと、プロンプトがtput
をリセットする場合があります。)
いつもと同じように見える場合は、echo -n '\033]R'
を試し、次にtput
行をもう一度試します。これで、両方 "こんにちは"は黄色のようになります。
動作するかどうかを知らせてください。