Оконный менеджер - Window manager

Слои графического пользовательского интерфейса:
Под X оконный менеджер и сервер отображения две разные программы; но в Wayland функцию обоих выполняет наборщик Wayland.
Типовые элементы окно. В украшение окна отображается либо оконным менеджером (X11), либо клиентом (Wayland ). Отрисовка контента - задача заказчика.
В X11, когда оконный менеджер не запущен, декорации для большинства окон отсутствуют. Под Wayland клиенты всегда рисуют собственные оконные украшения.

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

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

История

Перекрывающиеся окна среды Smalltalk-76, работающей на Alto

в 1970-е годы, то Xerox Alto стал первым компьютером, поставляемым с рабочим WIMP GUI. Он использовал стек оконный менеджер, который позволял перекрывать окна.[3] Пока неясно, если Майкрософт Виндоус содержит дизайны, скопированные с Apple Mac OS, ясно, что ни один из них не был первым, кто создал графический интерфейс с использованием окон наложения. В начале 1980-х гг. Xerox Star, преемник Alto, подержанный черепица для большинства основных окон приложений и использовалось перекрытие только для диалоговых окон, устраняя большую часть необходимости в наложении.[4]

Mac OS была одним из первых коммерчески успешных примеров графического интерфейса пользователя, который использовал своего рода управление окнами в стеке через Зарисовка. В настоящее время macOS использует несколько более продвинутый оконный менеджер, который поддерживает композитинг с Mac OS X 10.0, и был обновлен в Mac OS X 10.2 для поддержки композитинга с аппаратным ускорением через Кварцевый композитор.[5]

GEM 1.1 был оконным менеджером, который поддерживал метафора рабочего стола, и использовал наложение, позволяющее перекрывать все окна. Он был выпущен в начале 1980-х.[6] GEM известен тем, что был включен в качестве основного графического интерфейса, используемого в Atari ST, который побежал Atari TOS, а также был популярным графическим интерфейсом для MS-DOS до широкого использования Microsoft Windows. В результате иска яблоко, GEM был вынужден удалить возможности наложения, сделав его тайловым оконным менеджером.[7]

В середине 1980-х гг. Amiga OS содержал ранний пример оконного менеджера композитинга под названием Интуиция (одна из низкоуровневых библиотек AmigaOS, присутствовавшая в системе Amiga ПЗУ ), способный распознавать, какие окна или их части были закрыты, а какие окна были на переднем плане и полностью видимыми, поэтому он мог рисовать только те части экрана, которые требовали обновления. Кроме того, Intuition поддерживает композитинг. Приложения могут сначала запросить область памяти за пределами текущей области отображения для использования в качестве растрового изображения. Тогда оконная система Amiga будет использовать серию бит блит используя оборудование системы блиттер для создания композиции из растровых изображений этих приложений вместе с кнопками и ползунками в памяти дисплея, не требуя от этих приложений перерисовки каких-либо своих растровых изображений.

Интуиция также предугадывала выбор пользователя, распознавая положение указателя, плавающего над другими элементами экрана (строки заголовков окон, их закрытие и изменение размера гаджетов, целые значки), и, таким образом, она была способна обеспечить почти нулевое ожидание. изложить опыт использования оконного менеджера Workbench.

Следует отметить тот факт, что Workbench был единственным оконным менеджером, который в конечном итоге вдохновил целую семью потомков и преемников: Окружающий в MorphOS, Zune / Странник в AROS, Workbench NG (Новое поколение в AmigaOS 4.0 и 4.1). В Workbench 4.1 был добавлен 2D векторный интерфейс на базе Каир библиотеки, и представляя современную Портер-Дафф Композитный движок на основе 3D.

В 1988 г. Менеджер по презентациям стал оболочкой по умолчанию в OS / 2, который в своей первой версии использовал только Интерфейс командной строки (CLI). IBM а Microsoft разработала OS / 2 как преемницу DOS и Windows для DOS. Однако после успеха Windows 3.10 Microsoft отказалась от проекта в пользу Windows. После этого проект Microsoft для будущей OS / 2 версии 3 стал Windows NT, а IBM полностью переработала оболочку OS / 2, заменив Presentation Manager OS / 2 1.x на объектно-ориентированный Рабочее место Shell который дебютировал в OS / 2 2.0.[8]

X оконные менеджеры

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

Пользователи X Window System могут легко использовать множество различных оконных менеджеров - Metacity, используется в GNOME 2, и KWin, используется в Рабочие области KDE Plasma, и много других. Поскольку многие оконные менеджеры являются модульными, люди могут использовать другие, например Compiz (3D композитинг оконный менеджер ), который заменяет оконный менеджер. Рыба-пила и классно с другой стороны расширяемый оконные менеджеры, предлагающие точное управление окнами. Компоненты разных оконных менеджеров можно даже смешивать и согласовывать; например, оконные украшения из KWin может использоваться с рабочий стол и док компоненты GNOME.

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

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

Microsoft Windows предоставляет интегрированный оконный менеджер стекирования с тех пор, как Windows 2.0; Виндоус виста представил композитинг Диспетчер окон рабочего стола (dwm.exe) в качестве дополнительной альтернативы с аппаратным ускорением. В Windows, поскольку GDI является частью ядра[9], роль оконного менеджера тесно связана с графическими подсистемами ядра и в значительной степени незаменима, хотя сторонние утилиты может использоваться для моделирования оконного менеджера Tiling поверх таких систем. С Windows 8, то Direct3D -на основе диспетчера окон рабочего стола больше нельзя отключить.[10]. Его можно перезапустить только с помощью комбинации горячих клавиш Ctrl + Shift + Win + B.[11]

проводник Виндоус (explorer.exe) по умолчанию используется как ракушка в современных системах Windows предоставить панель задач и файловый менеджер, а также множество функций оконного менеджера; аспекты Windows могут быть изменены с помощью предоставленных утилит настройки, изменяя Реестр Windows или с помощью сторонних инструментов, таких как Оконные жалюзи или же Ресурсный хакер.

Оконный менеджер Windows может также действовать как оконный менеджер X через Cygwin / X в мульти окно mode (и, возможно, другие реализации X Window).

Обратите внимание, что Microsoft и X Window System используют разные термины для описания схожих концепций. Например, термин оконный менеджер от Microsoft, потому что он интегрирован и незаменим и отличается от ракушка[12]. В Оболочка Windows аналогичен среда рабочего стола концепция в других системах графического пользовательского интерфейса.

Типы оконных менеджеров

Диспетчеры окон часто делятся на три или более классов, которые описывают, как окна отображаются и обновляются.

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

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

Укладка оконных менеджеров

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

Тайловый оконный менеджер

Мозаичные диспетчеры окон раскрашивают все окна на экране, размещая их рядом или друг над другом, так что ни одно окно никогда не закрывает другое. Microsoft Windows 1.0 использовала тайлинг и различные тайловые оконные менеджеры для Икс доступны.

Динамический оконный менеджер

Менеджеры динамических окон могут динамически переключаться между мозаичным или плавающим расположением окон. Разнообразные динамические оконные менеджеры для Икс доступны.

Особенности и возможности оконных менеджеров

Авто-скрытие
An авто-скрытие объект позволяет строки меню исчезнуть, когда указатель перемещается от края экрана.
Границы
Граница - это украшение окна компонент, предоставляемый некоторыми оконными менеджерами, который появляется вокруг активное окно. Некоторые оконные менеджеры могут также отображать рамку вокруг фоновые окна.
Контекстное меню
Некоторые оконные менеджеры предоставляют контекстное меню который появляется, когда к компоненту рабочего стола применяется альтернативное событие щелчка.
Обои для рабочего стола
Некоторые оконные менеджеры предоставляют обои для рабочего стола средство, отображающее фоновое изображение в корневое окно.
Кража фокуса
Кража фокуса это средство, которое предоставляют некоторые оконные менеджеры. Это позволяет приложению, не находящемуся в фокусе, внезапно получить фокус и украсть пользовательский ввод, предназначенный для ранее сфокусированного приложения.
Иконификация
Функция иконификации позволяет пользователям минимизировать количество запущенных приложений до рабочий стол значок или панель задач значок.
Присоединенные окна
Некоторые оконные менеджеры предоставляют соединенные окна средство, которое позволяет пользователю соединять оконные фреймы приложений вместе.
Эквиваленты клавиатуры
Некоторые оконные менеджеры предоставляют эквиваленты клавиатуры что позволяет клавиатуре воспроизводить мышь функциональность.
Строка меню
А строка меню предоставляет возможность запускать программы через меню и может содержать дополнительные возможности, включая кнопка Пуск, а панель задач, а системный трей.
Панель меню
А панель меню компонент некоторых оконных менеджеров, который предоставляет возможность запускать программы с помощью меню. А панель меню похож на строка меню, но выглядит как плавающий панель, а не горизонтальную или вертикальную полосу.
В панель меню может содержать дополнительные объекты, включая кнопка Пуск, а панель задач, а системный трей.
Фокус мыши
В фокус мыши модель определяет, как указывающее устройство влияет на фокус ввода в оконном менеджере. Модель фокуса определяет, какой компонент графический интерфейс пользователя в настоящее время выбран для приема ввода в качестве указатель перемещается по экрану.
Искажение мыши
Искажение мыши - это средство, которое центрирует указатель на текущем приложении, когда оно становится активным.
Несколько рабочих столов
Оконный менеджер может предоставить несколько рабочих столов средство. Это позволяет переключаться между несколькими корневое окно рабочие столы. Это предотвращает загромождение корневое окно, потому что приложения могут работать на разных настольные компьютеры.
Пейджер
Некоторые оконные менеджеры предоставляют пейджер инструмент, позволяющий переключаться между несколько рабочих столов. В пейджер может отображаться как экранное окно или как гаджет в панель задач или же панель задач.
Плагины
Некоторые оконные менеджеры имеют модульную конструкцию, которая позволяет подключать модули для предоставления функций по мере необходимости.
Свернуть
А свернуть позволяет окнам отображаться как заголовка на рабочем столе.
Главное меню
Некоторые оконные менеджеры предоставляют корневое меню, который появляется, когда корневое окно или же фон рабочего стола тронут.
Ярлыки
Некоторые оконные менеджеры предоставляют ярлык средство, позволяющее пользователям размещать значки на корневое окно которые имеют доступ к определенным программам или средствам.
Окна с вкладками
Некоторые оконные менеджеры предоставляют окна с вкладками средство, объединяющее приложения в общие фреймы.
Переключение задач
Диспетчер окон может предоставлять различные средства переключения задач, которые позволяют пользователю изменять текущее приложение, в том числе:
Панель задач
Некоторые оконные менеджеры предоставляют панель задач который показывает запущенные приложения. В панель задач может отображать все запущенные приложения, в том числе те, которые были минимизированный, и может предоставить возможность переключения фокус между ними. В панель задач может быть включен в строка меню на некоторых оконных менеджерах.
Панель задач
А панель задач похож на панель задач, но выглядит как плавающий панель, а не горизонтальную или вертикальную полосу.
Кнопка Пуск
Кнопка «Пуск» - это виджет рабочего стола, который предоставляет меню программ, которые можно запустить. Кнопка запуска обычно находится на строка меню внизу экрана.
Область уведомлений
А Область уведомлений используется для отображения иконки для системных и программных функций, не имеющих окно рабочего стола. Он содержит в основном иконки для отображения информации о состоянии и уведомлений, например о прибытии нового почтового сообщения. Некоторые системы могут также отображать часы в Область уведомлений.
Полосы заголовков
А заголовка это украшение окна компонент, который некоторые оконные менеджеры предоставляют в верхней части каждого окна. В заголовка обычно используется для отображения имени приложения или имени открытого документа и может содержать кнопки строки заголовка для минимизации, развертывания, закрытия или сворачивания окон приложений.
Кнопки строки заголовка
Кнопки строки заголовка включены в заголовка некоторых оконных менеджеров и предоставляют возможность минимизировать, развернуть, сворачивать или закрывать окна приложений. Некоторые оконные менеджеры могут отображать заголовка кнопки в панель задач или же панель задач, а не в заголовка.
Виртуальный рабочий стол
А виртуальный рабочий стол (также называемый рабочим столом с прокруткой) - это средство, предоставляемое некоторыми оконными менеджерами, которое позволяет рабочему столу быть больше, чем фактический экран.

Активное окно

An активное окно в настоящее время сосредоточено окно в текущем оконном менеджере. Различные оконные менеджеры по-разному указывают на активное в данный момент окно и позволяют пользователю переключаться между окнами по-разному. Например, в Microsoft Windows, если оба Блокнот и Microsoft Paint открыты, щелкнув Блокнот window заставит это окно стать активным. В Windows активное окно обозначается полосой заголовка другого цвета. Однако щелчок - не единственный способ выбрать активное окно: некоторые оконные менеджеры (например, FVWM ) сделать окно под указателем мыши активным - для переключения окон достаточно простого перемещения мыши; щелчок не нужен.

Диспетчеры окон часто предоставляют способ выбора активного окна с помощью клавиатуры в качестве альтернативы мыши. Типичная комбинация клавиш: Alt + Tab, используется Windows и KDE (по умолчанию, хотя это настраивается пользователем); другой яблочный ключ -tilde, используемый Macintosh. Нажатие соответствующей комбинации клавиш обычно циклически проходит через все видимые окна в определенном порядке, хотя возможны и другие действия.

Многие, хотя и не все, оконные менеджеры предоставляют область экрана, содержащую какой-то визуальный элемент управления (часто кнопку) для каждого окна на экране. Каждая кнопка обычно содержит заголовок окна, а также может содержать значок. Эта область экрана обычно обеспечивает своего рода визуальную индикацию того, какое окно активно - например, кнопка активного окна может казаться «нажатой». Также обычно можно переключить активное окно, щелкнув соответствующую кнопку. В Microsoft Windows эта область экрана называется панель задач; в системах Apple Macintosh эта область экрана называется док-станцией.

Активное окно не всегда может располагаться перед всеми другими окнами на экране. Активное окно - это просто окно, в которое отправляются клавиши, набранные на клавиатуре; он может быть визуально закрыт другими окнами. Это особенно актуально для оконных менеджеров, которые не требуют щелчка для изменения активных окон: FVWM, например, делает активным окно под курсором мыши, но не меняет его Z-порядок (порядок, в котором появляются окна, от заднего до переднего плана). Вместо этого необходимо щелкнуть по границе окна, чтобы вывести его на передний план. В диспетчерах окон с функцией щелчка для фокусировки, таких как Microsoft Windows, также бывают ситуации, когда активное окно может быть закрыто; однако это встречается гораздо реже.

Смотрите также

Рекомендации

  1. ^ "Определение оконного менеджера".
  2. ^ "Определение оконного менеджера из энциклопедии журнала PC". www.pcmag.com.
  3. ^ Полузащитник, Натан. "Xerox Alto". toastytech.com.
  4. ^ Полузащитник, Натан. "Звезда Xerox". toastytech.com.
  5. ^ «Mac OS X 10.4: Quartz».
  6. ^ Полузащитник, Натан. "Скриншоты GEM 1.1". Toastytech.com. В архиве из оригинала на 2019-12-25. Получено 2016-08-01.
  7. ^ Полузащитник, Натан. "Снимки экрана GEM 2.0". Toastytech.com. В архиве из оригинала на 22.08.2019. Получено 2016-08-01.
  8. ^ "История OS / 2".
  9. ^ Мольба, Кит (апрель 1996 г.). «Windows NT 4.0». Windows для ИТ-специалистов. Архивировано из оригинал 10 марта 2007 г.. Получено 17 мая, 2019.
  10. ^ «Диспетчер окон рабочего стола всегда включен - приложения Win32». docs.microsoft.com.
  11. ^ Устранение неполадок с черным или пустым экраном в Windows 10
  12. ^ Да, есть новый оконный менеджер рабочего стола, но нет, я знаю о нем не больше вас