Xrenderを使用したXClockの変換:長く曲がりくねった道

Xrenderを使用したXClockの変換:長く曲がりくねった道

デフォルトではxclockこれは素晴らしいツールで、すべてのデフォルトのX設定には「組み込み」です。しかし、構成 xclock(シミュレーション)しかし、活動的な状態を維持するXRenderことは確かに心が弱い人のためのものではありません。特に、初心者は設定する機会がありません。シミュレーション.Xresource時計のコマンドラインで設定した内容がすべて表示されるため、その領域を詳しく調べる必要はありません。非レンダリングモードでのみ利用可能(オプション必須)デフォルトでは無視されます(オプションが使用中であることを-norender意味します)。XRenderまた、これに関する文書は非常に悪く、実際の例は取引XRender鶏の歯ほど珍しいです。だから私は自分のアプローチを始めることにしました。
このすべての作業をより簡単に行う方法があればいいのですが、まだないようです。まず、この質問は新しいユーザーに「彼らのプロフィール」を設定する方法を案内するのに役立ちますxclock。一方、私の「プロフィール」を改善する方法があるかどうかを尋ねたいと思います(引用符を参照)。奇妙なことに、.Xresourcesこのアプリは「古い」、「過去世紀の」と広く考えられています。しかし、アプリを使用している場合はどうなりますか?する昔ながらの方法に依存して、およびallを使用しxrdbますか.Xresources

私は個人的に一つを好む夜のデザイン私のデスクトップスタイルに完璧にフィットするからです。これが私がしたことです:

$ touch ~/.Xresources
$ vi ~/.Xresources

XClock*foreground: #fbfbfb
XClock*background: #000018
XClock*update: 1
XClock*geometry:          210x210+1020+12
XClock.Clock.majorColor:  rgba:f0/f0/19/7b
XClock.Clock.minorColor:  rgba:a0/c0/f0/c0
XClock.Clock.hourColor:   rgba:c9/66/11/72
XClock.Clock.minuteColor: rgba:00/82/9f/72
XClock.Clock.secondColor: rgba:50/93/30/6f

rgba4番目のパラメータ「赤、緑、青、アルファ」を示します。 α、16進表記で不透明度レベルを示します。 aは00時計の針や目盛りを見えないようにし、affはすべての不透明度をオフにします。
今まではそんなに良くなった。Xこれらを適用するためにサーバーを再起動したくないので、設定を既に存在できる(または通常どおり存在しない可能性がある)設定にマージするだけです。

$ xrdb -merge ~/.Xresources && xclock &

自慢したくないけど正直そうだと思う方法私のデスクトップの基本的な退屈なデザインよりも優れています。

しかし、私が望む方法で動作しようとする努力の間、私の面でも問題が発生しました。実際、XClock.Clock.<parameter>次のリソースファイルから構文を「盗んだ」。

/etc/X11/app-defaults/XClock-color

興味深いことに、で終わるすべてのパラメータは...Color同じでなければなりません。XClock.ベル.<parameter>app-defaults例えば;のような構文はXClock*hourColor: rgba:ff/ff/ff/80時針を白にしないし、不透明度を0x80

なぜこれが起こるのですか?
これまで、私はこれが*ワイルドカードの意味だと思いますXClock<whatever><parameter>

答え1

あなたの家は正しいです。ワイルドカード文字を使用したリソース仕様です*。あなたの問題は両方1つと現在ロードされているリソースデータベースのXClock*仕様。XClock.Clockこの場合、ワイルドカード項目よりも明示的な項目を優先します。次のコマンドを使用して、リソースデータベースで現在のXClockに設定されている内容を確認できますappres XClock

 appres XClock
 XClock.input:   false

ワイルドカードリソースを使用してリソースファイルを生成する場合:

XClock*foreground: #fbfbfb
XClock*background: #000018
XClock*update: 1            
XClock*geometry:          210x210+1020+12
XClock*majorColor:  rgba:f0/f0/19/7b
XClock*minorColor:  rgba:a0/c0/f0/c0
XClock*hourColor:   rgba:c9/66/11/72
XClock*minuteColor: rgba:00/82/9f/72
XClock*secondColor: rgba:50/93/30/6f

その後、ジョブを使用してロードすると、xrdb -merge xclockappres XClockのようになります。

$ appres XClock
XClock*secondColor:     rgba:50/93/30/6f
XClock*foreground:      #fbfbfb
XClock*hourColor:       rgba:c9/66/11/72
XClock*update:  1
XClock*background:      #000018
XClock*geometry:        210x210+1020+12
XClock*majorColor:      rgba:f0/f0/19/7b
XClock*minorColor:      rgba:a0/c0/f0/c0
XClock.input:   false
XClock*minuteColor:     rgba:00/82/9f/72

xclockを実行すると、素晴らしい「夜」テーマが表示されます。次に、リソースファイルを編集してワイルドカードリソースを明示的なリソースに置き換えるには、次の手順を実行します(!注釈付き行を参照)。

XClock*foreground: #fbfbfb
XClock*background: #000018
XClock*update: 1
XClock*geometry:          210x210+1020+12
XClock.Clock.majorColor:  rgba:f0/f0/19/ff
XClock.Clock.minorColor:  rgba:a0/c0/f0/ff
XClock.Clock.hourColor:   rgba:c9/66/11/ff
XClock.Clock.minuteColor: rgba:00/82/9f/ff
XClock.Clock.secondColor: rgba:50/93/30/ff
!XClock*majorColor:  rgba:f0/f0/19/7b
!XClock*minorColor:  rgba:a0/c0/f0/c0
!XClock*hourColor:   rgba:c9/66/11/72
!XClock*minuteColor: rgba:00/82/9f/72
!XClock*secondColor: rgba:50/93/30/6f

リソースファイルを再マージすると、次のようにxrdb -merge xclock表示されappres XClockます。

XClock.Clock.secondColor:       rgba:50/93/30/ff
XClock.Clock.minorColor:        rgba:a0/c0/f0/ff
XClock.Clock.hourColor: rgba:c9/66/11/ff
XClock.Clock.minuteColor:       rgba:00/82/9f/ff
XClock.Clock.majorColor:        rgba:f0/f0/19/ff
XClock*secondColor:     rgba:50/93/30/6f
XClock*foreground:      #fbfbfb
XClock*hourColor:       rgba:c9/66/11/72
XClock*update:  1
XClock*background:      #000018
XClock*geometry:        210x210+1020+12
XClock*majorColor:      rgba:f0/f0/19/7b
XClock*minorColor:      rgba:a0/c0/f0/c0
XClock*minuteColor:     rgba:00/82/9f/72
XClock.input:   false

方法に注意してください両方XClockクラスの明示的なリソースとワイルドカードリソースが一覧表示されます。この場合、xclockワイルドカードリソースよりも明示的なリソースを好み、アルファカラーではなく時計を取得します。

この問題を解決するには、-loadactionの代わりに-mergeactionを使用します(つまり、-loadオプションが指定されていない場合、xrdbのデフォルト値はです)。xrdb filexrdb -load file

これにより、リソースデータベースが効果的に消去され、システムデフォルト値がロードされ、ファイルにXClockリソース設定が追加されます。知っておくと良いヒントは、「システムデフォルトの復元」を使用できることですxrdb /dev/null。既存のリソースデータベース(システムのデフォルトを含む)のコピーをファイルにリダイレクトxrdb -query -allし、必要に応じて編集して取得できます。

ほとんどのシステムでは、これを.Xresourcesまたは.Xdefaultsに入れることは、Xセッションの作成時にロードされることを意味するため、Xセッション間で手動でロードする必要はありません。

私はワイルドカードを使用して、ほとんどのアプリケーションを黒の背景に白いテキストに設定します。 (私は白い背景に黒いテキストが好きではありません。)

*background: #000000
*foreground: #ffffff

xclockに設定できるリソースはマニュアルページに記載されています(ほとんどのX11コマンドにはマニュアルページに記載されているリソースがあります)。

別の有用な点は、ほとんどのX11コマンドに-name引数を渡すことができることです。これにより、デフォルトのアプリケーション設定に関係なくリソースを持つことができます。たとえば、次のような場合があります。

Leary*background: #ff0000

リソース設定でxclockを実行すると、xclock -name Leary背景が強い赤色のxclockが表示されます。明示的/ワイルドカードXClockリソース設定をロードし、クラスLeary設定の設定に上書きします。その後、これを使用してxtermなどの設定を適用できますxterm -name Leary

ほとんどのX11コマンドは、さまざまな「標準」コマンドラインオプションを使用します。

-display host:n
     Location of the X server. 
-geometry wxh+x+y
     Window size and location. 
-bg color
     Window background color. 
-fg color
     Text and graphics color. 
-fn font
    Text font. 
-iconic
    Initial window to be started iconized. 
-title strings
    Window header title. 

関連情報