Заменяем xfwm4 на gala (Debian Jessie)

Автор zevilz, 15 сентября 2016, 10:56:50

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Правильно ли размещать эту информацию на нашем форуме?

Да, будет полезно.
2 (20%)
Нет, многие отстрелят себе ногу, нужно удалить.
2 (20%)
Оставить здесь, добавив в начале предупреждение о риске подключения PPA
6 (60%)

Проголосовало пользователей: 10

Голосование закончилось: 29 сентября 2016, 14:35:07

zevilz

Инструкция ниже подойдет тем, кто хочет заменить 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)
2. libcogl15 (all)
3. libcogl-pango15 (all)
4. libgnome-desktop-3-7 (i386/amd64)
5. libupower-glib1 (i386/amd64)
6. mutter-common (all)
7. libmutter0d (all)
8. libclutter-gtk-1.0-0 (i386/amd64)
9. libbamf3-2 (i386/amd64)
10. libplank-common (all)
11. libplank0 (all)
12. libgala0 (all)
13. libgranite-common (all)
14. libgranite3 (all)
15. gala (all)

Скачанные пакеты устанавливаем в том порядке, в котором указаны, либо предварительно переносим их в отдельную папку и выполняем
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)
2. libmutter0d (all)
3. gala (all)

В случае, если 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. :) Для тех, кому интересно, вот небольшое видео.

alsoijw

Сколько раз говорили: не нужно подключать PPA, потом в самом не ожиданном месте будут проблемы.
Цитата: zevilz от 15 сентября 2016, 10:56:50Если имеется софт, который зависит от этих пакетов, то он будет удален. После установки gala можно заново установить.
Может лучше указать пакетному менеджеру откуда поставить эти пакеты?
Мало видеть нам начало - надо видеть и конец. Если видишь ты создание - значит где-то есть ТВОРЕЦ
Многие жалуются: геометрия в жизни не пригодилась. Ямб от хорея им приходится отличать ежедневно?

zevilz

Цитата: alsoijw от 15 сентября 2016, 12:17:44Сколько раз говорили: не нужно подключать PPA, потом в самом не ожиданном месте будут проблемы.
Сколько раз подключал и подключаю. С большинством PPA проблем нет. После установки галы можно их отключить. При желании все пакеты можно подтянуть вручную. Их там немного.
Цитата: alsoijw от 15 сентября 2016, 12:17:44Может лучше указать пакетному менеджеру откуда поставить эти пакеты?
Можно, но так быстрее :) На голом дебиане с крысой они не стоят.

ogost

Цитата: zevilz от 15 сентября 2016, 14:03:33Сколько раз подключал и подключаю. С большинством PPA проблем нет.
К нам на форум прибегают много новичков, подключивших ppa и получивших проблемы. Подробную статистику не ведем, но всё же видно, что она не в вашу пользу.
Пункт 2.6 правил нашего форума гласит:
Цитировать2.6 Не рекомендуется советовать установку пакетов из PPA (персональных архивов пакетов Ubuntu)
Поскольку:
а. Данный пункт правил несет рекомендательный характер
б. Уважаем Ваш труд и инициативу по созданию данной инструкции и желание поделиться опытом с коллегами
предлагаю вынести решение о правильности размещения данной инструкции на нашем форуме путем всеобщего голосования. Возьму на себя наглость и прикручу голосовалку к топику.

qupl

ogost, третий пункт не помешает в голосовалке "Оставить здесь, добавив в начале предупреждение о риске подключения PPA"

ogost

qupl, исправлено, спасибо. Так же добавлена возможность сменить свой голос, если 3-ий вариант вас больше устраивает.

zevilz

ogost, пост обновил и добавил инструкцию по установке пакетами.

CoolAller

#7
Была бы gala не убунтовская, я бы глянул, а так делать винегрет нет желания. Вроде же можно собрать из исходников, никто не пробовал?

alsoijw

CoolAller, а что там пробовать? Там надо делать
Мало видеть нам начало - надо видеть и конец. Если видишь ты создание - значит где-то есть ТВОРЕЦ
Многие жалуются: геометрия в жизни не пригодилась. Ямб от хорея им приходится отличать ежедневно?

ferum

Считаю что тот винигрет что получится уже не будет иметь ни чего общего со стабильностью debian уже лучше поставить ubuntu или elementary os. Если найдутся стоящие аргументы в пользу такого рабочего стола я скорей бэкпортирую эти 15 пакетов исходного кода под дебиановские зависимости или поставлю из исходников. В этом случае пусть оно не будет обновляться но багов будет в разы меньше и неприятностей по поводу установки удаления других пакетов то же быть не должно.
З.Ы. я понимаю поставить один два пакета с драйвером какого нибудь принтера от безвыходности положения а вот так это ересь полная, сегодня получилось а завтра бунта обновилась и вы приплыли с этим мануалом.
Русские дебианщики против цифрового слабоумия !