stringtranslate.com

Оконный менеджер

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

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

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

История

В 1973 году Xerox Alto стал первым компьютером, поставляемым с рабочим графическим интерфейсом WIMP . Он использовал стековый оконный менеджер , который позволял перекрывать окна. [7] Однако это было так далеко впереди своего времени, что его парадигма дизайна не получила широкого распространения до более чем десятилетие спустя. Хотя неясно, содержит ли Microsoft Windows дизайн, скопированный с классической Mac OS от Apple , ясно, что ни одна из них не была первой, кто создал графический интерфейс, использующий стековые окна. В начале 1980-х годов Xerox Star , преемник Alto, использовал мозаичное размещение для большинства основных окон приложений и использовал перекрытие только для диалоговых окон, устраняя большую часть необходимости в стекировании. [8]

Классическая Mac OS была одним из самых ранних коммерчески успешных примеров GUI, который использовал своего рода стековое управление окнами через QuickDraw . Ее преемник, macOS , использует несколько более продвинутый оконный менеджер, который поддерживал композицию с Mac OS X 10.0 и был обновлен в Mac OS X 10.2 для поддержки аппаратно-ускоренной композиции через Quartz Compositor . [9]

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

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

В 1988 году Presentation Manager стал оболочкой по умолчанию в 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 на объектно-ориентированную Workplace Shell , дебютировавшую в OS/2 2.0. [12]

Примеры

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

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

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

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

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

Microsoft Windows предоставляет интегрированный стековый оконный менеджер с Windows 2.0 ; Windows Vista представила композитный Desktop Window Manager (dwm.exe) как дополнительную аппаратно-ускоренную альтернативу. В Windows, поскольку GDI является частью ядра, [13] роль оконного менеджера тесно связана с графическими подсистемами ядра и в значительной степени не заменяема, хотя сторонние утилиты могут использоваться для имитации тайлового оконного менеджера поверх таких систем. Начиная с Windows 8 , Desktop Window Manager на основе Direct3D больше не может быть отключен. [14] Его можно перезапустить только с помощью комбинации горячих клавиш Ctrl+Shift+Win+B. [15]

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

Полный X Windows Server, позволяющий использовать оконные менеджеры, портированные из мира Unixoid, также может быть предоставлен для Microsoft Windows через Cygwin/X даже в многооконном режиме (и другими реализациями X Window System). Таким образом, можно легко запустить клиентские программы X Window System либо в той же среде Cygwin на той же машине, либо в системе Linux, BSD Unix и т. д. через сеть, и только их GUI будет отображаться и использоваться поверх среды Microsoft Windows.

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

ChromeOS

С 2021 года ChromeOS поставляется с собственным оконным менеджером Ash. [17] Chromium и ash имеют общую кодовую базу . [17] Раньше его можно было запустить, используя google-chrome --open-ashна любых совместимых системах.

Типы

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

Компоновка оконных менеджеров

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

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

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

Плиточный оконный менеджер

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

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

Динамические оконные менеджеры могут динамически переключаться между мозаичным или плавающим расположением окон. Доступны различные динамические оконные менеджеры для X.

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

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

Навигация по окнам

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

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

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

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

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

Ссылки

  1. ^ "Window manager". Dictionary.com . Архивировано из оригинала 11 марта 2016 года.
  2. ^ "Определение оконного менеджера из энциклопедии PC Magazine". www.pcmag.com .
  3. ^ Шульц, Грег (24 мая 2006 г.). «Переключение функции группировки панели задач Windows XP». TechRepublic . Получено 7 января 2022 г.
  4. ^ Кауфман, Лори (2012-02-10). «Как свернуть окно в его заголовок в Linux Mint 12». How-To Geek . Получено 7 января 2022 г. .
  5. ^ Кирк, Дэвид (12 октября 2003 г.). «XP и Vista: мозаика, каскад или минимизация окон». Tech-Recipes: кулинарная книга, полная технических руководств . Получено 7 января 2022 г.
  6. ^ Ньюэлл, Гэри (2020-07-24). «Как использовать виртуальные рабочие пространства в стиле Linux в Windows 10». Lifewire . Получено 7 января 2022 г.
  7. ^ Лайнбек, Натан. "Xerox Alto". toastytech.com .
  8. ^ Лайнбек, Натан. «Звезда Xerox». toastytech.com .
  9. Сиракузы, Джон (28 апреля 2005 г.). «Mac OS X 10.4: Кварц». Арс Техника .
  10. ^ Лайнбек, Натан. "GEM 1.1 screens". Toastytech.com . Архивировано из оригинала 2019-12-25 . Получено 2016-08-01 .
  11. ^ Лайнбек, Натан. "GEM 2.0 Screen Shots". Toastytech.com . Архивировано из оригинала 2019-08-22 . Получено 2016-08-01 .
  12. ^ "История OS/2". Архивировано из оригинала 13 февраля 1998 года.
  13. Pleas, Keith (апрель 1996 г.). "Windows NT 4.0". Windows IT Pro . Архивировано из оригинала 10 марта 2007 г. Получено 17 мая 2019 г.
  14. ^ «Диспетчер окон рабочего стола всегда включен — приложения Win32». docs.microsoft.com .
  15. ^ Устранение неполадок с черным или пустым экраном в Windows 10
  16. ^ "Да, есть новый менеджер окон рабочего стола, но нет, я знаю о нем не больше, чем вы". The Old New Thing . 2009-10-26 . Получено 2021-10-06 .
  17. ^ ab "ash - chromium/src - Git в Google". chromium.googlesource.com . Получено 2021-10-06 .