数日前にdwmを使い始めたばかりで、ターミナルエミュレーターとしてxterm(uxterm)を使用しています。
ただし、カラーで出力する特定のアプリケーション(vi/vim、lsなど)が明るい色と(場合によっては)太字のフォントを使用していることに気づきました。端末の背景色が濃いパステルなので、色を合わせたいです。
これらの色を変更するにはどうすればよいですか?#xxxxxxの色を使用する方法はありますか?
Xtermは Xリソース で設定されます。これは、黒を白に、デフォルトよりも明るい青に設定する方法です(明らかに、必要に応じて色を調整してください)。
XTerm.VT100.background: Black
XTerm.VT100.color0: Black
XTerm.VT100.color1: Red
XTerm.VT100.color2: Green
XTerm.VT100.color3: Yellow
XTerm.VT100.color4: CornflowerBlue
XTerm.VT100.color5: Magenta
XTerm.VT100.color6: Cyan
XTerm.VT100.color7: White
XTerm.VT100.colorBD: White
XTerm.VT100.colorBDMode: true
XTerm.VT100.colorUL: Yellow
XTerm.VT100.colorULMode: true
XTerm.VT100.cursorColor: Red
XTerm.VT100.foreground: White
Xの色名を使用できます(すべての色名はxcolors
で、またはrgb.txt
と呼ばれるファイルで確認できます。/etc/X11
、/usr/X11
、または/usr/share/X11
またはシステムに応じて同様の場所)または#RRGGBB
。 colorBD
は太字に使用される色です。 colorBDMode
をfalse
(デフォルト)に設定すると、この設定は無視され、太字のテキストは太字フォントで表示されます。同じことがcolorUL
、colorULMode
、下線にも当てはまります。 color8
を超えることができます(xtermのバージョンとコンパイル時の構成に応じて、最大color255
以下)。 color8
〜color15
は0〜7に対応し、太字で表示されます。 16を超える色は、明示的に構成しない限り、アプリケーションで使用されることはほとんどありません。
これらの設定を~/.Xdefaults
というファイルに入れます。ほとんどのシステムでは、ログイン時にこのファイルが自動的に読み込まれます。読み込まれない場合は、次のコマンドをX起動スクリプトに追加してください。
xrdb -merge ~/.Xdefaults
前景色42と背景色17の外観をテストするには、そのターミナルのシェルでこれを実行します。
printf '\033[38;5;%dm\033[48;5;%dm%s\033[0m\n' 42 17 "Hello, world."
Xtermが拡張カラーサポートなしでコンパイルされている場合は、従来の制御シーケンスを使用する必要があります。
printf '\033[3%dm\033[4%dm%s\033[0m\n' 4 1 "Hello, world."
その場合、前景色と背景色は0〜7の範囲でなければなりません。 xtermが16色サポートでコンパイルされている場合、[3
と[4
をそれぞれ[9
と[10
に置き換えて、明るいバージョン(色8〜15)を選択します。
.Xdefaults
ホームディレクトリのファイル。利用可能な他の人々を試すことができます.Xdefaults
設定 this one のように、 "zenburn"の暗い配色を使用します。 「xterm」で始まる行だけを使用します。 uxterm
でも同様に機能することをテストしました。何らかの理由でうまくいかない場合は、行の先頭を「uxterm」に変更してください。
Dwm:を使用していると述べたので、(他の回答で述べたように)Xリソースをそのままにして、代わりに端末を呼び出すコマンドを変更することもできます。私のconfig.h
端末コマンドを変更して、
static const char *termcmd[] = { "uxterm", "+cm", "+dc", "-bg", "black", "-fg", "gold", NULL };
これにより、色が有効になり、黒に金が使用されます。使用可能なオプションについては、 https://linux.die.net/man/1/xterm を参照してください。 (構成を変更した後、dwmを再コンパイルする必要があることに注意してください。)