web-dev-qa-db-ja.com

私の〜/ .Xresourcesはgtkアンチエイリアスを無効にしています

ウィンドウ管理(xmonad)を起動すると、gtkフォントはアンチエイリアス処理されますが、何らかの理由でurxvtの~/.Xdefaultsの変数名に問題があります(変数名を色として解析できないため、すべてがピンク色になります) 。これは、xrdb -merge ~/.Xdefaultsを実行することで修正されます。ただし、これを行うと、gtkアプリではフォントのアンチエイリアスが無効になりますが、urxvtでは無効になりません。

これを引き起こしているのは何ですか?

それ以来、~/.Xdefaults~/.Xresourcesに移動しましたが、gtkアンチエイリアスは最初から機能していないようですが、urxvtを解析するにはxrdb -merge ~/.Xresourcesを実行する必要があります。色変数。

私の~/.Xresources

Xft.dpi: 96
Xft.lcdfiler: lcddefault
Xft.antialias: true
Xft.hinting: true
Xft.hintstyle: hintfull

URxvt.font: xft:Dejavu Sans Mono:size=11:antialias=true:hinting=true

URxvt*scrollBar: true
URxvt*scrollBar_right: true
URxvt*scrollstyle: plain

URxvt.urgentOnBell: true

! From https://bbs.archlinux.org/viewtopic.php?id=164108
URxvt.intensityStyles: false

! From https://raw.github.com/solarized/xresources/master/solarized
! Solarized color scheme for the X Window System
!
! http://ethanschoonover.com/solarized


! Common

#define S_yellow        #b58900
#define S_orange        #cb4b16
#define S_red           #dc322f
#define S_Magenta       #d33682
#define S_Violet        #6c71c4
#define S_blue          #268bd2
#define S_cyan          #2aa198
#define S_green         #859900


! Dark

#define S_base03        #002b36
#define S_base02        #073642
#define S_base01        #586e75
#define S_base00        #657b83
#define S_base0         #839496
#define S_base1         #93a1a1
#define S_base2         #eee8d5
#define S_base3         #fdf6e3


! Light

! #define S_base03        #fdf6e3
! #define S_base02        #eee8d5
! #define S_base01        #93a1a1
! #define S_base00        #839496
! #define S_base0         #657b83
! #define S_base1         #586e75
! #define S_base2         #073642
! #define S_base3         #002b36


! To only apply colors to your terminal, for example, prefix
! the color assignment statement with its name. Example:
!
! URxvt*background:            S_base03

*background:              S_base03
*foreground:              S_base0
*fading:                  40
*fadeColor:               S_base03
*cursorColor:             S_base1
*pointerColorBackground:  S_base01
*pointerColorForeground:  S_base1

*color0:                  S_base02
*color1:                  S_red
*color2:                  S_green
*color3:                  S_yellow
*color4:                  S_blue
*color5:                  S_Magenta
*color6:                  S_cyan
*color7:                  S_base2
*color8:                  S_base03
*color9:                  S_orange
*color10:                 S_base01
*color11:                 S_base00
*color12:                 S_base0
*color13:                 S_Violet
*color14:                 S_base1
*color15:                 S_base3
2
Alec

リソースを使用する多くのXプログラム(Urxvtを含む)は、起動時に~/.Xdefaultsをロードし、そこで見つかったリソースを適用します。その場合、前処理は適用されないため、#defineディレクティブは効果がなく、次のようなメッセージが説明されます。

urxvt: unable to parse color 'S_base0', using pink instead.

Xrdbプログラムは、リソースファイルをサーバーにロードします。これらのリソースは、その後に起動されるすべてのアプリケーションに適用されます。 Xrdbは、Cプリプロセッサcppを使用して入力ファイルを前処理します(特に指示がない限り)。

アプリケーションによってロードされた.Xdefaultsからセッションの開始時にロードされた.Xresourcesに切り替えたときに一部のリソースが変更されたように見える場合、これは構成の他の部分(おそらくシステム全体の部分)が原因である可能性があります。後で何か他のものをロードします。セッションの開始後に.Xresourcesを手動でロードしても違いが生じる場合は、それが起こっていることです。セッションとウィンドウマネージャーの起動ルーチンを確認する必要があります。 xrdb -query | grep '^Xft'listres Xftで実際のリソースが何であるかを確認してください。

ほとんどのGtkアプリケーションはXリソースを無視します。代わりに fontconfig settings を使用する必要があります。