Linux что такое композитинг

Обновлено: 04.07.2024

Я был иллюстратором и графическим дизайнером в течение ряда лет, и теперь я ищу больше возможностей для создания графики и визуальных эффектов. Есть что-то, что является открытым исходным кодом / бесплатно (не демо, .

Почему единство 2d имеет компоновку по умолчанию? [Дубликат]

Почему единство 2d имеет возможность компоновки, не означает ли это то, что преследует цель иметь вариант единства с легким весом?

Будет ли GNOME Shell компоновкой (например, Unity)?

Я исправляю компьютеры, чтобы получить немного дополнительных денег. Я планирую купить съемный жесткий диск для переноса важных программ и других вещей, и я хотел бы установить в него Ubuntu 11.04. Итак, я не могу установить .

Повреждена ли клиентская отделка (CSD)?

Compiz (или даже композитинг в целом) не запускается при входе в систему. Решение?

Всякий раз, когда я захожу в среду рабочего стола, не похоже, что начинается композитинг. Unity 2D работает нормально, но когда я перехожу на Unity 3D, Compiz не запускается. Я должен набрать compiz --replace & amp; .

Как я могу объединить композицию Maximus и Metacity?

Я использую Maximus для деоксортирования окон, используя верхнюю панель GNOME для размещения кнопок Window и приложений Globalmenu. «Менеджер компоновки Metacity» должен быть отключен, иначе каждая панель .

Могу ли я вручную настроить прозрачность конкретного окна с использованием композитного режима Metacity?

Compiz работает неправильно с моей графической картой (Intel 82852 / 855GM), поэтому я использую композитный режим Metacity, который отлично работает. Иногда я хотел бы сделать конкретное окно по своему выбору полу .

12.04, как переключить gnome-fallback, чтобы использовать metacity навсегда?

Недавно я обновился до 12.04 и обнаружил, что мое соединение VNC не будет обновляться, особенно когда я подключу его, будет отображаться рабочий стол как есть, но не будет обновляться дальше. Я обнаружил, что отключен .

Существуют ли альтернативы Adobe After Effects с открытым исходным кодом?

Я был иллюстратором и графическим дизайнером в течение нескольких лет, и теперь я хочу больше углубляться в анимацию и визуальные эффекты. Есть ли что-нибудь с открытым исходным кодом / бесплатно (не демо, .

Уродливые тени вокруг приложений

Когда я обновился до 11.10, я подумал, что любые проблемы будут решены, и все графические глюки будут лучше. После обновления вся моя система обрушилась, и все выглядело уродливо. Я закончил .

Что такое «композитинг»?

Я включил Compiz и использовал 3D-куб для рабочего стола с поворотом до тех пор, пока различные интересные миниатюрные анимации. Недавно, когда я загружал компьютер, Docky рассказывал мне «включить компоновку». Я .

Композиция в Lubuntu

Есть ли композиция, построенная в Lubuntu? Я не имею в виду установку compiz, а скорее нечто вроде компоновки Metacity для удовлетворения приложений, которые этого требуют.

Что делает композитный менеджер?

Я знаю, что он используется для истинной прозрачности, но для чего еще это полезно?

Уменьшение яркости больших площадей, содержащих яркие цвета [закрыто]

Я выполняю большую часть своей работы в терминале или в веб-браузере. Я предпочитаю, чтобы мои терминалы использовали яркие цвета на темноте. Я бы предпочел, чтобы веб-страницы тоже выглядели так же, но это не .

Как заставить Unity не использовать композицию?

Unity 3D невероятно неустойчив для меня. Тем не менее, я люблю интерфейс и хотел бы продолжать его использовать. Есть ли способ заставить Unity 2D? Btw: Я уже подал отчет об ошибке в xserver-xorg -.

Как установить прозрачность / непрозрачность приложения в Kubuntu 16.04? [dубликат]

С Compton возможно иметь такие правила прозрачности: opacity-rule = ["60: name

= '^ Mahjongg $'", "70: name

= 'Настройки - Google Chrome $'", "70: name

проблемы с аппаратным рендерингом в nvidia-304 в kubuntu 15.04

Я сталкиваюсь с подобной проблемой в этой теме на моем персональном компьютере (Pentium 4 3GHz, 2 ГБ оперативной памяти, GeForce 6200 с использованием nvidia-304). После обновления до Kubuntu 15.04 на рабочем столе не было ничего, кроме .


Одним из худших недостатков использования облегченной среды рабочего стола является то, что в ней отсутствуют многие современные функции. Например: на XFCE4, если вы смотрите полноэкранное видео из веб-браузера, скорее всего, будет много разрывов экрана. Это связано с тем, что на легких настольных компьютерах обычно нет хорошего композитора (по соображениям производительности). В результате отсутствия хорошего композитора вы столкнетесь с большим количеством разрывов на экране, и, как правило, среда вашего рабочего стола не будет выглядеть такой современной, как могла бы. Некоторые люди принимают это и игнорируют. Для других отсутствие компоновки окон, вероятно, является одной из основных причин, по которой люди возвращаются к более тяжелым средам рабочего стола, таким как KDE и Gnome.

ОПОВЕЩЕНИЕ СПОЙЛЕРА: прокрутите вниз и посмотрите видеоурок в конце этой статьи.

К счастью, есть способ придать легковесным средам рабочего стола истинную композицию окон. Он включает в себя установку оконного композитора Compton. Когда композитор Комптона включен в вашей легкой среде, проблемы с разрывом экрана исчезнут, и все будет выглядеть намного лучше.

Как установить Комптон

Ubuntu

Debian

Arch Linux

Не забудьте также создать графический интерфейс Комптон-конф инструмент настройки из AUR для Arch.

Проверь это - Как настроить панель управления Linux-сервера с помощью Linux Dash

Fedora

Также установите compton-conf:

OpenSUSE

Композитор Compton X доступен всем пользователям OpenSUSE через OBS. Перейти на страницу загрузки , выберите свою версию SUSE и нажмите кнопку установки, чтобы получить программное обеспечение.

Другие Linux

Ваш дистрибутив Linux не упомянут выше? Не волнуйтесь! Комптон довольно распространен, и его есть в большинстве дистрибутивов Linux. Чтобы установить его, откройте терминал и найдите «compton» с помощью диспетчера пакетов вашей операционной системы. В качестве альтернативы, возьмите исходный код прямо из GitHub разработчика и скомпилируйте его!

Включение Compton на XFCE4

После установки композитора окон Compton на рабочий стол XFCE4 он не будет работать сразу. Вам нужно будет сначала запустить его. Откройте окно настроек XFCE. Внутри настроек найдите «Настройки оконного менеджера» и щелкните по нему. В области настроек диспетчера окон найдите вкладку «Композитор» и щелкните по ней.

На этой вкладке установите флажок, чтобы отключить встроенное программное обеспечение для композитинга XFCE. Это критично, иначе Комптон не сработает.

При отключенном композиторе по умолчанию откройте терминал и запустите текстовый редактор nano.

Вставьте следующий код в файл рабочего стола, чтобы композитор запускался при входе в систему:

Примечание: измените права доступа к файлу рабочего стола с помощью chmod + x

/ .config / autostart / compton.desktop

Проверь это - Как сохранить скриншоты экрана входа в Chrome OS

Настроить Compton на XFCE4

Автоматический запуск включен, но Комптон не готов к использованию на XFCE. Сначала вам нужно создать файл конфигурации. Это можно сделать (утомительно) в терминале. К счастью, Compton-conf существует. Нажмите ALT + F2, введите compton-conf и нажмите «ввод» на клавиатуре, чтобы открыть его.

Когда открывается инструмент Compton conf, создается файл конфигурации по умолчанию. Просмотрите приложение и измените параметры по своему усмотрению. Когда закончите, нажмите «Применить» и выйдите из системы. Когда вы снова войдете в систему, Compton должен работать на XFCE4!

Включение Compton на LXDE / LXQT

Использование Compton на LXDE и LXQT похоже на XFCE4, и инструкции практически не отличаются. Единственная реальная разница в том, что нет необходимости отключать составной инструмент по умолчанию, поскольку его нет. Вместо этого создайте файл рабочего стола, чтобы Compton мог работать при запуске.


Вставьте этот код в файл:

Обновите права доступа к файлу рабочего стола, чтобы система правильно его читала:

Наконец, откройте Compton conf. Используйте настройки, выбранные инструментом по умолчанию. Либо пройдите через инструмент и выберите разные параметры. Когда закончите, нажмите «Применить», чтобы добавить настройки в Compton. Затем выйдите из системы. После входа в систему ваша система LXDE / LXQT должна использовать Compton.

Включение Комптона на MATE

Когда у вас установлен Mate Tweak, нажмите «Настройки», затем «Внешний вид» в меню на панели задач. Внутри «Look and Feel» выберите «Mate Tweak» и запустите программу.

На боковой панели найдите «Windows» и выберите его. Эта область в инструменте настройки позволяет пользователям изменять способ композитинга на рабочем столе Mate.


Чтобы включить композитинг Compton GPU, выберите раскрывающееся меню под «Window Manager», найдите «Marco (Compton GPU Compositor)» и выберите его, чтобы включить. Композиция должна начаться мгновенно. Если нет, перезагрузите компьютер. При входе в систему все должно работать.

Примечание: поскольку Mate Tweak заботится о Комптоне, использование Compton-conf не обязательно. Тем не менее, не стесняйтесь открывать его для настройки параметров в любом случае.

Композитинга окно менеджер или компоновщик , является оконным менеджером , который обеспечивает приложения с закадровым буфером для каждого окна. Оконный менеджер композиты оконных буферов в образ , представляющий экран и записывает результат в память дисплея.

Составные оконные менеджеры могут выполнять дополнительную обработку буферизованных окон, применяя двухмерные и трехмерные анимированные эффекты, такие как смешивание , затухание , масштабирование , вращение , дублирование , изгиб и искривление, перетасовка, размытие , перенаправление приложений и перевод окон на один из нескольких дисплеев. и виртуальные рабочие столы . Технология компьютерной графики позволяет визуализировать визуальные эффекты в реальном времени, такие как тени , предварительный просмотр в реальном времени и сложная анимация. Поскольку экран имеет двойную буферизацию , он не мерцает во время обновлений.

К наиболее часто используемым оконным менеджерам композитинга относятся:

  • для Linux , BSD , Hurd и OpenSolaris : Compiz , KWin , Xfwm , Enlightenment , Mutter , xcompmgr и picom;
  • для Windows : диспетчер окон рабочего стола ; и
  • для macOS : Quartz Compositor .

СОДЕРЖАНИЕ

Сравнение со стековыми оконными менеджерами

  • подстриженные окно не перекрашивать непокрытые участки, в результате чего либо пробелов или «след» оставил позади другого окна
  • части окон (например, декоративные падающие тени) оставлены позади и не закрашены должным образом
  • указатель мыши поврежден
  • обновления экрана становятся невыносимо медленными
  • весь экран зависает, пока программа не ответит или не завершит работу

При использовании диспетчера композитинга, если окно перестает перерисовываться по запросу диспетчера окон, его последняя перерисовка останется отображаемой, и окно может быть затемнено. Часто заголовок изменяется, чтобы отразить статус окна как не отвечающего. Программа может препятствовать перемещению или отмене отображения своего окна, но обычно не вызывает проблем с перерисовкой.

История

Одной из первых систем с оконной системой композитинга была Commodore Amiga , выпущенная в 1985 году. Приложения могли сначала запрашивать область памяти за пределами текущей области отображения для использования в качестве растрового изображения. Затем оконная система Amiga будет использовать серию битовых битов, используя аппаратный блиттер системы, для построения композиции растровых изображений этих приложений - вместе с кнопками и ползунками - в памяти дисплея, не требуя от этих приложений перерисовки каких-либо своих растровых изображений.


24 марта 2001 года Mac OS X v10.0 стала первой основной операционной системой, в которой реализован программный 3D-композитинг и эффекты, обеспечиваемые компонентом Quartz . С выпуском Mac OS X v10.2 и Quartz Extreme работа по композитингу может быть перенесена на специализированное графическое оборудование .

В 2003 году Sun Microsystems продемонстрировала амбициозную систему трехмерной графики под названием Project Looking Glass поверх своего набора инструментов Swing . Впервые он был показан на выставке LinuxWorld Expo 2003 года . Хотя Apple пригрозила подать в суд на Sun за нарушение прав интеллектуальной собственности , другие оконные менеджеры реализовали некоторые функции в Looking Glass. К 2006 году разработка была прекращена компанией Sun, основной бизнес которой был переход от графически ориентированных рабочих станций Unix к продаже корпоративных мэйнфреймов.

Microsoft впервые представила диспетчер окон рабочего стола в Project Longhorn на конференции по проектированию оборудования Windows 2003 года , продемонстрировав шаткие окна . Серьезные задержки в развитии Longhorn вызвали Microsoft не дебют ее 3D-композитинг менеджера окон до выхода Windows Vista в январе 2007 года.

Реализация композитинга в системе X Window потребовала некоторой переделки, которая происходила постепенно. Metacity 2.8.4 был выпущен в августе 2004 года. Однако первым широко разрекламированным оконным менеджером композитинга для X был Xfwm , выпущенный в январе 2005 года. 26 января 2005 года был выпущен Compiz , представляющий полностью ускоренное 3D-композитинг на платформе Linux. KDE «s KWin также поддерживает композитинга.

Композиция и 3D-эффекты в операционных системах

При компоновке трехмерные эффекты могут применяться к окнам для создания трехмерных эффектов рабочего стола. Современные оконные менеджеры композитинга используют аппаратное ускорение 3D. Программное обеспечение композитного оконного менеджера взаимодействует с графическим оборудованием через программные интерфейсы, такие как OpenGL или Direct3D .

Самые ранние широко распространенные реализации, использующие эту технику, были выпущены для Mac в Mac OS X 10.2 и для Linux в прототипе Luminocity . В настоящее время оконные менеджеры, использующие OpenGL, включают Compiz, KWin и Quartz Compositor, тогда как Desktop Window Manager в настоящее время использует DirectX 9. OpenGL все еще не полностью поддерживается на оборудовании, поэтому производительность композитинга на основе OpenGL должна продолжать улучшаться по мере улучшения оборудования.

Linux

Для стекирования оконных менеджеров, работающих на X-сервере, требовалось расширение цветового ключа или зеленого экранирования . Композиция была введена посредством расширения "Composite" . Менеджеры компоновки используют аппаратное ускорение с помощью этого расширения, если оно доступно.


Ubuntu 8.04 Hardy Heron работает с переключателем сдвига Compiz в режиме переворота.

В Linux и UNIX возможность выполнять композицию с полным 3D-ускорением требовала фундаментальных изменений в X11 , чтобы использовать аппаратное ускорение. Первоначально начал появляться ряд модифицированных реализаций X11, разработанных на основе OpenGL , включая Xgl . Внедрение AIGLX устранит необходимость в использовании Xgl и позволит оконным менеджерам выполнять 3D-ускоренную композицию на стандартном X-сервере, при этом обеспечивая прямой рендеринг . В настоящее время карты NVIDIA , Intel и ATI поддерживают AIGLX .

Compiz представила эффект куба, который позволяет пользователю одновременно видеть до 6 виртуальных рабочих столов. Каждый рабочий стол преобразуется в текстуру поверхности куба, которую можно вращать по желанию. Compiz отображает широкий спектр 2D и 3D эффектов и имеет относительно низкие требования к оборудованию. В 2012 году Compiz был включен в Ubuntu Linux и включался автоматически, когда поддерживаемое оборудование и драйверы были доступны, а пользователь не выбрал 2D-режим.

Mutter (Metacity + Clutter ) заменил Metacity в качестве оконного менеджера по умолчанию для GNOME . Он включен в компонент оболочки GNOME в GNOME 3.0. Он использует механизм отображения Clutter, который был перенесен на все основные операционные системы, нетбуки и смартфоны .

Начиная с версии 4, оконный менеджер KWin KDE имеет возможности компоновки. KWin имеет большую часть той же функциональности, что и в Compiz .

Джава

Project Looking Glass был оконным менеджером, сочетающим 3D-рендеринг и кроссплатформенный язык программирования Java . Сейчас он неактивен и выпущен под Стандартной общественной лицензией GNU . В дистрибутив Granular Linux live CD входит Looking Glass в качестве дополнительного оконного менеджера.

После того, как он был прекращен, некоторые из его функций, такие как переключение обложек и предварительный просмотр эскизов в реальном времени, нашли свое применение в других оконных менеджерах. Его более оригинальные особенности включали наклон окна, двусторонние оконные рамы и фон с параллаксной прокруткой .

AmigaOS 4 и MorphOS

Хотя они могут работать на оборудовании с поддержкой 3D, AmigaOS 4 и MorphOS предназначены для работы на старых устаревших компьютерах Amiga, начиная с Amiga 1200 . Таким образом, их оконные менеджеры имеют в основном возможности плоского рендеринга, которые включают составные слои, альфа-смешение, градиенты, высокое разрешение и несколько рабочих столов («экранов»), которые могут частично обрезать друг друга.

Майкрософт Виндоус

Хотя диспетчер окон в Windows 2000 выполняет композицию, он не выполняет преобразования, такие как альфа-канал для каждого пикселя. Немногие коммерческие приложения использовали альфа-смешение; бесплатные программы были одними из первых, кто экспериментировал с ним, хотя и с помощью дополнительных настроек. Композиция была представлена ​​с помощью диспетчера окон рабочего стола в Windows Vista .

Windows Vista и Windows 7 позволяют пользователю отключить диспетчер окон рабочего стола, выбрав параметры внешнего вида Windows Basic. Кроме того, он автоматически отключается Windows для выполнения аппаратного наложения через Overlay Mixer Filter .

Юзабилити и приятный глазу

Композиционный подход упрощает реализацию ряда функций, которые делают пользовательский интерфейс более доступным, простым в использовании или с добавлением ярких элементов.


Эффект увеличения в Compiz (щелкните изображение, чтобы просмотреть его в масштабе).

Векторная графика , такая как шрифты TrueType и элементы с 3D-ускорением, может быть расширена без ухудшения качества (обычно из-за наложения имен ). Экран увеличитель увеличивает площадь экрана, что делает части текста легче читать - будьте то, чтобы предотвратить усталость глаз , для ослабленного зрения , или просто на расстоянии. Эту функциональность обеспечивают эффекты масштабирования, такие как лупа « рыбий глаз» и эффекты масштабирования рабочего стола.

Предварительный просмотр в реальном времени

Предварительный просмотр окна может отображаться в виде всплывающего эскиза, когда пользователь наводит курсор на соответствующую кнопку панели задач . Это позволяет пользователю идентифицировать несколько одновременно работающих программ и управлять ими.

Переключение окон


Окна с похожими именами и значками часто вызывают путаницу, особенно когда их строки заголовков перекрываются; положение каждого такого окна на панели задач необходимо запомнить. Когда таким образом открыто много окон, пользователю часто приходится прибегать к методам проб и ошибок - нажимая каждую кнопку панели задач одну за другой - прежде чем продолжить. Переключение окон позволяет быстро просмотреть сразу несколько окон, временно расположив их на декоративном фоне. После того, как выбор сделан, окнам восстанавливается исходное расположение.

Выделение начинается, когда пользователь вводит комбинацию горячих клавиш , перемещает указатель мыши в точку доступа на экране или, в некоторых случаях, использует колесо прокрутки мыши . Элементы перемещаются с помощью клавиатуры или мыши. Элемент можно выбрать, отпустив горячую клавишу, нажав клавишу Enter или щелкнув по нему мышью.

Флип-переключение


Переключатель переворота - это усовершенствованная функция переключения Alt-Tab . Выполняющиеся окна организованы в стопку - аналогично переключателю в стиле флип в музыкальном автомате 1950-х годов или Rolodex . В некоторых системах пользователь может нажимать Alt-Shift-Tab для перехода назад. Визуальные переходы применяются к каждому элементу во время навигации.

Распространенные реализации переключения поворота включают Flip 3D в Windows и Shift Switcher в Compiz.

Переключение крышки


Переключение обложки похоже на переключение флип с несколькими, в основном визуальными, отличиями. Вместо одной стопки с выделенной областью наверху отображаются две симметричные стопки с текущим выделением спереди и в центре (аналогично функции наклона окна в Looking Glass).

Cover Flow - это реализация переключения обложек в macOS. Более поздние версии используют размытие, чтобы не выделять невыделенные элементы. Cover Flow также был реализован в другом программном обеспечении Apple, таком как iTunes .

Это также называется «просмотром книги».

Переключение звонка


Кольцевое переключение похоже на переключение щелчком, за исключением того, что окна перемещаются по кругу, с текущим выделением впереди, обычно внизу. Большинство композитных оконных менеджеров включают эту функцию прямо из коробки , также доступны сторонние приложения , такие как 3D-рабочий стол .

Группировка

Пользователь может группировать окна вместе, так что в каждой группе одновременно отображается только одно окно. В Compiz фрейм окна переворачивается, чтобы указать, когда активное окно в его группе было изменено.

Разоблачать

macOS отображает предварительный просмотр каждого окна на экране, разбивая их мозаикой. Другие системы с аналогичной функциональностью (Microsoft Windows, Compiz, KWin, сторонние приложения) называются клонами Exposé. Горячая клавиша для активации Exposé - это не Alt-Tab, а F3.

Управление полетами

Mac OS X 10.7 объединяет несколько других функций композитинга, разработанных Apple, таких как Exposé, Dashboard и Spaces, в более крупную программу под названием Mission Control .

Двигатели виджетов

В macOS «виджеты» (одноцелевые апплеты ), такие как часы, блокнот и калькулятор, могут появляться при нажатии горячей клавиши . Механизмы виджетов ускоряют работу, делая часто используемые виджеты доступными, но ненавязчивыми. Они обрабатываются программой Dashboard в macOS.

Compiz начинается с пустого слоя виджетов, что позволяет пользователю добавлять приложения, щелкая по ним. Разнообразие виджетов поддерживается, в том числе Screenlets , gDesklets и SuperKaramba .

Windows Vista предоставляет гаджеты, которые пользователь может разместить на боковой панели Windows (гаджеты боковой панели), стартовой странице Windows Live (веб-гаджеты) или на внешнем дисплее, например на мобильном телефоне пользователя ( гаджеты SideShow ). Боковая панель Windows была видимым разделом в Windows Vista и была удалена в Windows 7 вместе с гаджетами боковой панели, которые были заменены на гаджеты рабочего стола .

Переходы и другие эффекты

До того, как были разработаны композитные оконные менеджеры, окна мгновенно появлялись и исчезали из поля зрения, что несовместимо с метафорой интерфейса (и с настройками физического офиса ). Некоторые системы, такие как Classic Mac OS, избежали этой проблемы с помощью ZoomRects , анимировав «масштабирование» контура окна в сторону его окончательного положения. Но в большинстве систем внезапное появление и исчезновение элементов графического интерфейса может показаться неопытным пользователям сбивающим с толку или даже хаотичным. Визуальные переходы обеспечивают контекст и помогают различать причинно-следственные связи элементов графического интерфейса. Вместо того, чтобы просто исчезнуть, окно может исчезнуть или заметно сжаться до панели задач. Выпадающее меню, которое было выбрано, может плавно выходить наружу из строки меню, что упрощает определение его происхождения и назначения.

Постепенные и естественные переходы могут быть особенно полезны для пожилых людей или пользователей с ослабленным зрением, которые замечают изменения на экране медленнее и с меньшей четкостью. Например, неопытный пользователь может импульсивно щелкнуть случайно активированное меню, что приведет к потере работы. Короткая задержка, необходимая для отображения визуального перехода, может дать пользователю достаточно времени, чтобы принять осознанное решение и избежать таких ошибок.

Фасады пользовательского интерфейса

Metisse реализует фасады пользовательского интерфейса, систему, которая предоставляет пользователям простые способы адаптации, перенастройки и рекомбинации существующих графических интерфейсов с помощью методов прямого управления .

Приветствую! Копаясь в черновиках, я обнаружил старую заготовку для статьи, которую собирался написать несколько месяцев назад. К сожалению жизненные (и не только) обстоятельства не позволили это сделать вовремя. Но сейчас я наконец нашёл время, и сегодня мы поговорим о нескольких оконных менеджерах в популярных графических окружениях для Linux. Я подробно рассмотрю функции оконного менеджера, функционал, напишу о так называемых композитных оконных менеджерах и так далее. Надеюсь будет интересно всем. Начнём.

Оконный менеджер - это программа, которая управляет окнами приложений в системе. А именно: осуществляет позиционирование окон на экране, отвечает за изменение их размера, фокусировку и прочее. При этом оконный менеджер работает поверх существующей оконной системы. В простейшем случае, оконный менеджер просто управляет окнами и взаимодействием с ним оборудования ввода, и не делает с ними ничего другого. При этом нагрузка за отрисовку ложится на центральный процессор (так называемая программная отрисовка). Некоторые оконные менеджеры, помимо управления окном, могут отрисовывать тени на его гранях, добавлять различные анимации, плавности, полупрозрачности и так далее. В этом случае, оконный менеджер является композитным. Одной из важнейших (но необязательных) функций композитного оконного менеджера является задействование для отрисовки окна возможностей видеокарты, как правило посредством OpenGL. Тем самым увеличивая качество отрисовки и значительно снижая нагрузку на центральный процессор. Функционал композитного менеджера может быть как встроенным в оконный менеджер, так и являться отдельной программой. Часто отрисовку окна через композитный оконный менеджер называют просто - композитингом. Если вы хорошо знакомы с Windows, то вот пример из Windows 7: когда в ней отключены эффекты Aero, отрисовка ведётся силами центрального процессора. Нагрузка на видеокарту меньше, однако при воспроизведении видео на экране появляются артефакты, известные как тиринг (когда кадры меняются слишком быстро и посередине видно прозрачную мерцающую полосу).


Когда эффекты Aero включены - отрисовка ведётся силами видеокарты. Что становится очевидным, так как появляются анимации появления и сворачивания окна, полупрозрачности и так далее.


Однако, композитинг имеет и обратную сторону. При отрисовке рабочего стола силами видеокарты, частота кадров в секунду синхронизируется с частотой монитора (как правило 60 кадров в секунду, что соответствует стандартным 60 герцовым мониторам), поэтому в играх частота будет несколько ниже, так как будет идти двойная синхронизация кадра. В тяжёлых случаях - производительность игры может упасть вдвое. Поэтому часто можно встретить рекомендации отключать графические эффекты при запуске игр (к примеру выключать тот же Aero в Windows 7). Вернёмся непосредственно к Линуксу. В данный момент доминирующей графической подсистемой в Линуксе является Xorg (иксы). И работа оконного менеджера в ней точно такая, какой я описал её выше. При этом функционал композитинга не был изначально в Xorg, и его реализовали значительно позже, потому композитный менеджер работает там как-бы сбоку. В общем случае, получается весьма толстый бутерброд различных слоёв, через который происходит отрисовка картинки.

В большинстве случаев для пользователя это не важно. Но вот в играх это даёт ощутимые ограничения. Сейчас же на смену Xorg идут две графические подсистемы - Wayland и Mir. Первый не привязан к какому-либо дистрибутиву или графической оболочке, в то время как второй разрабатывается для Ubuntu и её графической оболочки Unity, и уже работает в мобильной редакции Ubuntu. О Mir поговорим в отдельной статье. Что же касается Wayland - в нём отсутствуют привычные понятия оконного и композитного менеджера. В нём есть только композитор, который и производит все операции над окнами, без лишних прослоек. Отрисовка приложения при этом ложится на программный инструмент (тулкит), на котором оно написано. Например Qt, или GTK. Это так называемая отрисовка на стороне клиента. В случае же если отрисовка окна идёт непосредственно в Wayland-композиторе, то это называется отрисовкой на стороне сервера. В случае отрисовки на стороне клиента, заголовок окна приложения, его внешний вид и прочее целиком ложится на разработчика приложения. В результате может случиться так называемый "эффект Windows": если в приложение не заложен функционал изменения размера окна, то окно приложения будет всегда фиксированного размера. Пример окна с декорацией заголовка на стороне клиента (обратите внимание на кнопки управления приложением в заголовке окна):


Этот функционал реализован в GNOME. В KDE же используется отрисовка на стороне сервера, в результате все окна будут иметь одинаковый заголовок и легко меняться в размере:



Кстати, если запустить приложение с CSD (Client-Side Decorations) в оконном менеджере, не поддерживающем отрисовку на стороне клиента - приложение получит два заголовка:


CSD кстати говоря, оказался довольно удачным решением. Настолько удачным, что его взяла к себе сама Apple:


Wayland уже работает в автомобильных ОС, в мобильных операционках Tizen и SailfishOS, и много где ещё. Философия Wayland - "Каждый выводимый кадр должен быть идеальным". И это действительно так. Отрисовка в Wayland по качеству превосходит таковую в Xorg (к примеру в Wayland в принципе невозможен тиринг), плюс ко всему - в Wayland сильно затруднено создание кейлоггеров (перехватчиков клавиатурных нажатий), что положительно сказывается на безопасности. Однако Wayland пока не поддерживается фирменными проприетарными драйверами Nvidia и AMD, что сильно затрудняет его введение по умолчанию в дистрибутивах Linux. К вопросу поддержки его Линуксовыми графическими оболочками мы вернёмся чуть позже. Говорить на эту тему можно очень долго, потому предлагаю перейти непосредственно к обзору оконных менеджеров в популярных графических окружениях в Linux.

Metacity - оконный менеджер ныне покойной графической среды GNOME 2. Пришёл на замену использовавшимся там Sawfish и Enlightenment. Отличается весьма скромным потреблением ресурсов. Поддерживает простой программный композитинг (отбрасываемые тени, прозрачности, предпросмотр окон). Изначально был написан на GTK+ 2, позже был переписан на GTK+ 3, что сделало возможным его использование в GNOME 3.0-3.8. В настоящее время является частью проекта GNOME Flashback, ипользуется в графической среде Cinnamon для запуска на оборудовании, не поддерживающим аппаратное ускорение графики, а также поставляется в качестве опции в Linux Mint MATE и UbuntuMATE.


Mutter - дальнейшее развитие Metacity для GNOME 3. Mutter является полностью композитным менеджером, для отрисовки 2D задействует высокопроизводительную библиотеку векторной графики Cairo, а для отрисовки 3D - Clutter, который использует для ускорения OpenGL. Работа оболочки GNOME Shell реализована в виде плагина для Mutter, в результате чего задействуются все возможности этого оконного менеджера во всём функционале GNOME 3. Начиная с GNOME 3.10, работа среды без Mutter невозможна. Mutter также является оконным менджером с наиболее полной и законченной поддержкой Wayland, отрисовка ведётся на стороне клиента (клиентом выступает библиотека GTK+ 3). Функциональность Mutter может расширяться с помощью плагинов. Mutter нельзя назвать легковесным оконным менеджером, и он абсолютно не годится для старого и слабого оборудования.

Muffin - форк Mutter от разработчиков графического окружения Cinnamon. Разрабатывается командой разработчиков Linux Mint. Muffin унаследовал многие функции Mutter, для отрисовки также задействует Cairo и Clutter. Однако не имеет поддержки Wayland (разработчики пока не считают его готовым для применения), а также абстрагируется от возможностей GTK+ (если релизы Mutter привязаны к релизам GTK+, то Muffin может собираться с любой версией GTK+, не ниже минимально поддерживаемой). В отличии от Mutter, Muffin почти вдвое меньше потребляет оперативной памяти, а также меньше нагружает видеоподсистему, что делает применение Cinnamon идеальным для бюджетных ноутбуков. Функционал также расширяем за счёт плагинов.

Marco - форк Metacity от разработчиков графического окружения MATE. Использует те же принципы отрисовки окон, программный композитинг и так далее. Может быть заменён на Metacity или Compiz.





Xfwm4 - стандартный оконный менеджер графической среды Xfce. С версии 4.2 обзавёлся программным композитингом. Данный оконный менеджер весьма легковесный, простой и может применяться не только в Xfce, но и, например, в MATE. В настоящее время разработчики портируют его на GTK+ 3, а также реализуют поддержку отрисовки через OpenGL. Может быть заменён на Compiz, Metacity или Marco.


Kwin - один из самых полнофункциональных, стабильных и гибких оконных менеджеров в Linux. Является стандартным для графической среды KDE. Начиная с KDE 4, стал полностью композитным, поддерживает многие эффекты из Compiz, может задействовать для отрисовки OpenGL 2.0, 3.1, OpenGL ES или отрисовку через расширение Xrender, способен блокироваться полноэкранным приложением (например игрой, увеличивая тем самым производительность), имеет широкие возможности настройки эффектов, анимации, а с версии 5 - имеет поддержку Wayland, отрисовки через расширения EGL (вместо стандартного интерфейса GLX), и многое другое. В KDE 4 может быть без проблем заменён на Compiz. Kwin написан на Qt, и задействует многие возможности этого фреймворка. Но если GNOME практически прибит гвоздями к GTK+ 3, разработчики которого всё время ломают его API с новыми релизами, то в Qt ситуация во много раз лучше, и выпуски KDE не привязаны жёстко к выпускам Qt. В аварийных ситуациях, Kwin показывает потрясающую стабильность - он будет автоматически переключать режимы отрисовки, в случае проблем с видеодрайвером, будет перезапускаться, но не прекратит отрисовку. Также Kwin, при всём своём функционале, весьма легковесен (в сравнении с Mutter и отчасти Muffin), что делает его пригодным к применению на слабых ноутбуках, нетбуках и подобном.




Compton - композитный менеджер, форк Xcompmgr. Не является оконным менеджером, а просто дополняет существующий функционалом композитного. Часто применяется в паре с Openbox, Metacity и Marco. Эффектами не богат, но наиболее популярные, такие как прозрачности, тени, анимации, плавные переходы и, конечно же, отрисовка через OpenGL, реализованы в полной мере. Также поставляется как опция в Linux Mint MATE и UbuntuMATE.


Openbox - популярный суперлегковесный оконный менеджер. Не имеет в себе функционала композитного, даже программно. Является стандартным оконным менеджером в окружениях LXDE и LXQt. Может быть заменён на любой другой, как и использоваться для замены во многих окружениях, например MATE и Xfce.



Разумеется это далеко не все доступный в Linux оконные менеджеры. И в будущем я напишу как создать своё собственное графическое окружение из разных компонентов. Некого монстра Франкенштейна, сшитого из разных кусков :) Если есть пожелания - пишите в комментариях.

Композитинга окно менеджер или компоновщик , является оконным менеджером , который обеспечивает приложения с закадровым буфером для каждого окна. Оконный менеджер композиты оконных буферов в образ , представляющий экран и записывает результат в память дисплея. [1] [2]

Составные оконные менеджеры могут выполнять дополнительную обработку буферизованных окон, применяя 2D- и 3D- анимированные эффекты, такие как смешивание , затухание , масштабирование , вращение , дублирование , изгиб и искривление, перетасовка, размытие , перенаправление приложений и перевод окон на один из нескольких дисплеев. и виртуальные рабочие столы . Технология компьютерной графики позволяет визуализировать визуальные эффекты в реальном времени, такие как тени , предварительный просмотр в реальном времени и сложная анимация. [3] [4] Поскольку экранс двойной буферизацией , не мерцает во время обновлений.

К наиболее часто используемым оконным менеджерам композитинга относятся:

СОДЕРЖАНИЕ

    окно не перекрашивать непокрытые участки, в результате чего либо пробелов или «след» оставил позади другого окна
  • части окон (например, декоративные падающие тени) оставлены позади и не закрашены должным образом
  • указатель мыши поврежден [7] [ ненадежный источник ]
  • обновления экрана становятся невыносимо медленными [8]
  • весь экран зависает до тех пор, пока программа не ответит или не завершит работу [9]

В диспетчере композитинга, если окно перестает перерисовываться по запросу диспетчера окон, его последняя перерисовка останется отображаемой, и окно может быть затемнено. Часто заголовок изменяется, чтобы отразить статус окна как не отвечающего. Программа может препятствовать перемещению или отмене отображения своего окна, но обычно не вызывает проблем с перерисовкой.

Одной из первых систем с оконной системой композитинга была Commodore Amiga , выпущенная в 1985 году. Приложения могли сначала запрашивать область памяти за пределами текущей области отображения для использования в качестве растрового изображения. Затем оконная система Amiga будет использовать серию битовых битов с использованием аппаратного блиттера системы для построения композиции растровых изображений этих приложений - вместе с кнопками и ползунками - в памяти дисплея, не требуя от этих приложений перерисовки каких-либо своих растровых изображений. [10]


24 марта 2001 года Mac OS X v10.0 стала первой основной операционной системой, в которой реализован программный 3D-композитинг и эффекты, обеспечиваемые компонентом Quartz . С выпуском Mac OS X v10.2 и Quartz Extreme работа по композитингу может быть перенесена на специализированное графическое оборудование . [2] [11]

В 2003 году Sun Microsystems продемонстрировала амбициозную систему трехмерной графики под названием Project Looking Glass поверх своего набора инструментов Swing . Впервые он был показан на выставке LinuxWorld Expo 2003 года . Хотя Apple пригрозила подать в суд на Sun за нарушение прав интеллектуальной собственности , другие оконные менеджеры реализовали некоторые функции в Looking Glass. К 2006 году разработка была прекращена компанией Sun, основной бизнес которой был переход от графически ориентированных рабочих станций Unix к продаже корпоративных мэйнфреймов. [12]

Microsoft впервые представила диспетчер окон рабочего стола в Project Longhorn на конференции по разработке оборудования Windows 2003 года , продемонстрировав шаткие окна . [13] Серьезные задержки в развитии Longhorn вызвали Microsoft не дебют ее 3D-композитинг менеджера окон до выхода Windows Vista в январе 2007 года [14]

Реализация композитинга в системе X Window потребовала некоторой переделки, которая происходила постепенно. [15] Metacity 2.8.4 был выпущен в августе 2004 года. [16] Однако первым широко известным оконным менеджером композитинга для X был Xfwm , выпущенный в январе 2005 года. [17] 26 января 2005 года был выпущен Compiz , представляющий полностью ускоренное 3D. -компоновка на платформу Linux. [18] KDE «s KWin также поддерживает композитинга.

При компоновке трехмерные эффекты могут применяться к окнам для создания трехмерных эффектов рабочего стола. Современные оконные менеджеры композитинга используют аппаратное ускорение 3D. Программное обеспечение композитного оконного менеджера взаимодействует с графическим оборудованием через программные интерфейсы, такие как OpenGL или Direct3D .

Самые ранние широко распространенные реализации, использующие эту технику, были выпущены для Mac в Mac OS X 10.2 и для Linux в прототипе Luminocity . В настоящее время оконные менеджеры, использующие OpenGL, включают Compiz, KWin и Quartz Compositor, тогда как Desktop Window Manager в настоящее время использует DirectX 9. OpenGL все еще не полностью поддерживается на оборудовании, поэтому производительность композитинга на основе OpenGL должна продолжать улучшаться по мере улучшения оборудования [ цитата необходимо ] .

Для стекирования оконных менеджеров, работающих на X-сервере, требовалось расширение цветного ключа или зеленого экранирования . Композиция была введена посредством расширения "Composite" . Менеджеры компоновки используют аппаратное ускорение с помощью этого расширения, если оно доступно.


Ubuntu 8.04 Hardy Heron работает с переключателем сдвига Compiz в режиме переворота.

В Linux и UNIX возможность выполнять композицию с полным 3D-ускорением требовала фундаментальных изменений в X11 , чтобы использовать аппаратное ускорение. Первоначально начал появляться ряд модифицированных реализаций X11, разработанных на основе OpenGL , включая Xgl . Внедрение AIGLX устранит необходимость в использовании Xgl и позволит оконным менеджерам выполнять 3D-ускоренную композицию на стандартном X-сервере, при этом обеспечивая прямой рендеринг . В настоящее время карты NVIDIA , Intel и ATI поддерживают AIGLX .

Compiz представила эффект куба, который позволяет пользователю видеть до 6 виртуальных рабочих столов одновременно. Каждый рабочий стол преобразуется в текстуру поверхности куба, которую можно вращать по желанию. Compiz отображает широкий спектр 2D и 3D эффектов и имеет относительно низкие требования к оборудованию. [19] В 2012 году Compiz был включен в Ubuntu Linux и включался автоматически, когда поддерживаемое оборудование и драйверы были доступны, а пользователь не выбрал 2D-режим. [20]

Mutter (Metacity + Clutter ) заменил Metacity в качестве оконного менеджера по умолчанию для GNOME . Он включен в компонент оболочки GNOME в GNOME 3.0. Он использует механизм отображения Clutter, который был перенесен на все основные операционные системы, нетбуки и смартфоны .

Начиная с версии 4, оконный менеджер KWin KDE имеет возможности компоновки. KWin имеет большую часть той же функциональности, что и в Compiz .

Project Looking Glass был оконным менеджером, сочетающим 3D-рендеринг и кроссплатформенный язык программирования Java . Сейчас он неактивен и выпущен под Стандартной общественной лицензией GNU . В дистрибутив Granular Linux live CD входит Looking Glass в качестве дополнительного оконного менеджера.

После того, как он был прекращен, некоторые из его функций, такие как переключение обложек и предварительный просмотр эскизов в реальном времени, нашли свое применение в других оконных менеджерах. Его более оригинальные особенности включали наклон окна, двусторонние оконные рамы и фон с параллаксной прокруткой .

Хотя они могут работать на оборудовании с поддержкой 3D, AmigaOS 4 и MorphOS предназначены для работы на старых устаревших компьютерах Amiga, начиная с Amiga 1200 . Таким образом, их оконные менеджеры имеют в основном возможности плоского рендеринга, которые включают составные слои, альфа-смешивание, градиенты, высокое разрешение и несколько рабочих столов («экранов»), которые могут частично обрезать друг друга.

Хотя оконный менеджер в Windows 2000 выполняет композицию, он не выполняет преобразования, такие как альфа-канал для каждого пикселя. Немногие коммерческие приложения использовали альфа-смешение; бесплатные программы были одними из первых, кто экспериментировал с ним, хотя и с помощью дополнительных настроек. [21] [22] Композиция была представлена ​​с помощью диспетчера окон рабочего стола в Windows Vista . [1]

Windows Vista и Windows 7 позволяют пользователю отключить диспетчер окон рабочего стола, выбрав параметры внешнего вида Windows Basic. Кроме того, он автоматически отключается Windows для выполнения аппаратного наложения через Overlay Mixer Filter .

Композиционный подход упрощает реализацию ряда функций, которые делают пользовательский интерфейс более доступным, простым в использовании или с добавлением ярких элементов.


Эффект увеличения в Compiz (щелкните изображение, чтобы просмотреть его в масштабе).

Векторная графика , такая как шрифты TrueType и элементы с 3D-ускорением, может быть расширена без ухудшения качества (обычно из-за наложения имен ). Экран увеличитель увеличивает площадь экрана, что делает части текста легче читать - будьте то, чтобы предотвратить усталость глаз , для ослабленного зрения , или просто на расстоянии. Эту функциональность обеспечивают эффекты масштабирования, такие как лупа « рыбий глаз» и эффекты масштабирования рабочего стола.

Предварительный просмотр окна может отображаться в виде всплывающего эскиза, когда пользователь наводит курсор на соответствующую кнопку панели задач . Это позволяет пользователю идентифицировать несколько одновременно работающих программ и управлять ими.


Окна с похожими именами и значками часто вызывают путаницу, особенно когда их строки заголовков перекрываются; положение каждого такого окна на панели задач необходимо запомнить. Когда таким образом открыто много окон, пользователю часто приходится прибегать к методам проб и ошибок - нажимая каждую кнопку панели задач одну за другой - прежде чем продолжить. Переключение окон позволяет быстро просмотреть сразу несколько окон, временно расположив их на декоративном фоне. После выбора окон восстанавливается исходное расположение окон.

Выделение начинается, когда пользователь вводит комбинацию горячих клавиш , перемещает указатель мыши в точку доступа на экране или, в некоторых случаях, использует колесо прокрутки мыши . Элементы перемещаются с помощью клавиатуры или мыши. Элемент можно выбрать, отпустив горячую клавишу, нажав клавишу Enter или щелкнув по нему мышью.


Переключатель переворота - это усовершенствованная функция переключения Alt-Tab . Выполняющиеся окна организованы в стопку - аналогично переключателю в стиле флип в музыкальном автомате 1950-х годов или Rolodex . В некоторых системах пользователь может нажимать Alt-Shift-Tab для перехода назад. Визуальные переходы применяются к каждому элементу во время навигации.

Распространенные реализации переключения поворота включают Flip 3D в Windows и Shift Switcher в Compiz.


Переключение обложки похоже на переключение флип с несколькими, в основном визуальными, отличиями. Вместо одной стопки с выделенной областью наверху отображаются две симметричные стопки с текущим выделением спереди и в центре (аналогично функции наклона окна в Looking Glass).

Cover Flow - это реализация переключения обложек в macOS. Более поздние версии используют размытие, чтобы не выделять невыделенные элементы. Cover Flow также был реализован в другом программном обеспечении Apple, таком как iTunes .

Это также называется «просмотром книги».


Кольцевое переключение похоже на переключение щелчком, за исключением того, что окна перемещаются по кругу, с текущим выделением впереди, обычно внизу. Большинство композитных оконных менеджеров включают эту функцию прямо из коробки , также доступны сторонние приложения , такие как 3D-рабочий стол .

Пользователь может группировать окна вместе, так что в каждой группе одновременно отображается только одно окно. В Compiz фрейм окна переворачивается, чтобы указать, когда активное окно в его группе было изменено.

macOS отображает предварительный просмотр каждого окна на экране, разбивая их мозаикой. Другие системы с аналогичной функциональностью (Microsoft Windows, Compiz, KWin, сторонние приложения) называются клонами Exposé. Горячая клавиша для активации Exposé - это не Alt-Tab, а F3.

Mac OS X 10.7 объединяет несколько других функций композитинга, разработанных Apple, таких как Exposé, Dashboard и Spaces, в более крупную программу под названием Mission Control .

В macOS «виджеты» (одноцелевые апплеты ), такие как часы, блокнот и калькулятор, могут появляться при нажатии горячей клавиши . Механизмы виджетов ускоряют работу, делая часто используемые виджеты доступными, но ненавязчивыми. Они обрабатываются программой Dashboard в macOS.

Compiz запускается с пустым слоем виджетов, позволяя пользователю добавлять приложения, щелкая по ним. Разнообразие виджетов поддерживается, в том числе Screenlets , gDesklets и SuperKaramba . [23]

Windows Vista предоставляет гаджеты, которые пользователь может разместить на боковой панели Windows (гаджеты боковой панели), стартовой странице Windows Live (веб-гаджеты) или на внешнем дисплее, например на мобильном телефоне пользователя ( гаджеты SideShow ). Боковая панель Windows была видимым разделом в Windows Vista и была удалена в Windows 7 вместе с гаджетами боковой панели, которые были заменены на гаджеты рабочего стола .

До того, как были разработаны композитные оконные менеджеры, окна мгновенно появлялись и исчезали из поля зрения, что несовместимо с метафорой интерфейса (и с настройками физического офиса ). Некоторые системы, такие как Classic Mac OS, избежали этой проблемы с помощью ZoomRects , анимировав «масштабирование» контура окна в сторону его окончательного положения. [24] Но в большинстве систем внезапное появление и исчезновение элементов графического интерфейса может показаться неопытным пользователям сбивающим с толку или даже хаотичным. [ необходима цитата ] Визуальные переходы предоставляют контекст и помогают различать причинно-следственные связи элементов графического интерфейса. Вместо того, чтобы просто исчезнуть, окно может исчезнуть или заметно сжаться до панели задач. Выпадающее меню, которое было выбрано, может плавно выходить наружу из строки меню, что упрощает определение его происхождения и назначения.

Постепенные и естественные переходы могут быть [ оригинальным исследованием? ] особенно полезно для пожилых людей или пользователей с ослабленным зрением, которые замечают изменения на экране медленнее и с меньшей четкостью. Например, неопытный пользователь может импульсивно щелкнуть меню, которое было случайно активировано, что приведет к потере работы. Короткая задержка, необходимая для отображения визуального перехода, может дать пользователю достаточно времени, чтобы принять осознанное решение и избежать таких ошибок.

Metisse реализует фасады пользовательского интерфейса, систему, которая предоставляет пользователям простые способы адаптации, перенастройки и рекомбинации существующих графических интерфейсов с помощью методов прямого управления . [25]

Читайте также: