/usr/bin/startxfce4 вызывает совершенно жуткого вида скрипт /etc/xdg/xfce4/xinitrc который пытается подменять собой /etc/X11/Xsession. Делает он это настолько отвратительно, что ~/.Xdefaults просто вытираются из xrdb. Не надо заниматься самодеятельностью, в startxfce4 надо просто выставить нужные переменные и запустить нужные приложения (типа xffm и xfpanel) вместо тех плясок вокруг xinit/serverrc, ssh-agent и xrdb...
Я сравнил /etc/X11/Xsession и /etc/xdg/xfce4/xinitrc, и не считаю что апстрим занимается большим велосипедостроением, чем прочие. У меня все работает и если не будет более серьезных претензий к /etc/xdg/xfce4/xinitrc, то закрою багу как INVALID
1. Xsession к этому времени уже отработал 2. Содержимое ~/.Xdefaults в xrdb отсутствует после старта xfce
У меня ~/.Xdefaults присутсвует, что я делаю не так?
У меня тоже. Тем не менее aterm в непотребном виде запускается пока не сделаю xrdb -merge .Xdefaults ... Впрочем, я уже снёс xfce и его дальнейшая судьба меня больше не интересует.
JFYI, несовместимость /etc/xdg/xfce4/xinitrc с /etc/X11/Xsession (если таковая имеется, я не смотрел) - это blocker.
Я не готов сказать что там полная совместимость, но в части xrdb там более расширеный набор импортируемых настроек, т.е. кроме того что импортируют обычно, добавляется также $XDG_CONFIG_HOME/xfce4/Xft.xrdb Сам по себе /etc/xdg/xfce4/xinitrc вызывается обычно из /etc/X11/Xsession и кроме прочего поднимает dbus. А вот когда стартуют xfce4 из runlevel 3, тогда отсутствие скрипта подобного /etc/xdg/xfce4/xinitrc у других WM/DE блокер для них, а не для xfce.
Один только этот фрагмент однозначно blocker: # create temp file for X resources XRESOURCES="/tmp/xrdb-$UID.$$" # Has to go prior to merging Xft.xrdb, as its the "Defaults" file test -r $HOME/.Xdefaults && cat $HOME/.Xdefaults >> $XRESOURCES
# ~/.Xresources contains overrides to the above test -r $HOME/.Xresources && cat $HOME/.Xresources >> $XRESOURCES # load all X resources xrdb -nocpp -merge $XRESOURCES Лично у меня в ~/.Xresources есть, например, #if HEIGHT >= 1200, поэтому -nocpp тут никак не годится.
Т.е. без nocpp нормально импортиться? Просто имеющиеся у меня ресурсы для urxvt без проблем попадают в итоговый вариант xrdb и мне не на чем проверить репорт... Я его и не закрывал по тому что не мог ни подтвердить, ни опровергнуть...
(In reply to comment #6) > Сам по себе /etc/xdg/xfce4/xinitrc вызывается обычно из /etc/X11/Xsession и > кроме прочего поднимает dbus. А вот когда стартуют xfce4 из runlevel 3, тогда > отсутствие скрипта подобного /etc/xdg/xfce4/xinitrc у других WM/DE блокер для > них, а не для xfce. Когда любой WM/DE стартует из runlevel 3, /etc/X11/Xsession к этому времени уже отработал. И dbus тоже стартовал. Делать какие-то решения на базе Xfce с такими стартовыми скриптами - это блокер для всего дистрибутива.
Пожалуй что :-(
Читаем внимательно скрипт: if test x"$DBUS_SESSION_BUS_ADDRESS" = x""; then dbuslaunch=`which dbus-launch` if test x"$dbuslaunch" != x"" -a x"$dbuslaunch" != x"no"; then eval `$dbuslaunch --sh-syntax --exit-with-session` fi fi Dbus-launch вызывается только в случае, если предыдущий запущен криво, без выставления переменных окружения. У нас в /etc/X11/profile.d/dbus-daemon.sh все запускается нормально, значит эта часть скрипта НИКОГДА не будет отрабатывать. Тоже мне блокер нашли...
Ну почти. /etc/X11/Xsession: # Merge in defaults and keymaps. MergeResources /etc/X11/Xresources "$HOME/.Xresources" "$HOME/.Xdefaults" scripts/xinitrc: XRESOURCES=$HOME/.Xdefaults ... XRESOURCES="$XRESOURCES $BASEDIR/Xft.xrdb" ... XRESOURCES="$XRESOURCES $BASEDIR/Xcursor.xrdb" ... XRESOURCES="$XRESOURCES $HOME/.Xresources" В результате настройки из .Xdefaults перекрываются непонятно чем. .Xdefaults надо грузить последним.
Я могу согласиться, что ~/.Xresources нужно переставить до ~/.Xdefaults для единообразия с общесистемной настройкой, но... Xft.xrdb и Xcursor.xrdb должны грузиться последними, иначе пользователи будут несколько разочарованы, тем, что в менеджере настроек они могут поклацать мышкой, а в реальности ничего не измениться, потому что они умудрились откуда-то скачать "кривой" .Xdefaults или .Xresources. Итак, итог: Переставляю местами .Xdefaults и .Xresources, после чего закрываем эту багу?
Да. Именно переставить. Мне нравится мой кривой .Xdefaults и я не хочу чтобы какая-то сволочь меняла мои любимые настройки. Кстати, советую ещё раз заглянуть в /etc/X11/Xsession на тему поддержки локале-зависимых .X*s...
Локолезависимые посмотрю позже, к следующей версии xfce, а пока отправил alt2 с переставленным порядком .Xdefaults и .Xresources. Еще бы почитать где-нибудь, каков правильный порядок чтения этих файлов, т.е. кто является базовой настройкой, а кто override к ней...