urxvt 使用 pink 而不是 solarized 直到我运行 xrdb ~/.Xresources

urxvt 使用 pink 而不是 solarized 直到我运行 xrdb ~/.Xresources

编辑:我发现,这似乎是 Ubuntu 中的一个错误:https://bugs.launchpad.net/ubuntu/+source/unity/+bug/1163129- 我知道如何自己解决这个问题吗?

我只想切换到 urxvt,但我遇到了一个奇怪的问题.Xresources。当我登录并启动 urxvt 时,一切都是粉红色的,我收到这些错误消息

urxvt: unable to parse color 'S_base0', using pink instead.
urxvt: unable to parse color 'S_base03', using pink instead.
...(repeated for all colors I defined)...
urxvt: unable to parse color 'S_base03', using pink instead.

但是,一旦我运行xrdb ~/.Xresources,所有新打开的 urxvt 都很好,并且阳光照射得很漂亮。什么?

我的 .Xresources:https://gist.github.com/iGEL/6880992- 我正在使用 Ubuntu 13.04(64 位),但安装了 Ubuntu 13.10 的软件包rxvt-unicode-256color以获取 urxvt 的当前版本(9.18)。

编辑:请注意,颜色是在它们使用的同一文件中定义的。也许 urxvt(或正在读取的任何东西.Xresources)无法在同一次运行中解析和使用变量?但这看起来像是一个奇怪的想法。

答案1

好的,我明白了:您必须删除-noccp第 42 行中的选项/usr/sbin/lightdm-session,这会阻止xrdb使用我需要的预处理器。

答案2

如果您登录时~/.Xresources没有处理cpp,您可能需要将原始源保存为另一个名称,并~/.Xresources在每次进行更改时重建。

我刚刚编写了一个工具来自动化这个过程:https://github.com/dolmen/Xresources.edit/

答案3

您的信息~/.Xresources无法自动读入。

我认为在 Ubuntu 中(至少在 Debian 中是这样的)在 X 会话启动期间读入的资源文件是.Xdefaults

为了不破坏(可能)依赖于的任何东西~/.Xresources,只需创建一个符号链接:

ln -s .Xresources ~/.Xdefaults

启动一个新的 X 会话,粉红色中的粉红色应该消失。

答案4

另一种选择,干扰性较小,而不是修改,/usr/sbin/lightdm-session而是改变X 会话包装器。这是我的/etc/lightdm/lightdm.confUbuntu 12.04:

[SeatDefaults]
greeter-session=unity-greeter
allow-guest=false
greeter-hide-users=true
session-wrapper=/etc/X11/Xsession

请注意最后一行,它使用原始 Debian 包装器执行 X11 会话/etc/X11/Xsession。这是一个非常相似的脚本,/usr/sbin/lightdm-session但允许/etc/X11/Xsession.d/30x11-common_xresources文件执行其操作。

相关内容