urxvt использует розовый вместо соляризованного, пока я не запустил 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 в порядке и прекрасно соляризованы. WAT?

Мои.Xresources: https://gist.github.com/iGEL/6880992 - я использую Ubuntu 13.04 (64 бит), но установил пакет rxvt-unicode-256color из Ubuntu 13.10, чтобы получить текущую версию urxvt (9.18).

Редактировать: обратите внимание, что цвета определены в том же файле, в котором они используются. Может быть, urxvt (или что-то читает .Xresources) не может разобрать и использовать переменные в одном прогоне? Выглядит однако, как странная идея.

4 ответа

Решение

Хорошо, я понял это: вы должны удалить -noccp вариант в строке 42 /usr/sbin/lightdm-session, который мешает xrdb чтобы использовать препроцессор мне нужно.

Если ~/.Xresources не обрабатываются с cpp при входе в систему вы можете сохранить исходный источник под другим именем и восстановить ~/.Xresources каждый раз, когда вы вносите изменения.

Я только что написал инструмент для автоматизации этого процесса: https://github.com/dolmen/Xresources.edit/

Ваш ~/.Xresources не читается автоматически.

Я полагаю, что в Ubuntu (по крайней мере, в Debian) файл ресурсов, прочитанный во время начала вашей сессии X, .Xdefaults ,

Чтобы не сломать ничего, что зависит (возможно) от ~/.Xresources Просто сделайте символическую ссылку:

ln -s .Xresources ~/.Xdefaults

Начните новый сеанс X, и розовый в розовом должен исчезнуть.

Другой вариант, менее навязчивый, вместо изменения /usr/sbin/lightdm-session это изменить оболочку X сессии. Это мое /etc/lightdm/lightdm.conf для Ubuntu 12.04:

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

Обратите внимание на последнюю строку, которая выполняет сеансы X11 с оригинальной оболочкой Debian /etc/X11/Xsession, Это скрипт, очень похожий на /usr/sbin/lightdm-session но позволяет /etc/X11/Xsession.d/30x11-common_xresources файл делает свое дело.

Другие вопросы по тегам