LINUX.ORG.RU

Debian 9 Xresources xsessionrc

 , , ,


0

1

Хочу терминал urxvt напильником запилить, но не получается. .Xdefaults он видит, с этим файлом все работает. Удаляю его, пишу настройка в .Xresources - его игнорит. После этого xrdb -merge ~/.Xresources видит. НО!:

#  grep -R "Xresou" /etc/X11/*

/etc/X11/Xsession:SYSRESOURCES=/etc/X11/Xresources
/etc/X11/Xsession:USRRESOURCES=$HOME/.Xresources
Где косяк?



Последнее исправление: achilles_85 (всего исправлений: 1)

Ещё есть пользовательские каталоги, в которых хранятся клиентские ресурсы (потому как то, что ты делаешь через xrdb — это информация, хранящаяся на X-сервере).

Прелесть клиентских ресурсов в том, что они:

а) не зависят от перезапусков сервера (т. е. достаточно перезаписать файл и перезапустить X-клиент, т. е. твоё приложение);

б) можно иметь разный набор ресурсов для разных X-серверов;

в) можно иметь разный набор ресурсов в зависимости от региональных настроек. Например, у меня в ru_RU.UTF-8 и ru_RU.KOI8-R приложения xterm и rxvt используют разные шрифты.

Читай документацию о переменных XAPPLRESDIR (X11R5) и XUSERFILESEARCHPATH (X11R6). Последняя имеет приоритет.

Bass ★★★★★
()
Последнее исправление: Bass (всего исправлений: 1)
Ответ на: комментарий от Yorween

А подскажите еще по xsessionrc. При startx не отрабатывает он, хотя в вики дебиана нет заметки, что необходим ДМ или еще что то

# Make ~/.notify folder executable
export PATH="${PATH}:$HOME/.exec"

RANGER_LOAD_DEFAULT_RC=FALSE

# Disable GTK CSD
if [ -n "$STARTUP" ]; then
    BASESTARTUP=${STARTUP%% *}
    BASESTARTUP=${BASESTARTUP##*/}
    if [ "$BASESTARTUP" = x-session-manager ]; then
      BASESTARTUP=$(basename $(readlink /etc/alternatives/x-session-manager))
    fi
    if [ x"$BASESTARTUP" = x"${BASESTARTUP#gnome-session}" ] ; then
      export GTK_CSD=0
      STARTUP="env LD_PRELOAD=/path/to/libgtk3-nocsd.so.0 $STARTUP"
    fi
  fi
В директории exec лежат скрипты, без полного пути не пускаются.

achilles_85
() автор топика
Ответ на: комментарий от achilles_85

В конфиге опенбокса есть файл с переменными, в принципе туда можно добавить, но как быть с остальным?

achilles_85
() автор топика
Ответ на: комментарий от achilles_85

У меня переменные окружения, которые я задаю, забиты в xinitrc, т.к. тоже сижу без DM. По поводу остального, я не особо в курсе что это, но судя по названию это отключение декораций gtk3. Если их авто предлагает отключать из xsession, вероятно, он намекает на наличие DM. Попробуй тоже запихнуть в xinitrc. По идее должно работать.

Yorween
()
Ответ на: комментарий от Yorween

Да, отключение декораций

https://github.com/PCMan/gtk3-nocsd
Переменные в .config/openbox/environment запихнул, остальное в xinitrc. Все завелось, спс!

achilles_85
() автор топика
Ответ на: комментарий от Yorween

Рано радовался. Не могу побороть. По ссылке с гита сделал так. В .bashrc запихнул

export GTK_CSD=0
export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libgtk3-nocsd.so.0
.xinitrc
#!/usr/bin/env bash

if [ -d /etc/X11/xinit/xinitrc.d ]; then
    for f in /etc/X11/xinit/xinitrc.d/*; do
        [ -x "$f" ] && . "$f"
    done
    unset f
fi

if [ -n "$STARTUP" ]; then
    BASESTARTUP=${STARTUP%% *}
    BASESTARTUP=${BASESTARTUP##*/}
    if [ "$BASESTARTUP" = x-session-manager ]; then
      BASESTARTUP=$(basename $(readlink /etc/alternatives/x-session-manager))
    fi
    if [ x"$BASESTARTUP" = x"${BASESTARTUP#gnome-session}" ] ; then
      export GTK_CSD=0
      STARTUP="env LD_PRELOAD=libgtk3-nocsd.so.0 $STARTUP"
    fi
fi


xrdb -merge ~/.Xresources &
dbus-launch --exit-with-session openbox-session
Теперь из терминала приложения на гтк3 пускаются без CSD, а из меню и прочих запускаторов с CSD. В дебиане пакет gtk3-nocsd ставится из репы, по пути /etc/X11/Xsession.d лежат
#cat /etc/X11/Xsession.d/51gtk3-nocsd-detect

# This file is sourced by Xsession(5), not executed.

# Check if /usr/bin/gtk3-nocsd is executable, to make sure that the
# case where gtk3-nocsd is removed but not yet purged is also
# handled properly.
if [ -x /usr/bin/gtk3-nocsd ] && ( [ -z "$GTK3_NOCSD_IGNORE" ] || [ x"$GTK3_NOCSD_IGNORE"x = x"0"x ] ) ; then
    BASESTARTUP=${STARTUP%% *}
    BASESTARTUP=${BASESTARTUP##*/}
    if [ "$BASESTARTUP" = x-session-manager ]; then
        BASESTARTUP=$(basename $(readlink /etc/alternatives/x-session-manager))
    fi
    case "$BASESTARTUP" in
      gnome-session*)
          # This is GNOME, make sure GTK_CSD is not set to 0
          if [ x"$GTK_CSD"x = x"0"x ] ; then
              unset GTK_CSD
          fi
          ;;
      *)
          # not GNOME, and the user didn't specify GTK_CSD
          # themselves, so set it to 0
          if [ -z "$GTK_CSD" ] ; then
              GTK_CSD=0
          fi
          export GTK_CSD
          if [ x"$GTK_CSD"x = x"0"x ] ; then
              export LD_PRELOAD="libgtk3-nocsd.so.0${LD_PRELOAD:+:$LD_PRELOAD}"
          fi
          ;;
    esac
fi
#cat /etc/X11/Xsession.d/70gtk3-nocsd-propagate-LD_PRELOAD

# This file is sourced by Xsession(5), not executed.

# Some other startup programs may drop LD_PRELOAD as environment
# variable (ssh-agent is known for this), so make sure it's set
# explicitly again AFTER ssh-agent has been called.
if [ -n "$LD_PRELOAD" ] ; then
    STARTUP="env LD_PRELOAD=$LD_PRELOAD $STARTUP"
fi
Выходит ни то ни другое не работает. Есть идеи как завести?

achilles_85
() автор топика
Ответ на: комментарий от achilles_85

Разобрался) Надо было добавить переменные в .config/openbox/environment. В .xinitrc ничего не нужно писать, после добавления переменных скрипты из Xsession.d отрабатывают

achilles_85
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.