urxvt использует розовый вместо соляризованного, пока я не запустил xrdb ~ / .Xresources

6

Изменить: Я обнаружил, что это, похоже, ошибка в 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) не может проанализировать и использовать переменные в одном прогоне? Выглядит однако, как странная идея.

Игель
источник

Ответы:

5

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

Игель
источник
Пожалуйста, проголосуйте за эту ошибку: bugs.launchpad.net/ubuntu/+source/lightdm/+bug/1244578
iGEL
Я столкнулся с аналогичной проблемой с GDM. В / etc / gdm / Xsession удаление -nocppфлага из xrdb -merge $userresourcesстроки исправило его.
Джош
2

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

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

дольмен
источник
1

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

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

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

ln -s .Xresources ~/.Xdefaults

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

МРУ
источник
К сожалению, это не помогло, оно все еще розовое. Также, .Xresourcesкажется, анализируется, потому что сообщения об ошибках происходят из.Xresources
iGEL
@iGEL: Жаль. У меня было точно такое же явление (розовый в розовом), и символическая ссылка исправила его. К сожалению, у меня нет машины с Ubuntu для дальнейшего тестирования.
mpy
@iGEL: Возможно, вы можете проверить, ~/.xinitrcсодержит ли ваша строка, похожую наtest -r $HOME/.Xdefaults && xrdb -I$HOME -merge $HOME/.Xdefaults
mpy
1
Спасибо за вашу помощь, но после небольшого поиска, я обнаружил, что это похоже на ошибку в Ubuntu :( bugs.launchpad.net/ubuntu/+source/unity/+bug/1163129 - Извините, что не сделал это должным образом до.
ИГЕЛЬ
0

Другой вариант, менее навязчивый, вместо изменения, /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файлу делать свое дело.

C2H5OH
источник