Русскоязычное сообщество Debian GNU/Linux

=> GUI => XFCE => Тема начата: zevilz от 15 сентября 2016, 10:56:50

Опрос
Вопрос: Правильно ли размещать эту информацию на нашем форуме?
Вариант 1: Да, будет полезно. голосов: 2
Вариант 2: Нет, многие отстрелят себе ногу, нужно удалить. голосов: 2
Вариант 3: Оставить здесь, добавив в начале предупреждение о риске подключения PPA голосов: 6
Название: Заменяем xfwm4 на gala (Debian Jessie)
Отправлено: zevilz от 15 сентября 2016, 10:56:50
Инструкция ниже подойдет тем, кто хочет заменить xfwm4 на gala без лишнего мусора. Установка актуальна для текущего stable и проводилась только на amd64. Теоретически сработает на i386 и на тестинге (если использовать пакеты из репозиториев xenial).

Установка (пакетами)

Удаляем родные libcogl20 libclutter-1.0-0 libclutter-gtk-1.0-0 (если установлены)
sudo apt-get purge libcogl20 libclutter-1.0-0 libclutter-gtk-1.0-0
Если имеется софт, который зависит от этих пакетов, то он будет удален. После установки gala можно заново установить.

Устанавливаем зависимости
sudo apt-get install bamfdaemon libdbusmenu-glib4 libdbusmenu-gtk3-4 libgee-0.8-2 libgtop2-7 libgtop2-common

Качаем следующие пакеты (для своей архитектуры):
1. libclutter-1.0-0 (all (https://launchpad.net/~elementary-os/%2Barchive/ubuntu/os-patches/%2Bsourcepub/4855612/%2Blisting-archive-extra))
2. libcogl15 (all (https://launchpad.net/~elementary-os/%2Barchive/ubuntu/os-patches/%2Bsourcepub/4855611/%2Blisting-archive-extra))
3. libcogl-pango15 (all (https://launchpad.net/~elementary-os/%2Barchive/ubuntu/os-patches/%2Bsourcepub/4855611/%2Blisting-archive-extra))
4. libgnome-desktop-3-7 (i386 (https://launchpad.net/ubuntu/trusty/i386/libgnome-desktop-3-7)/amd64 (https://launchpad.net/ubuntu/trusty/amd64/libgnome-desktop-3-7))
5. libupower-glib1 (i386 (https://launchpad.net/ubuntu/trusty/i386/libupower-glib1)/amd64 (https://launchpad.net/ubuntu/trusty/amd64/libupower-glib1))
6. mutter-common (all (https://launchpad.net/~elementary-os/%2Barchive/ubuntu/os-patches/%2Bsourcepub/5414402/%2Blisting-archive-extra))
7. libmutter0d (all (https://launchpad.net/~elementary-os/%2Barchive/ubuntu/os-patches/%2Bsourcepub/5414402/%2Blisting-archive-extra))
8. libclutter-gtk-1.0-0 (i386 (https://launchpad.net/ubuntu/trusty/i386/libclutter-gtk-1.0-0)/amd64 (https://launchpad.net/ubuntu/trusty/amd64/libclutter-gtk-1.0-0))
9. libbamf3-2 (i386 (https://launchpad.net/ubuntu/trusty/i386/libbamf3-2)/amd64 (https://launchpad.net/ubuntu/trusty/amd64/libbamf3-2))
10. libplank-common (all (https://launchpad.net/%7Eelementary-os/%2Barchive/ubuntu/stable/%2Bsourcepub/6229965/%2Blisting-archive-extra))
11. libplank0 (all (https://launchpad.net/%7Eelementary-os/%2Barchive/ubuntu/stable/%2Bsourcepub/6229965/%2Blisting-archive-extra))
12. libgala0 (all (https://launchpad.net/%7Eelementary-os/%2Barchive/ubuntu/stable/%2Bsourcepub/5414403/%2Blisting-archive-extra))
13. libgranite-common (all (https://launchpad.net/%7Eelementary-os/%2Barchive/ubuntu/stable/%2Bsourcepub/5334729/%2Blisting-archive-extra))
14. libgranite3 (all (https://launchpad.net/%7Eelementary-os/%2Barchive/ubuntu/stable/%2Bsourcepub/5334729/%2Blisting-archive-extra))
15. gala (all (https://launchpad.net/%7Eelementary-os/%2Barchive/ubuntu/stable/%2Bsourcepub/5414403/%2Blisting-archive-extra))

Скачанные пакеты устанавливаем в том порядке, в котором указаны, либо предварительно переносим их в отдельную папку и выполняем
sudo dpkg -i /путь_к_папке_с_пакетами/*.deb

Установка (используя PPA elementaryOS и репозиторий Ubuntu)

Подключение и использование PPA (персональных архивов пакетов Ubuntu) и репозиториев других дистрибутивов может повредить Вашу систему!
Подключайте их на свой страх и риск.

Добавляем необходимые репозитории в sources.list
deb http://ppa.launchpad.net/elementary-os/stable/ubuntu/ trusty main
deb http://ppa.launchpad.net/elementary-os/os-patches/ubuntu/ trusty main
deb http://ru.archive.ubuntu.com/ubuntu/ trusty main restricted


Добавляем ключи и обновляем кэш apt
sudo apt-get update && sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com `sudo aptitude update 2>&1 | grep -o '[0-9A-Z]\{16\}$' | xargs` && sudo apt-get update
Если добавятся не все ключи, то повторить.

Удаляем родные libcogl20 libclutter-1.0-0 libclutter-gtk-1.0-0 (если установлены)
sudo apt-get purge libcogl20 libclutter-1.0-0 libclutter-gtk-1.0-0
Если имеется софт, который зависит от этих пакетов, то он будет удален. После установки gala можно заново установить.

Устанавливаем зависимости
sudo apt-get install libclutter-1.0-0=1.18.4-0ubuntu1~elementary0.3.2 libcogl15=1.16.2-1+elementary0.3.1 libcogl-pango15=1.16.2-1+elementary0.3.1 libgnome-desktop-3-7 libupower-glib1 mutter-common=3.12.2-1ubuntu99~elementary0.3.9 libmutter0d libclutter-gtk-1.0-0=1.4.4-3ubuntu2 libbamf3-2=0.5.1+14.04.20140409-0ubuntu1
У тех пакетов, у которых указаны версии, есть пакеты из родного репозитория. Нужны именно пакеты из добавленных репозиториев. Указанные в команде версии актуальны на момент написания поста. Доступные версии можно посмотреть в синаптике.

Устанавливаем gala
sudo apt-get install gala

Замена дефолтного xfwm4 на gala

Для начала копируем родной xfce4-session.xml в хомяк
cp /etc/xdg/xfce4/xfconf/xfce-perchannel-xml/xfce4-session.xml ~/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-session.xml

Открываем скопированный файл (~/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-session.xml) любым текстовым редактором, ищем и заменяем "xfwm4" на "gala". Сохраняем.

Отключаем добавленные репозитории и перезагружаемся. После перезапуска выполняем
gala --replace
У окошек должны появиться адвайтовские заголовки. Далее выходим с сохранением сессии и снова заходим.

Настройка

Все настройки gala можно найти в dconf. Для этого устанавиваем dconf-tools (если не установлен)
sudo apt-get install dconf-tools

Настройки лежат по пути
org -> gnome -> desktop -> background
org -> gnome -> desktop -> wm
org -> pantheon -> desktop -> gala


Мастхэвные настройки
org -> gnome -> desktop -> background (бэкграунд в обзоре окон)
org -> gnome -> desktop -> wm -> preferences -> theme (тема окошек)
org -> gnome -> desktop -> wm -> preferences -> titlebar-font (шрифт заголовков окон)
org -> pantheon -> desktop -> gala -> appearance -> attach-modal-dialogs (прикрепление дочерних окон к родительскому)
org -> pantheon -> desktop -> gala -> appearance -> button-layout (расположение кнопок в заголовке)
org -> pantheon -> desktop -> gala -> behavior -> hotcorner* (горячие углы)


Обновление

Gala обновляется редко и обычно параллельно с пакетами mutter-common и libmutter0d.

Если gala устанавливалась вручную (без подключения дополнительных репозиториев), то скачиваем и устанавливаем новые версии следующих пакетов:
1. mutter-common (all (https://launchpad.net/~elementary-os/%2Barchive/ubuntu/os-patches/%2Bsourcepub/5414402/%2Blisting-archive-extra))
2. libmutter0d (all (https://launchpad.net/~elementary-os/%2Barchive/ubuntu/os-patches/%2Bsourcepub/5414402/%2Blisting-archive-extra))
3. gala (all (https://launchpad.net/%7Eelementary-os/%2Barchive/ubuntu/stable/%2Bsourcepub/5414403/%2Blisting-archive-extra))

В случае, если gala была установлена с подключением дополнительных репозиториев, то активируем следующие
deb http://ppa.launchpad.net/elementary-os/stable/ubuntu/ trusty main
deb http://ppa.launchpad.net/elementary-os/os-patches/ubuntu/ trusty main

Обновляем кэш apt и обновляем пакеты
sudo apt-get update && sudo apt-get upgrade gala mutter-common libmutter0d

Баги

1. Отображение последней анимации окна, прилепленного к краю экрана, при клике на заголовке.

2. Смещение фокуса в окне. Баг самой галы, встречается нечасто, лечится сворачиванием/разворачиванием окна.

3. Падение галы. Бывает редко, в основном падает при активной работе с окнами. Для перезапуска выполнить
gala --replace
У себя сделал для этого значок в /usr/share/applications с содержимым
[Desktop Entry]
Type=Application
Name=Gala Replace
Exec=gala --replace
Icon=system-restart
NoDisplay=false
Categories=Utility


4. Из-за того, что у пакетов mutter-common libclutter-1.0-0 libclutter-gtk-1.0-0 в родных репозиториях есть более новые версии, то при dist-upgrade они будут обновлены, а gala снесена. Блокирование версий в синаптике не поможет. Делаем удержание этих пакетов
echo -e "libclutter-1.0-0 hold\nlibclutter-gtk-1.0-0 hold\nmutter-common hold" | sudo dpkg --set-selections
Если нужно снять удержания пакетов, выполняем
sudo apt-mark unhold mutter-common libclutter-1.0-0 libclutter-gtk-1.0-0

5. Некоторые пакеты не будут обновляться при апгрейде системы. Увидеть их можно под надписью "Пакеты, которые будут оставлены в неизменном виде:". Обновлять их нужно поштучно
sudo apt-get upgrade имя_пакета
На пакеты mutter-common libclutter-1.0-0 libclutter-gtk-1.0-0 можно не обращать внимания.

P.S. Использую крысу с gala уже больше года. Критических багов не замечено, работает достаточно стабильно и плавно. Теперь не представляю крысу без gala. :) Для тех, кому интересно, вот небольшое видео (https://yadi.sk/i/WT55VnwXvBaYH).
Название: Re: Заменяем xfwm4 на gala (Debian Jessie)
Отправлено: alsoijw от 15 сентября 2016, 12:17:44
Сколько раз говорили: не нужно подключать PPA, потом в самом не ожиданном месте будут проблемы.
Цитата: zevilz от 15 сентября 2016, 10:56:50Если имеется софт, который зависит от этих пакетов, то он будет удален. После установки gala можно заново установить.
Может лучше указать пакетному менеджеру откуда поставить эти пакеты?
Название: Re: Заменяем xfwm4 на gala (Debian Jessie)
Отправлено: zevilz от 15 сентября 2016, 14:03:33
Цитата: alsoijw от 15 сентября 2016, 12:17:44Сколько раз говорили: не нужно подключать PPA, потом в самом не ожиданном месте будут проблемы.
Сколько раз подключал и подключаю. С большинством PPA проблем нет. После установки галы можно их отключить. При желании все пакеты можно подтянуть вручную. Их там немного.
Цитата: alsoijw от 15 сентября 2016, 12:17:44Может лучше указать пакетному менеджеру откуда поставить эти пакеты?
Можно, но так быстрее :) На голом дебиане с крысой они не стоят.
Название: Re: Заменяем xfwm4 на gala (Debian Jessie)
Отправлено: ogost от 15 сентября 2016, 14:32:23
Цитата: zevilz от 15 сентября 2016, 14:03:33Сколько раз подключал и подключаю. С большинством PPA проблем нет.
К нам на форум прибегают много новичков, подключивших ppa и получивших проблемы. Подробную статистику не ведем, но всё же видно, что она не в вашу пользу.
Пункт 2.6 правил нашего форума (https://debianforum.ru/index.php?topic=269.0) гласит:
Цитировать2.6 Не рекомендуется советовать установку пакетов из PPA (персональных архивов пакетов Ubuntu)
Поскольку:
а. Данный пункт правил несет рекомендательный характер
б. Уважаем Ваш труд и инициативу по созданию данной инструкции и желание поделиться опытом с коллегами
предлагаю вынести решение о правильности размещения данной инструкции на нашем форуме путем всеобщего голосования. Возьму на себя наглость и прикручу голосовалку к топику.
Название: Re: Заменяем xfwm4 на gala (Debian Jessie)
Отправлено: qupl от 16 сентября 2016, 07:34:28
ogost, третий пункт не помешает в голосовалке "Оставить здесь, добавив в начале предупреждение о риске подключения PPA"
Название: Re: Заменяем xfwm4 на gala (Debian Jessie)
Отправлено: ogost от 16 сентября 2016, 11:04:01
qupl, исправлено, спасибо. Так же добавлена возможность сменить свой голос, если 3-ий вариант вас больше устраивает.
Название: Re: Заменяем xfwm4 на gala (Debian Jessie)
Отправлено: zevilz от 16 сентября 2016, 18:05:28
ogost, пост обновил и добавил инструкцию по установке пакетами.
Название: Re: Заменяем xfwm4 на gala (Debian Jessie)
Отправлено: CoolAller от 26 сентября 2016, 13:57:25
Была бы gala не убунтовская, я бы глянул, а так делать винегрет нет желания. Вроде же можно собрать из исходников, никто не пробовал?
Название: Re: Заменяем xfwm4 на gala (Debian Jessie)
Отправлено: alsoijw от 26 сентября 2016, 16:06:00
CoolAller, а что там пробовать? Там надо делать
Название: Re: Заменяем xfwm4 на gala (Debian Jessie)
Отправлено: ferum от 27 сентября 2016, 12:02:11
Считаю что тот винигрет что получится уже не будет иметь ни чего общего со стабильностью debian уже лучше поставить ubuntu или elementary os. Если найдутся стоящие аргументы в пользу такого рабочего стола я скорей бэкпортирую эти 15 пакетов исходного кода под дебиановские зависимости или поставлю из исходников. В этом случае пусть оно не будет обновляться но багов будет в разы меньше и неприятностей по поводу установки удаления других пакетов то же быть не должно.
З.Ы. я понимаю поставить один два пакета с драйвером какого нибудь принтера от безвыходности положения а вот так это ересь полная, сегодня получилось а завтра бунта обновилась и вы приплыли с этим мануалом.