基本上,xclock
它是一个很棒的工具,每个基本的 X 设置都会“内置”它。然而,配置 xclock
(模拟)尽管保持XRender
活跃绝对不适合胆小的人。特别是,初学者将没有任何机会配置模拟时钟无需深入研究该.Xresource
领域,因为您在命令行中设置的所有内容都将是仅适用于非渲染模式(需要 option -norender
)并默认忽略(这意味着XRender
正在使用该选项)。另外,有关它的文档非常糟糕,而且示例实际上交易与XRender
母鸡的牙齿一样罕见。因此,我决定开始自己的方法。
我希望有一种更简单的方法来完成这一切,但显然没有。首先,这个问题可能会帮助新用户指导如何为“他们的”进行设置xclock
;另一方面,我也想问一下大家是否有任何方法可以改进我的“配置文件”(注意引号)。奇怪的是,.Xresources
它被广泛认为是“过时的”和“上个世纪的”,但是如果您使用的应用程序怎么办?做依靠老式的方式,使用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
rgba
代表“红、绿、蓝、阿尔法”——其中第四个参数, α,将以十六进制表示法指示不透明度级别: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
。
为什么会这样?
到目前为止,我认为这*
只是一个通配符的含义XClock<whatever><parameter>
。
答案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 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
操作(-load
如果不提供任何选项,则xrdb 默认xrdb file
为 ie xrdb -load file
)。
这会有效地清除您的资源数据库,加载系统默认值,然后在该文件中添加您的 XClock 资源设置。需要知道的一个好技巧是您可以使用 恢复“系统默认值” xrdb /dev/null
。您可以通过以下方式获取现有资源数据库(包括系统默认值)的副本:xrdb -query -all
可以将其重定向到文件,然后根据您的喜好进行编辑。
在大多数系统上,将它们放入 .Xresources 或 .Xdefaults 中意味着它们将在创建 X 会话时加载,因此您不必在 X 会话之间手动加载它们。
我使用通配符将大多数应用程序设置为黑底白字(我不喜欢白底黑字):
*background: #000000
*foreground: #ffffff
至于可以为 xclock 设置哪些资源,它们在手册页中有所介绍(大多数 X11 命令在手册页中介绍了它们的资源)。
另一件有用的事情是,大多数 X11 命令都可以传递-name
参数,这允许您拥有独立于默认应用程序设置的资源,例如,如果我有:
Leary*background: #ff0000
作为资源设置,然后运行 xclockxclock -name Leary
我将得到一个带有暴力红色背景的 xclock。加载任何显式/通配符 XClock 资源设置,然后用Leary
类设置的设置覆盖它们。然后我可以使用它来应用相同的设置,例如xterm
, with 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.