LINUX.ORG.RU

Нужна помощь! Компиз+lxde на убунту 22-04!

 ,


0

1

Здравствуйте! Неделю назад я захотел сделать себе отдельную сессию в моей убунте, где будут компоненты из lxde, но вместо опенбокса будет Компиз. Несколько дней я мудрил с нейронкой. Вот какой код я получил:

#!/bin/bash
while [ ! -f /home/dsalin/ .Xauthority ]; do
   sleep 1
done
export XAUTHORITY=/home/dsalin/.Xauthority
export DISPLAY=:0
sleep 5
# 1. Запуск оболочки
/usr/lib/policykit-1-gnome/polkit-gnome-authentication-agent-1 &
pcmanfm --desktop --profile LXDE &
lxpanel --profile LXDE &
sudo -u dsalin /home/dsalin/compiz-watchdog.sh &
# 2. Запуск Compiz БЕЗ exec и С амперсандом
until compiz --replace ccp --sm-disable; do
    sleep 2
done &
sleep 7
# 4. Твой список автозапуска
CONFIG_FILE="$HOME/.compiz_autostart_list"
if [ -f "$CONFIG_FILE" ]; then
    while IFS= read -r line; do
        if [ -n "$line" ]; then
            if [ -x "$line" ]; then
                "$line" &
            else
                xdg-open "$line" &
            fi
        fi
    done < "$CONFIG_FILE"
fi

# Чтобы сессия не закрылась сразу, нужно "подождать" какой-то важный процесс
while true; do
    sleep 60
done


Вот на всякий и код вотчдога! Он служит чтобы при отвале декораций окон и панельки он их перезапускал без необходимости перезагружать всю сессию.

#!/bin/bash
# Указываем дисплей явно
export DISPLAY=:0

# 1. Большая пауза для "холодного" старта
# Даем системе прогрузить драйверы видеокарты
sleep 15

while true; do
    # 2. Если рабочего стола (обоев) нет - запускаем
    if ! pgrep -x "pcmanfm" > /dev/null; then
        pcmanfm --desktop --profile LXDE &
        sleep 2
    fi

    # 3. Если панели нет - запускаем
    if ! pgrep -x "lxpanel" > /dev/null; then
        lxpanel --profile LXDE &
        sleep 2
    fi

    # 4. Если Compiz не запущен - запускаем принудительно
    if ! pgrep -x "compiz" > /dev/null; then
        compiz --replace ccp --sm-disable &
        sleep 5 # Даем компизу время "застолбить" экран
    fi

    # 5. Если Emerald не запущен (и есть компиз) - запускаем
    if pgrep -x "compiz" > /dev/null && ! pgrep -x "emerald" > /dev/null; then
        emerald --replace &
    fi

    # Проверка каждые 5 секунд
    sleep 5
done




Почему я прошу помощи? Потому что данная конфигурация, находящияся по пути /usr/local/bin/lxde-compiz-session срабатывает не всегда. Вот сегодня, например, мне пришлось 3 раза перезагружать сессию чтобы прогрузились не только обои, но и панелька с апплетами. Прошу помочь мне сделать чтобы сама по себе сессия запускалась с первого раза с компизом и с панелькой как и подобает нормальной сессии!

P.S. Да, я знаю что существуют плагины для других ДЕ с подобными функциями, но мне хочется именно максимально погрузится в технологии нулевых.

Буду благодарен абсолютно всем форумчанам за любую помощь!


хочется именно максимально погрузится в технологии нулевых…

Непонятно, чего хочешь. Компиз ради компиза?..

22.04 - никак, никаким боком не нулевые.

«ubuntu+compiz» - это gnom2 или unity.

LXDE - визуально более всего походит на gnom2.

Берёшь lubuntu 18.04.5 - это последняя версия с lxde. Добавляешь туда compiz.

Здесь реальные примеры, хотя там совсем о другом. В варианте ‘gnom2’ компиз-эффекты работали.

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

У меня на убунту 22-04 заводится и lxde сам по себе, и compiz сам по себе. Если вручную заменить openbox на compiz все работает. Хочу сделать вариант сессии, где lxde будет запускаться с compiz, а не с openbox. Тот скрипт наверху почти это делает, но часто после холодного включения прогружаются только обои, а не панелька с иконками. Приходится два-три раза перезаходить в сессию чтобы заработало. Хочется сделать именно как еще один вариант сессии при входе без изменений по основной сессии lxde.

dsalin
() автор топика
Ответ на: комментарий от dsalin
Описание параметров
 * -s (--session): Задает имя профиля сессии.
   На что влияет: Определяет путь к файлам конфигурации. lxsession ищет настройки (например, desktop.conf и autostart) в директории ~/.config/lxsession/<session_name>/. По умолчанию используется значение LXDE.
 * -e (--environment): Задает имя рабочего окружения.
   На что влияет: Устанавливает переменную окружения XDG_CURRENT_DESKTOP, которая сообщает приложениям (например, файловым менеджерам или панелям), функционал какой среды им следует использовать. Также влияет на то, какие Xsettings будут применены.

Как запустить Compiz вместо стандартного WM

Для замены оконного менеджера (Openbox) на Compiz в рамках сессии LXDE, параметры командной строки обычно менять не нужно. Вместо этого следует отредактировать конфигурационный файл выбранной сессии:
 1. Определите рабочий профиль: Если вы используете стандартный LXDE, профиль находится в ~/.config/lxsession/LXDE/.
 2. Отредактируйте desktop.conf:
  2.1. Найдите (или создайте) файл ~/.config/lxsession/LXDE/desktop.conf.
  2.2. Найдите в секции [Session] строку window_manager=openbox и замените её на: window_manager=compiz

ХЗ - ответ ИИ.

Файлы сессий - поищи сам, что-то вроде /usr/share/xsessions/LXDE.desktop.

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

Как то всё сложно. Я традиционно решал бы эту задачу созданием кастомной иконки на панель с командой compiz --replace и при необходимости обратной чтобы запустить openbox.

А вот как раз заскриптовать перезапуск WM никакими способами мне не удалось. Хз что, но какие то переменные не подхватывались и запущенный из скрипта WM имел другую конфигурацию.

kirill_rrr ★★★★★
()
  • Markdown
Пустая строка (два раза Enter) начинает новый абзац. Знак '>' в начале абзаца выделяет абзац курсивом цитирования.
Внимание: прочитайте описание разметки Markdown.
Используйте Ctrl-Enter для размещения комментария