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
файл делает свое дело.