суббота, 4 августа 2012 г.

MATE и Compiz в Fedora 17

Наконец-то после почти года вынужденных мучений с Gnome 3 мне удалось вернуться на старый добрый Gnome 2 (пусть и с другим названием MATE) в придачу с Компизом, и это в Fedora 17! Как известно, какие-то нехорошие товарищи предложили напрочь выпилить из Fedora 17 Компиз дабы убрать основного конкурента Gnome 3 (конечно же, это мое личное видение ситуации и в Fedora объясняют это другими мотивами), но вот нашлись добрые волшебники и создали репозиторий с Gnome 2 / MATE, Compiz и Emerald, дабы все те, кто до этого годами пользовался этими компонентами, могли вернуться в привычную среду, не убегая из столь же привычного дистрибутива. Ну, на самом деле, я конечно же не знаю их мотивов, но надеюсь, что развитие репозитория не остановится. Информацию я нашел случайно на этом форуме, (см. также здесь). Как советуют волшебники, сперва выполняем две команды:
yum install https://dl.dropbox.com/u/49862637/Mate-desktop/fedora_17/mate-desktop-fedora-updates/noarch/mate-desktop-release-17-2.fc17.noarch.rpm
yum groupinstall MATE-Desktop
После установки MATE можно установить Компиз. Для этого в файле /etc/yum.repos.d/Mate-Desktop_fedora_17-new-application-testing.repo заменяем строку
enabled=0
в настройке [mate-desktop-fedora-new-application-testing] на
enabled=1
Теперь устанавливаем Компиз и Эмеральд:
yum install compiz emerald ccsm compiz-mate compiz-plugins-extra compiz-plugins-extra-mate compiz-plugins-main-mate compiz-plugins-unsupported compiz-plugins-unsupported-mate emerald-themes fusion-icon
Теперь самое время перелогиниться, не забыв поменять сессию на MATE. После загрузки MATE следует настроить привычный интерфейс (конфигурационные файлы MATE отличаются от файлов Gnome 2, поэтому если у вас остались настройки Gnome 2, то толку от них немного - проще заново настроить MATE). Теперь надо проверить Компиз - запускаем fusion-icon. Кликаем правой кнопкой мыши по значку fusion-icon и выбираем Compiz в качестве Window Manager и Emerald в качестве Window Decorator. Настройки Emerald у меня сохранились c прошлых лет, а вот Компиз пришлось настраивать заново (для этого можно в fusion-icon кликнуть на Settings Manager или просто вызвать из терминала команду ccsm). Для того, чтобы fusion-icon запускался автоматически при логине в MATE, можно зайти в меню Система -> Параметры на верхней панели и кликнуть на Запускаемые Приложения. В открывшемся меню во вкладке Автоматически Запускаемые Программы добавляем новый элемент со значением Команда равным fusion-icon. Но... пока лучше не делайте этого, дальше мы напишем простой скрипт, который будет запускать компоненты, зависимые от Компиз мягко, без видимых изменений отрисовки, связанных с перезагрузкой композитного менеджера.

Это еще не все. Раньше я использовал avant-window-navigator - док-бар в нижней части дисплея. К сожалению, этот компонент был также выпилен из репозиториев Fedora, но зато я опробовал cairo-dock из репозитория rpmfusion и нашел его вполне неплохой заменой. Еще одна интересная программа - screenlets, которую можно использовать для раскидывания по экрану разных полезных штуковин - скринлетов. Ее пришлось скачать отсюда и собрать из исходников самому. К счастью, это не сложно, однако в процессе установки пришлось доустановить несколько пакетов среди которых python-BeautifulSoup и gnome-python2-libwnck.

Результат изысканий представлен на следующей картинке (картинка кликабельна). Он почти полностью (наверное только за исключением avant-window-navigator, замененного на cairo-dock) соответствует тому, что у меня было на Fedora 14.


Теперь вернемся к упомянутому скрипту для запуска fusion-icon (и не только) при входе в систему. Зачем он нужен? Видите черненькую полоску на картинке внизу экрана? Это cairo-dock. Если его запустить в некомпозитном режиме, то вместо этой красивой полоски мы увидим черный непрозрачный квадрат с непрозрачными иконками. Кто у нас запускает композитный менеджер (то бишь Компиз)? Правильно, fusion-icon. Кто запускает fusion-icon? MATE. И это настраивается в диалоге Автоматически Запускаемые Программы, там же, где настраивается запуск cairo-dock. Так вот, к сожалению Gnome 2 / MATE не гарантирует последовательность запуска этих программ и мы на какое-то мгновение можем увидеть "черный квадрат" вместо нормального cairo-dock при входе в систему. Чтобы загрузка Компиз выглядела мягкой, мы будем запускать все программы, отрисовка которых зависит от наличия композитного менеджера, внутри специального скрипта StartCompizSession после гарантированного старта Компиз. Этот скрипт мы поместим в качестве нового элемента в Автоматически Запускаемые Программы, а программы, зависящие от присутствия композитного менеджера, соответственно оттуда удалим. Помимо cairo-dock сюда относятся различные скринлеты.
#!/bin/bash

fusion-icon &
sleep 1

nmbOfTry=1
nmbOfTryLimit=20

while (( $nmbOfTry < $nmbOfTryLimit )) ; do
  ps -U $USER -o args | grep '^emerald' > /dev/null
  (( $? == 0 )) && break
  (( ++$nmbOfTry ))
  sleep 1
done

if (( $nmbOfTry < $nmbOfTryLimit )) ; then
  #avant-window-navigator &
  cairo-dock -o &

  # screenlets daemon
  screenlets-daemon &

  # various screenlets
  python -u /usr/share/screenlets/PerfectClock/PerfectClockScreenlet.py &
  python -u /usr/share/screenlets/DiskSpace/DiskSpaceScreenlet.py &
  python -u /usr/share/screenlets/ClearCalendar/ClearCalendarScreenlet.py &
  python -u /usr/share/screenlets/Slideshow/SlideshowScreenlet.py &
  python -u /usr/share/screenlets/aSensors/aSensorsScreenlet.py &
fi

Комментариев нет:

Отправить комментарий