Автор Тема: LXDE или OpenBox  (Прочитано 16565 раз)

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 5 183
  • antohami@
Re: LXDE или OpenBox
« Ответ #15 : 25.06.2016 13:24:53 »
А как в Сизифе?

Да вроде всё нормально. Версии-то значительно обновились, расположение и содержимое фалов изменилось. Но пусть лучше YYY на стартерките p8 проверит.

Оффлайн YYY

  • Мастер
  • ***
  • Сообщений: 5 950
Re: LXDE или OpenBox
« Ответ #16 : 27.06.2016 00:15:56 »
На p8 вообще темы не фурычат

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 5 183
  • antohami@
Re: LXDE или OpenBox
« Ответ #17 : 28.06.2016 10:09:52 »
На p8 вообще темы не фурычат

Проблему локализовал. Если откатить lxde-lxsession до версии 0.4.6.1-alt3, то темы работают. Буду разбираться, что не так с этим пакетом.

Оффлайн YYY

  • Мастер
  • ***
  • Сообщений: 5 950
Re: LXDE или OpenBox
« Ответ #18 : 28.06.2016 10:43:27 »
А разве за темы не
lxde-common
отвечает ?

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 5 183
  • antohami@
Re: LXDE или OpenBox
« Ответ #19 : 28.06.2016 10:53:19 »
А разве за темы не
lxde-common
отвечает ?

Он их только содержит. А работает с ними, видимо, lxsession, представляющий собой бинарик.

Оффлайн YYY

  • Мастер
  • ***
  • Сообщений: 5 950
Re: LXDE или OpenBox
« Ответ #20 : 28.06.2016 11:51:55 »
Ну если понимать что "тема lxde" состоит из настроек трех приложений: openbox, lxpanel и pcmanfm + картинки это одно.
Если понимать что "тема lxde" состоит только из картинок и обоев это другое.

Если понимать первое, то за передачу параметров откуда openbox, lxpanel и pcmanfm должны брать конфиги отвечает скрипт startlxde

# Start the LXDE session
exec /usr/bin/lxsession -s LXDE -e LXDE

Usage:  lxsession [OPTIONS...]
        -s NAME specify name of the desktop session profile
        -e NAME specify name of DE, such as LXDE, GNOME, or XFCE.


А уже в каталоге /etc/xdg/lxsession/LXDE
есть в автостарте
@lxpanel --profile LXDE
@pcmanfm --desktop --profile LXDE
и вызов скрипта
openbox-lxde
в котором
exec openbox --config-file $XDG_CONFIG_HOME/openbox/lxde-rc.xml $

Оффлайн YYY

  • Мастер
  • ***
  • Сообщений: 5 950
Re: LXDE или OpenBox
« Ответ #21 : 28.06.2016 12:08:31 »
Правда есть еще
desktop.conf
вот кто его копирует...

Оффлайн YYY

  • Мастер
  • ***
  • Сообщений: 5 950
Re: LXDE или OpenBox
« Ответ #22 : 28.06.2016 12:17:25 »
вот кто его копирует...

А его никто не копирует :)

Просто в каталоге
/etc/xdg/lxsession/LXDE
есть линк
desktop.conf -> /usr/share/lxde/desktop.conf

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 5 183
  • antohami@
Re: LXDE или OpenBox
« Ответ #23 : 28.06.2016 13:02:05 »
Пока обнаружил, что нас интересует $HOME/.config/
openbox, lxpanel и pcmanfm + картинки это одно.

Забыли lxsession. Он считывает параметры из $HOME/.config/lxsession/LXDE/desktop.conf
Проблема в том, что при использовании нового lxsession, lxappearance не желает туда писать настройки и видимо пытается писать куда-то не туда. Единственное где меняются настройки, это  $HOME/.config/gtk-3.0/settings.ini
А вот настройки оттуда lxsession прекрасно читает. так что можно вручную редактировать этот файл, и темы меняться будут.

Оффлайн YYY

  • Мастер
  • ***
  • Сообщений: 5 950
Re: LXDE или OpenBox
« Ответ #24 : 29.06.2016 01:57:10 »
Цитата: Антон Мидюков
lxappearance не желает туда писать настройки


Это проблема в lxappearance

Вот для примера бинарник который пишет.
http://file.sampo.ru/kstndd/

Надо перебирать пакет с поддержкой dbus


Цитата: Антон Мидюков
и темы меняться будут
Я говорил не о темах GTK, а о темах оформления LXDE.
Во времена p5 оно работало.
Сейчас какой-то бардак.
Что-то копируется как файл, что-то ссылкой, что-то в /etc/xgd что-то в /usr/share/lxde, что-то переименовывается...
В итоге если в p7/t7 надо исправить пару строк в скрипте, то в p8 вообще мрак...

Оффлайн YYY

  • Мастер
  • ***
  • Сообщений: 5 950
Re: LXDE или OpenBox
« Ответ #25 : 29.06.2016 02:03:51 »
а вот спек и пакетики
« Последнее редактирование: 29.06.2016 02:06:29 от YYY »

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 5 183
  • antohami@
Re: LXDE или OpenBox
« Ответ #26 : 29.06.2016 07:22:35 »
Это проблема в lxappearance

Вот для примера бинарник который пишет.
http://file.sampo.ru/kstndd/

Надо перебирать пакет с поддержкой dbus

Исправленный пакет отправлен в Сизиф и p8.

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 5 183
  • antohami@
Re: LXDE или OpenBox
« Ответ #27 : 29.06.2016 13:18:20 »
В lxde-common сейчас и правда бардак. Думаю, самое простое решение, это конфигурационные файлы из /etc/xdg/ поместить в /usr/share/lxde/ (которая есть симлинк на директорию с темой). Пакет собрал, прошу проверить работоспособность пакета на p8 и Сизифе:
apt-repo test 166485
И на p7 тоже. А также с установленным пакетом lxde-settings-altlinux, пакетом тем (иных не нашёл). Вроде всё работает. Единственное, как мне кажется, стоит добавить конфликт в пакет lxde-settings-altlinux с пакетом lxde-settings-upstream. И вообще в каждый новый пакет с темами добавлять конфликт с существующими пакетами, чтобы они удалялись, так как всё равно задействется только последняя установленная, а штатного способа переключить нет, а править /etc/alternatives/ не камильфо.

Разумеется, не забудьте удалить в ~/.config/ каталоги: pcmanfm lxpanel lxsession openbox
« Последнее редактирование: 29.06.2016 13:39:34 от Антон Мидюков »

Оффлайн YYY

  • Мастер
  • ***
  • Сообщений: 5 950
Re: LXDE или OpenBox
« Ответ #28 : 30.06.2016 08:56:36 »
В спеке есть строчки

sed -i 's,lxde.conf,LXDE.conf,' Makefile.am
sed -i 's,XDG_CONFIG_HOME/pcmanfm,XDG_CONFIG_HOME/pcmanfm/LXDE,;s,pcmanfm/LXDE.conf,pcmanfm/lxde.conf,;s,default
sed -i '/XDG_MENU/ a\\n# Since shared-mime-info-0.90-alt3 XDG_DATA_DIRS not exported. We need to define\n# the set of base

ИМХО, первые две не актуальны


Предлагаю наоборот все оставить в /etc/xdg
А для простоты создания тем (настроил, скопировал свое и в rpm) усложнить скрипт запуска.

Цитировать

%install
%makeinstall_std

install -m644 -D %SOURCE1 %buildroot%_x11sysconfdir/wmsession.d/09LXDE

mv %buildroot%_datadir/lxde %buildroot%_datadir/%theme_fullname
mkdir -p %buildroot%_datadir/%theme_fullname/pcmanfm
mv %buildroot%_sysconfdir/xdg/pcmanfm/LXDE/pcmanfm.conf %buildroot%_datadir/%theme_fullname/pcmanfm/lxde.conf
mv %buildroot%_sysconfdir/xdg/lxsession/LXDE/desktop.conf %buildroot%_datadir/%theme_fullname
mkdir -p %buildroot%_datadir/%theme_fullname/openbox
mv %buildroot%_sysconfdir/xdg/openbox/LXDE/* %buildroot%_datadir/%theme_fullname/openbox
rm -fR %buildroot%_sysconfdir/xdg/openbox/LXDE
mkdir -p %buildroot%_datadir/%theme_fullname/lxpanel
mv %buildroot%_sysconfdir/xdg/lxpanel/LXDE/* %buildroot%_datadir/%theme_fullname/lxpanel
rm -fR %buildroot%_sysconfdir/xdg/lxpanel/LXDE
ln -s %_datadir/%theme_virt_dir/desktop.conf %buildroot%_sysconfdir/xdg/lxsession/LXDE/desktop.conf
ln -s %_datadir/%theme_virt_dir/pcmanfm/lxde.conf %buildroot%_sysconfdir/xdg/pcmanfm/LXDE/pcmanfm.conf
ln -s %_datadir/%theme_virt_dir/pcmanfm/lxde.conf %buildroot%_sysconfdir/xdg/pcmanfm/LXDE/lxde.conf
ln -s %_datadir/%theme_virt_dir/lxpanel/ %buildroot%_sysconfdir/xdg/lxpanel/LXDE
ln -s %_datadir/%theme_virt_dir/openbox %buildroot%_sysconfdir/xdg/openbox/LXDE


mkdir -p %buildroot/etc/alternatives/packages.d/
cat > %buildroot/etc/alternatives/packages.d/%theme_fullname << __EOF__
%_datadir/%theme_virt_dir %_datadir/%theme_fullname 1
__EOF__

# Install desktop files
mkdir -p %buildroot%_desktopdir/
cp -v debian/*.desktop %buildroot%_desktopdir/

#Install panel config
install -m644 %SOURCE2 %buildroot%_sysconfdir/xdg/lxpanel/LXDE/panels/


%find_lang %name

%pre
if [ -d %_datadir/lxpanel/profile/LXDE ] && [ ! -L %_datadir/lxpanel/profile/LXDE ] ; then
 rm -fR %_datadir/lxpanel/profile/LXDE
fi

rm -fR %_sysconfdir/xdg/lxsession/LXDE/desktop.conf \
       %_sysconfdir/xdg/pcmanfm/LXDE \
       %_sysconfdir/xdg/lxpanel/LXDE \
       %_sysconfdir/xdg/openbox/LXDE

%files -f %name.lang




И изменить скрипт startlxde

#!/bin/sh

if [ -z "$XDG_CONFIG_HOME" ]; then
export XDG_CONFIG_HOME="$HOME/.config"
fi

# Ensure the existance of pcmanfm config file
PCMANFM_CONF_DIR="$XDG_CONFIG_HOME/pcmanfm/LXDE"
if [ ! -f "$PCMANFM_CONF_DIR/pcmanfm.conf" ]; then
mkdir -p "$PCMANFM_CONF_DIR"
if [ ! -f "@prefix@/share/lxde/pcmanfm/LXDE/pcmanfm.conf" ]; then cp @prefix@/share/lxde/pcmanfm/LXDE/lxde.conf "$PCMANFM_CONF_DIR/pcmanfm.conf"; else cp @prefix@/share/lxde/pcmanfm/LXDE/pcmanfm.conf "$PCMANFM_CONF_DIR/pcmanfm.conf"; fi
fi

# Ensure the existance of libfm config file
LIBFM_CONF_DIR="$XDG_CONFIG_HOME/libfm"
if [ ! -f "$LIBFM_CONF_DIR/libfm.conf" ]; then
mkdir -p "$LIBFM_CONF_DIR"
cp @prefix@/share/lxde/libfm/libfm.conf "$LIBFM_CONF_DIR/libfm.conf"
fi

# Ensure the existance of openbox config file
OPENBOX_CONF_DIR="$XDG_CONFIG_HOME/openbox"
if [ ! -f "$OPENBOX_CONF_DIR/lxde-rc.xml" ]; then
mkdir -p "$OPENBOX_CONF_DIR"
if [ ! -f "@prefix@/share/lxde/openbox/lxde-rc.xml" ]; then cp prefix@/share/lxde/openbox/lxde-rc.xml "$OPENBOX_CONF_DIR/lxde-rc.xml"; else cp @sysconfdir@/xdg/openbox/LXDE/rc.xml "$OPENBOX_CONF_DIR/lxde-rc.xml"; fi
fi

#Ensure the existance of lxpanel config file
LXPANEL_CONF_DIR="$XDG_CONFIG_HOME/lxpanel/LXDE"
if [ ! -f "$LXPANEL_CONF_DIR/config" ]; then
mkdir -p "$LXPANEL_CONF_DIR"
cp @prefix@/share/lxde/lxpanel/LXDE/config "$LXPANEL_CONF_DIR/config"
fi

#Ensure the existance of lxpanel panel config file
LXPANEL_CONF_DIR="$XDG_CONFIG_HOME/lxpanel/LXDE/panels"
if [ ! -f "$LXPANEL_CONF_DIR/panel" ]; then
mkdir -p "$LXPANEL_CONF_DIR"
cp @prefix@/share/lxde/lxpanel/LXDE/panels/panel "$LXPANEL_CONF_DIR/panel"
fi

#Ensure the existance of lxsession config files
LXSESSION_CONF_DIR="$XDG_CONFIG_HOME/lxsession/LXDE"
if [ ! -f "$LXSESSION_CONF_DIR/desktop.conf" ]; then
mkdir -p "$LXSESSION_CONF_DIR"
cp @prefix@/share/lxde/lxsession/LXDE/desktop.conf "$LXSESSION_CONF_DIR/desktop.conf"
fi

#Ensure the existance of lxsession autostert files
LXSESSION_CONF_DIR="$XDG_CONFIG_HOME/lxsession/LXDE"
if [ ! -f "$LXSESSION_CONF_DIR/autostart" ]; then
mkdir -p "$LXSESSION_CONF_DIR"
cp @prefix@/share/lxde/lxsession/LXDE/autostart "$LXSESSION_CONF_DIR/autostart"
fi


# Ensure the existance of the 'Desktop' folder
if [ -e "$XDG_CONFIG_HOME/user-dirs.dirs" ]; then
. "$XDG_CONFIG_HOME/user-dirs.dirs"
else
XDG_DESKTOP_DIR="$HOME/Desktop"
fi
mkdir -p "$XDG_DESKTOP_DIR"

# Clean up after GDM (GDM sets the number of desktops to one)
xprop -root -remove _NET_NUMBER_OF_DESKTOPS -remove _NET_DESKTOP_NAMES -remove _NET_CURRENT_DESKTOP 2> /dev/null

# Enable GTK+2 integration for OpenOffice.org, if available.
export SAL_USE_VCLPLUGIN=gtk

# Launch DBus if needed
if which dbus-launch >/dev/null && test -z "$DBUS_SESSION_BUS_ADDRESS"; then
eval "$(dbus-launch --sh-syntax --exit-with-session)"
fi

export XDG_MENU_PREFIX="lxde-"
export XDG_CURRENT_DESKTOP="LXDE"

# Since shared-mime-info-0.90-alt3 XDG_DATA_DIRS not exported. We need to define
# the set of base directories explicitly.
export XDG_DATA_DIRS="/usr/share/lxde:/usr/share:/usr/local/share"

# Start the LXDE session
exec @prefix@/bin/lxsession -s LXDE -e LXDE


Оффлайн YYY

  • Мастер
  • ***
  • Сообщений: 5 950
Re: LXDE или OpenBox
« Ответ #29 : 30.06.2016 09:52:57 »
типа вот так

более надежно - так как вдруг кто-то в своей теме что-то забыл. Линк будет ссылаться в никуда. А так всегда нужный минимум есть...

проще подготовить свою тему - скопировал как в ~/.config , добавил картинки и готово.

и плюс можно в автозагрузку свои программы вписать. Чего в прошлых решениях было невозможно... так как никакой возможности воздействовать на файл
lxsession/LXDE/autostart
не было...