web-dev-qa-db-ja.com

stのソラリゼーションカラー(シンプルターミナル)

st with solarizedurxvtと同じように色を使用したい(もちろん、これは.Xresourcesを介して行われ、stでは色はヘッダーファイルで定義されています)。 stの構成ファイル(config.h)に色を入れようとしましたが、stの「間違った目的で使用」されています(たとえば、vimのdircolorsと色はurxvtに対して再配置されています)。

stで使用されるエスケープシーケンスを変更する必要があると思いますが、どこにも行きません。ソラリゼーションされた色をstに適用する方法について誰かが私にヒントを提供できますか?

4
user24483

Stヒント(および0.3リリース)では、st.cを編集する必要はなく、config.hにソラリゼーションされた色を挿入するだけです。この質問をしてから、st.cとconfig.hの両方が変更されたようです。

0
user24483

ソラリゼーションカラーを使用したstconfig.hの例が必要な場合は、彼の要点を参照してください: https://Gist.github.com/gregf/5279175

3
chris

Stを使う以外の経験はありませんが、ソースを一瞥してみると、関連する部分が見つかったと思います。
ソーラーカラーを使用するとは、デフォルトの青を使用するすべてのアプリケーションが必要であることを意味していると思います代わりにsolarized blueを使用します。

Config.hだけでなく、st.cのソースにいくつかの変更を加える必要があります。
dcはglobal変数であり、DC構造体、各_dc.cols[i]_は使用する色に対応します。

_config.h_ colorname内の最初の16色は、関数xloadcols(void)内のXAllocNamedcolorを介してロードされ、これらは_dc.col_内の最初の16位置(0から15)に挿入されます。 。

これらは、ANSIエスケープシーケンスの色に対応しています。詳細については、 ANSIエスケープコード::色 を参照してください。

この機能をxloadcols(void)内で変更する必要があります。具体的には、最初のforループです。
XAllocNamedColorを使用する代わりにXAllocColorを使用することもできます(2番目のforループでこの例を見ることができます)。これにより、各色のrgbを次のように指定できます。 (名前から既知の色をロードする代わりに)各位置に挿入されます。

16進値については、 solarized.vim 具体的には16進値が指定されている98行目から116行目を参照してください。

残りの_dc.cols_はforループ内に割り当てられ、これもxloadcols(void)内にあります。これは、一部のアプリケーションがソーラー化された色ではなくこれらの色を使用する可能性があることを意味しますが、おそらくこれを変更する必要はありません。

デフォルトの背景色と前景色については、config.hの40行目以下で設定されています。
各_#define name index_は、名前にdc.col [index]を使用することを定義します。たとえば、DefaultBgは端末の背景色を指定します。

1
cjh

Solarizedは、config.def.hに対する公式パッチとして利用できるようになりました。

https://st.suckless.org/patches/solarized/

1
jncraton