Введение
Композитный оконный менеджер для X Window System
Compiz (/k//ɒ//m//p//I//z/) — это композитный оконный менеджер для X Window System, использующий 3D-графическое оборудование для создания быстрых композитных эффектов управления окнами. Эффекты, такие как анимация сведения окна или рабочее пространство в виде куба, реализуются как загружаемые плагины. Поскольку Compiz соответствует стандартам ICCCM, его можно использовать вместо оконных менеджеров Mutter или Metacity по умолчанию при использовании GNOME Panel или KWin в KDE Plasma Workspaces. Внутренне Compiz использует библиотеку OpenGL для взаимодействия с графическим оборудованием.
Требования к оборудованию
Первоначально Compiz работал только с 3D-оборудованием, поддерживаемым Xgl. Большинство видеокарт NVIDIA и AMD, как известно, работают с Compiz на Xgl. Начиная с 22 мая 2006 года Compiz работает на стандартном X.Org Server, используя AIGLX. Помимо графических карт Intel GMA, AIGLX также поддерживает использование видеокарт AMD (включая R300 и более новые модели) с использованием открытого драйвера, который поддерживается с осени 2006 года. Проприетарные драйверы NVIDIA (начиная с версии 1.0 9629) поддерживают работу на стандартном X.Org Server, а проприетарные драйверы AMD – с версии 8.42.
История
К началу 2000-х годов драйверы ATI и Nvidia стали все более распространенными в Linux. Продвинутая разработка OpenGL больше не была ограничена дорогостоящими UNIX-рабочими станциями. Приблизительно в то же время Xgl, Xegl и AIGLX предоставили Xorg возможность использовать OpenGL для трансформаций и эффектов на поверхностях окон. С появлением необходимых основ, xcompmgr стал пионером в реализации функций композитного менеджера окон.
Светлость
Усилия под названием Luminocity начались с группы разработчиков GNOME, чтобы воспользоваться недавними достижениями. К марту 2005 года проект Luminocity уже предлагал такие эффекты, как "колышущиеся окна", "физические модели для перемещения окон", "динамически обновляемый переключатель рабочих пространств" и "альфа-композитинг". Поскольку Luminocity был в основном прототипом, его разработка вскоре была заброшена, но некоторые из его эффектов и возможностей впоследствии были реализованы в Compiz.
Состав
Первая версия Compiz была выпущена как свободное программное обеспечение компанией Novell (SUSE) не позднее февраля 2006 года, вслед за (также новой) Xgl. Это был один из первых композитных менеджеров окон для X. В марте 2006 года компания Red Hat портировала Compiz на AIGLX.
Берилл
Beryl — название проекта для ветви Compiz, разработанной Quinnstorm, объявленное 19 сентября 2006 года после того, как разработчик Compiz Quinn Storm и команда разработчиков решили, что ответвление слишком сильно отошло от оригинальной Compiz, начатой Novell. После того, как команда Novell XGL/Compiz (в основном Дэвид Ревеман) отказалась от предложения объединить изменения Quinnstorm с основной версией Compiz, было принято решение о четком разграничении. Среди отличий от Compiz, Beryl использовал новый декоратор окон Emerald, основанный на cgwd, а также менеджер тем, использовал хранение данных в плоских файлах вместо gconf и не имел зависимостей от GNOME.
Другие филиалы
В четвертом квартале 2008 года были созданы два отдельных направления развития Compiz: compiz++ и NOMAD; compiz++ был ориентирован на разделение слоев композитинга и OpenGL для рендеринга оконного менеджера без эффектов композитинга, а также на переход с языка программирования C на C++. NOMAD был ориентирован на повышение производительности удаленного рабочего стола для установок Compiz.
Слияние филиалов Compiz
2 февраля 2009 года состоялась конференц-связь между разработчиками Compiz, Compiz++, NOMAD и Compiz Fusion, на которой было принято решение объединить проекты в единый проект под названием Compiz с единым планом развития.
Серия Compiz 0.9
4 июля 2010 года Сэм Спилсбери, ведущий разработчик Compiz, объявил о выпуске Compiz 0.9.0 с новым API, переписанным на C++. Компания Canonical Ltd. наняла Спилсбери для дальнейшей разработки Compiz для Ubuntu в октябре 2010 года. С тех пор разработка Compiz в основном синхронизирована с разработкой Ubuntu. Основная разработка была перенесена на сервис Launchpad компании Canonical. Версии 0.9.x до 0.9.5 считались нестабильными и являлись бета-версиями. В процессе работы над версией 0.9.6 компания Canonical наняла разработчика Дэниела ван Вугта для работы над Compiz на полную ставку. Хотя версия 0.9.6 так и не была официально выпущена, Compiz 0.9.7.0 вышла за месяц до корпоративной Ubuntu 12.04 LTS (Long Term Support) и была признана стабильной. За несколько дней до официального релиза Ubuntu 12.04 была создана новая ветвь разработки 0.9.8 в преддверии Ubuntu 12.10. Разработка версии Compiz 0.9.8 была перенесена на новую страницу Launchpad. В ноябре 2012 года Спилсбери объявил о своем уходе из Canonical и заявил об отсутствии планов по портированию Compiz в Wayland. Небольшая команда продолжает работу над Compiz, и на июль 2016 года основной упор в разработке делается на версию 0.9.13.
Компиз перезагружен
Группа разветвила кодовую базу Compiz 0.8, модернизировала её и продолжает поддерживать её по состоянию на 2019 год.
Особенности
Почти все доступные функции Compiz, за исключением прозрачности, затемнения и десатурации, реализуются посредством плагинов. Плагины Compiz включают эффект куба, переключение приложений Alt+Tab с живыми превью или иконками, а также функцию, аналогичную Mission Control в macOS. Используются расширения Composite для X и OpenGL. Проект Compiz классифицирует плагины на четыре основные группы: Main, Extra, Unsupported и Experimental. Менеджеры окон используют программу, называемую декоратором окон, для обеспечения оконных рамок стандартными кнопками сворачивания, разворачивания и закрытия. В отличие от многих менеджеров окон, которые имеют только один декоратор окон, пользователи Compiz имеют выбор из трёх: gtk window decorator использует либо базовый движок рендеринга на основе Cairo, либо может использовать темы Metacity. kde window decorator использует нативные темы KWin. В связи с этим, Compiz обычно не устанавливается с последними версиями Plasma Workspaces. GNOME версии 3.0 использует GNOME Shell, который построен как плагин для компостирующего менеджера окон Mutter. Это означает, что Compiz нельзя использовать одновременно с GNOME Shell. Ссылаясь на недостаток поддержки со стороны разработчиков Compiz, Fedora удалила Compiz из репозиториев Fedora, начиная с Fedora 17, однако Compiz был возвращён в репозитории Fedora, начиная с Fedora 18. Официальный MATE-спин, включающий Compiz, доступен с Fedora 19. Compiz был исключён из репозиториев Debian, начиная с Debian 7 (Wheezy) в августе 2013 года, из-за сломанных пакетов и отсутствия разработки со стороны разработчиков Compiz. Compiz был вновь добавлен в Debian в декабре 2016 года командой Hypra.fr. Compiz был исключён из репозиториев Arch Linux в мае 2013 года. Compiz всё ещё можно установить из пакетов, доступных в репозитории пользователей Arch (Arch User Repository). Ubuntu 6.06 LTS и более поздние версии включали Compiz в репозиторий universe. Ограниченная версия была включена по умолчанию как «Desktop Effects» в Ubuntu 7.04. Начиная с Ubuntu 7.10, Compiz был включён по умолчанию. В 2010 году Canonical выпустила свой интерфейс Unity, который написан как плагин для Compiz.
The Compiz project categorizes the plugins into four main groups: Main, Extra, Unsupported, and Experimental. Window managers use a program called a window decorator to provide the window borders with the usual minimize, maximize and close buttons. Unlike many window managers which have only one window decorator, Compiz users have a choice of three:
gtk window decorator uses either a basic cairo based rendering engine or can use Metacity themes. kde window decorator uses native KWin themes. As such, Compiz is not usually deployed with recent Plasma Workspaces versions. GNOME version 3.0 uses GNOME Shell which is built as a plugin to the Mutter compositing window manager. This means Compiz cannot be used in conjunction with GNOME Shell. Citing a lack of maintenance on the part of the Compiz developers, Fedora removed Compiz from the Fedora repositories from Fedora 17 however Compiz has been reinstated in the Fedora repositories since Fedora 18. An official MATE spin which includes Compiz has been available since Fedora 19. Compiz was dropped from the Debian repositories from Debian 7 (Wheezy) onwards in August 2013 due to broken packages and a lack of upstream development on the part of the Compiz developers. Compiz was reintroduced into Debian in December 2016 by the Hypra. fr Team. Compiz was dropped from the Arch Linux repositories in May 2013. Compiz can still be installed from packages available in the Arch User Repository. Ubuntu 6.06 LTS and later included Compiz in the universe repository. A limited version was included by default as "Desktop Effects" in Ubuntu 7.04. From Ubuntu 7.10 onwards, Compiz was enabled by default. In 2010 Canonical released their Unity interface which is written as a plugin for Compiz.
Прием и воздействие
Ранние обзоры Compiz были в основном положительными, отмечая его производительность, красоту и новизну. Он был включен в репозитории Ubuntu 6.06 для упрощения установки и, по состоянию на 2021 год, стал единственным случаем отсрочки выпуска Ubuntu. Другие проекты, такие как Metisse и Project Looking Glass, разрабатывались примерно в то же время, но ни один из них не достиг такой известности или широкого распространения, как Compiz. Другие менеджеры окон, такие как GNOME Shell и KWin, позже также стали реализовывать эффекты композитинга. Разработка Wayland примерно в 2010 году объединила функции композитора и графического сервера в одной программе, что в конечном итоге привело к устареванию отдельных менеджеров окон и композиторов. Дистрибутивы, которые по-прежнему включали его по умолчанию, обычно активировали лишь несколько полезных плагинов и отключали более эффектные. Кроме того, дистрибутивы все чаще стали включать KDE и GNOME с их менеджерами окон по умолчанию. Последней версией Ubuntu, в которой Compiz использовался для реализации менеджера рабочего стола Unity, была Ubuntu 16.04. После этого его разработка практически остановилась.