使用 Xrender 時對 XClock 進行改造:一條漫長而曲折的道路
基本上,
xclock
它是一個很棒的工具,每個基本的 X 設置都將它“板載”。但是,在保持活動狀態的同時進行**配置xclock
(模擬)絕對不適合膽小的人。特別是,如果不深入研究領域,初學者將沒有任何機會配置模擬時鐘,因為您在命令行中設置的所有內容都將僅用於非渲染模式(需要 option )並且預設情況下會被忽略(這意味著,正在使用)。另外,關於它的文件非常糟糕,實際處理的例子很少見。因此,我決定開始自己的方法。XRender``.Xresource``-norender``XRender``XRender
我希望有一種更簡單的方法來完成這一切,但顯然沒有。一方面,這個問題可能會幫助新使用者指導如何為“他們的”進行設置
xclock
;另一方面,我還想問你們是否有任何方法可以改進我的“配置文件”(注意引號)。奇怪的是,.Xresources
它被廣泛認為是“過時的”和“上個世紀的”,但是如果您使用的應用程序確實依賴於老式的方式, usingxrdb
和.Xresources
整個 caboodle 怎麼辦?我個人喜歡*“夜間設計”*,因為它非常適合我的桌面風格。所以這就是我所做的:
$ 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
rgba
代表 “red, green, blue, alpha” - 其中第四個參數 alpha將指示十六進製表示法的不透明度級別:a00
將使時鐘指針或刻度線不可見;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
.為什麼呢?
到目前為止,我認為 the
*
只是一個萬用字元的含義XClock<whatever><parameter>
。
你的假設是正確的。使用的資源規範
*
是萬用字元。您的問題是因為您目前載入的資源數據庫中可能同時具有 anXClock*
和 anXClock.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 xclock
操作,appres 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
,將更喜歡顯式資源而不是萬用字元資源,並且我得到了非 alpha 顏色的時鐘。要解決此問題,請使用
-load
操作而不是操作(如果您不提供任何選項,-merge
xrdb 預設為,即與 相同)。-load``xrdb file``xrdb -load file
這有效地清除了您的資源數據庫,載入系統預設值,然後在該文件中添加您的 XClock 資源設置。要知道的一個好技巧是您可以使用
xrdb /dev/null
. 您可以通過以下方式獲取現有資源數據庫的副本(包括系統預設值):xrdb -query -all
可以將其重定向到文件,然後根據您的喜好進行編輯。在大多數係統上,將它們放在您的 .Xresources 或 .Xdefaults 中意味著它們將在創建 X 會話時被載入,因此您不必從 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.