Compiz desktop

Compiz — это композитный оконный менеджер с множеством настроек, эффектов и апплетов. Используется он чаще всего в качестве замены «родных» оконных менеджеров Gnome и KDE (metacity и kwin соответственно). Привлекает он, пожалуй, прежде всего своими красивыми эффектами (вязкие окна, прозрачность, «сгорание» окна и тому подобное).
Не буду скрывать, у меня изначально возникла мысль использовать всю эту красоту в какой-нибудь простой графической среде, типа openbox, чтобы и красивые плавные эффекты и без лишних гномовских и кдешных довесков. Однако, я быстро поняла, что так как и openbox, и compiz оба являются оконными менеджерами, то совместно использоваться они и не могут. Зато compiz теоретически должен запускаться без всяких Gnome или KDE просто в качестве автономного полноценного оконного менеджера.
Правда, судя по результатам поиска в интернете, мало кто работает в такой среде. Оно и понятно: не совсем логично использовать навороченный WM только ради его красивых эффектов, а раз уж мощность компьютера позволяет, почему не запускать полноценный DE, и в нём уже compiz. Однако, своя логика в таком использовании тоже есть: ну очень уж много всего лишнего тянут с собой готовые DE, особенно KDE, и если всё остальное не нужно, почему не юзать один только WM. По правде же говоря, мне просто захотелось попробовать, насколько это осуществимо в принципе.
compiz desktop
Хотя, конечно, на скриншоте ничего толком и не видно — то же самое можно сделать и из gnome и из какого-нибудь другого windows manager.

Итак самое главное, как запустить такую сессию, ведь при установке любого оконного менеджера, сессия сама появляется в списке для выбора из gdm или kdm, а при установке compiz ничего подобного не происходит.
Для добавления новой графической сессии, нужно прописать команду, её запускающую в соответствующий файл. Команда для запуска сессии с «голым» компизом — fusion-icon (как это ни странно).
А куда её прописывать зависит от дистрибутива. Многие (в том числе и ArchLinux) используют файл ~/.xinitrc и в этот файл следует добавить строку:

exec ck-launch-session fusion-icon

Но в Ubuntu несколько другая схема (хотя ~/.xinitrc тоже можно пытаться использовать, но это чревато дополнительным геморроем) — чтобы появилась новая сессия, следует создать файл compiz.desktop в /usr/share/xsessions/ следующего содержания:

[Desktop Entry]
Enconding=UTF-8
Name=Compiz Session
Comment=Use this session to run Compiz-fusion as your desktop environment
Exec=fusion-icon
Type=Application

Теперь при входе через gdm или kdm в списке сессий появится новая — Compiz Session (название можно поменять в файле). В slim это тоже работает: там должна быть раскомментирована строчка login_cmd exec /bin/bash -login /etc/X11/Xsession %session и добавлен compiz в список сессий.

Однако если сейчас загрузиться в новую сессию мы увидим чёрный рабочий стол, сможем покрутить куб рабочего стола (если созданы соответствующие настройки) и в общем-то всё. Ни меню, ни панели, ни даже командной строки, открывающейся по Alt+F2 нет, что делает невозможным какие-либо действия вообще.
Поэтому стоит настроить автозапуск некоторых программ, ну хотя бы панели. Для этого надо создать файл start_fusion.sh следующего содержания:

#!/bin/sh
cairo-dock &
fusion-icon

И поместить этот файл в директорию с другими исполняемыми файлами, например, в /bin/ (хотя это, наверное, не лучший выбор). И тогда fusion-icon в файлах /usr/share/xsession/compiz.desktop или ~/.xinitrc нужно будет заменить на start_fusion.sh или даже /bin/start_fusion.sh.
Ну и естественно cairo-dock тут прописан лишь как пример — можно заменить его любой панелью, а также добавить и другие строки с необходимыми программами (главное, не забывать & в конце каждой строки).
Однако, сработал автозапуск у меня лишь, когда сессия запускалась через ~/.xinitrc, а для сессии из /usr/share/xsessions/ годен оказался скрипт, который я просто скопировала из арчвики (правда, заработало именно в Ubuntu):

#!/bin/sh
cd /home/opossum
#
eval `dbus-launch —sh-syntax —exit-with-session`
#
/usr/bin/X :0.0 -br -audit 0 -nolisten tcp vt7 &
#
export DISPLAY=:0.0
#
sleep 1
#
compiz-manager decoration move resize > /tmp/compiz.log 2>&1 &
# add more apps here if necessary or start another panel, tray like pypanel, bmpanel, stalonetray
cairo-dock &
fusion-icon

Конечно /home/opossum во второй строке нужно заменить на путь к домашней папке юзера, для которого всё это делается.

На самом деле, это ещё только самое начало. Видимо, от того, что compiz не рассчитывался на подобное использование, с ним постоянно возникают какие-то мелкие неудобства и вопросы.
Пожалуй, что следует сделать сразу: назначить на Alt+F2 запуск программы gmrun, описанной в предыдущем посте. После этого многие смогут обойтись и без панели, и без меню.
Ещё одна проблема, досаждающая сразу — отрисовка рабочего стола наутилусом. Причём пока nautilus не запустишь, всё нормально — в compize есть модуль для настройки обоев рабочего стола. Неприятность в том, что из настроек самого наутилуса, отключить это никак нельзя, в отличии от pcmanfm. Правда, я и не в курсе, возникают ли подобные проблемы, если Gnome вообще не установлен. Но скорее всего, возникают. И когда гном установлен, можно открыть gconf-editor и отключить отрисовку через него, а если не установлен, то же самое должна сделать команда:

gconftool-2 —set «/apps/nautilus/preferences/show_desktop» —type bool «false»

Хотя, возможно, кому-то, наоборот, удобнее будет с рабочим столом от наутилуса.

Естественно, есть ещё множество мелких проблем, которые надо решить в получившемся самодельном DE. Навскидку приходит на ум: во-первых, настроить перезапуск иксов по Ctrl+Alt+Backspace, а во-вторых, задать файловый менеджер по-умолчанию, если это вообще возможно (а то, например, апплет «быстрый просмотр папки» в cairo-dock не работает). Однако, работать уже можно и так и достаточно удобно.

Добавить комментарий