Введение
Управляющий окнами с неперекрывающимися окнами
В вычислительной технике, оконный менеджер с мозаичной компоновкой – это оконный менеджер, организующий экран в неперекрывающиеся окна, в отличие от более распространенного подхода (используемого в стековых оконных менеджерах), основанного на координатном наложении перекрывающихся объектов (окон), который стремится полностью эмулировать метафору рабочего стола.
Xerox PARC
Первая система Xerox Star (выпущенная в 1981 году) размещала окна приложений в виде плитки, но позволяла диалоговым окнам и окнам свойств перекрываться. Позже, в Xerox PARC также была разработана CEDAR (выпущенная в 1982 году) – первая оконная система, использующая оконный менеджер с размещением окон в виде плитки.
Различные поставщики
Затем в 1983 году появился Andrew WM, полноценная оконная система с автоматической компоновкой окон, позже замененная X11. В Windows 1.0 от Microsoft (выпущенной в 1985 году) также использовалась автоматическая компоновка окон (см. разделы ниже). В 1986 году появилась GEM 2.0 от Digital Research, оконная система для CP/M, которая по умолчанию использовала автоматическую компоновку окон. Одним из первых (созданных в 1988 году) менеджеров окон с автоматической компоновкой был RTL от Siemens, который и сегодня является наглядным примером благодаря своим алгоритмам автоматического масштабирования, размещения и упорядочивания окон, а также (де)иконификации. RTL работала на X11R2 и R3, в основном на фирменных системах Siemens, например, SINIX. Его особенности описаны в рекламном ролике. Проект Andrew (AP или tAP) представлял собой клиентскую систему для рабочего стола (подобно раннему GNOME) для X с менеджером окон, поддерживающим как автоматическую компоновку, так и перекрывающиеся окна. MacOS X 10.11 El Capitan, выпущенная в сентябре 2015 года, представила новые функции управления окнами, такие как создание режима разделенного экрана, ограниченного двумя окнами приложений, расположенными рядом на весь экран, путем удержания кнопки развертывания в верхнем левом углу окна.
Microsoft Windows
Встроенный в Microsoft Windows менеджер окон, начиная с Windows 2.0, по умолчанию использовал традиционный подход наложения окон. Он также может функционировать как примитивный менеджер окон с автоматической компоновкой. Для компоновки окон пользователь выбирает их на панели задач и использует опции контекстного меню "Разместить окна вертикально" или "Разместить окна горизонтально". Выбор "Разместить окна вертикально" приводит к горизонтальному размещению окон, но с вертикальным изменением их формы, а выбор "Разместить окна горизонтально" – к вертикальному размещению окон, но с горизонтальным изменением их формы. В Windows Vista эти параметры были изменены на "Отобразить окна рядом" и "Отобразить окна внахлест" соответственно. В Windows 7 появилась функция "Aero Snap", позволяющая перетаскивать окна к любой стороне экрана для создания простой компоновки рядом или в верхнюю часть экрана для разворачивания на весь экран. Windows 8 представила приложения Магазина Windows; в отличие от настольных приложений, они не работали в окнах и могли запускаться только в полноэкранном режиме или быть "прикрепленными" в виде боковой панели рядом с другим приложением или рабочим столом. Наряду с возможностью запуска приложений Магазина Windows в традиционном окне, Windows 10 расширила возможности прикрепления, представленные в Windows 7, позволяя компоновать окна в четверти экрана путем перетаскивания их в угол, а также добавила "Snap Assist" – функцию, предлагающую пользователю выбрать приложение для заполнения второй половины экрана при прикреплении окна к одной половине, и позволяющую автоматически изменять размер обоих окон одновременно, перетаскивая разделитель в центре экрана. Windows 10 также поддерживает FancyZones – более продвинутый инструмент управления окнами для автоматической компоновки, позволяющий настраивать зоны компоновки и обеспечивающий больший контроль пользователя, с настройкой через Microsoft PowerToys.
История
Первая версия (Windows 1.0) использовала оконный менеджер с мозаичным расположением окон, отчасти из-за иска со стороны Apple, утверждавшей права на метафору рабочего стола с перекрывающимися окнами. Однако, из-за поступивших жалоб, следующая версия (Windows 2.0) перешла к метафоре рабочего стола. Все последующие версии операционной системы сохранили этот подход в качестве поведения по умолчанию.
Список менеджеров окон для Windows
AquaSnap, разработанная компанией Nurgo Software. Бесплатная программа с опциональной "Профессиональной" лицензией. Amethyst для Windows – динамический менеджер окон, работающий по принципу плитки, аналогичный Amethyst для MacOS. bug.n – менеджер окон с открытым исходным кодом и настраиваемой компоновкой, реализованный в виде скрипта AutoHotKey и распространяемый под лицензией GNU GPL. MaxTo – настраиваемая сетка, глобальные горячие клавиши. Работает с приложениями, требующими повышенных прав, 32-битными и 64-битными приложениями, а также с несколькими мониторами. WS Grid+ – перемещение и/или изменение размера окон с использованием системы выбора ячеек сетки, сочетающей преимущества плавающих, каскадных и плиточных окон. Предоставляет клавиатурные и мышиные сочетания для мгновенного перемещения и изменения размера окна. Stack – настраиваемая сетка (XAML), глобальные горячие клавиши и/или средняя кнопка мыши. Поддерживает HiDPI и несколько мониторов. Plumb – легковесный менеджер окон, работающий по принципу плитки, с поддержкой нескольких версий Windows. Поддерживает HiDPI-мониторы, клавиатурные горячие клавиши и настройку горячих клавиш (XAML). workspacer – менеджер окон для Windows 10 с лицензией MIT, разработанный для обеспечения высокой скорости и совместимости. Написан и конфигурируется с использованием C#. dwm win32 – порт общей функциональности dwm для win32. Распространяется под лицензией MIT и конфигурируется путем редактирования заголовочного файла конфигурации в стиле dwm. GlazeWM – менеджер окон для Windows, вдохновленный i3 и Polybar. Komorebi – менеджер окон для Microsoft Windows, написанный на Rust. Как и bspwm, он не обрабатывает привязку клавиш самостоятельно, поэтому пользователям необходимо использовать AHK или WHKD для управления сочетаниями клавиш. Komorebi также имеет версию с удобным графическим интерфейсом под названием Komorebi UI. Whim – плиточное окно, созданное с использованием WinUI 3 и .NET framework.
Система X Window
В системе X Window менеджер окон является отдельной программой. Сам X не навязывает какой-либо конкретный подход к управлению окнами и остаётся работоспособным даже без менеджера окон. Текущая версия протокола X11 явно упоминает возможность использования тайловых менеджеров окон. Siemens RTL Tiled Window Manager (выпущенный в 1988 году) стал первым, реализовавшим автоматические стратегии размещения и изменения размеров окон. Другим тайловым менеджером окон того времени был Cambridge Window Manager, разработанный группой академических информационных систем IBM. В 2000 году larswm и Ion выпустили свои первые версии.
Другие
Операционная и программная система Oberon, разработанная в ETH Zurich, включает в себя оконный менеджер с автоматической компоновкой окон. Редактор Acme для программистов / оконная система / оболочка в Plan 9 также является оконным менеджером с автоматической компоновкой окон. Смартфоны Samsung Galaxy S3, S4, Note II и Note 3, работающие на модифицированной версии Android 4, обладают функцией многооконности, позволяющей пользователю размещать два приложения на экране устройства в виде плитки. Эта функция была интегрирована в стандартную версию Android, начиная с версии 7.0 "Nougat". Расширение Pop Shell, разработанное для Pop! OS, может добавить функциональность оконного менеджера с автоматической компоновкой окон в GNOME. Оконный менеджер Amethyst, созданный ianyh, обеспечивает автоматическую компоновку окон для macOS и был вдохновлён xmonad.
Применение плитки
Хотя тайлинг не является режимом по умолчанию для менеджеров окон ни на одной широко используемой платформе, большинство приложений уже отображают несколько функций внутри аналогичным образом. Примеры включают почтовые клиенты, IDE, веб-браузеры и контекстную справку в Microsoft Office. Основные окна этих приложений разделены на "панели" для различных отображений. Панели обычно разделены перетаскиваемым разделителем, позволяющим изменять их размер. Оконные панели – распространенный способ реализации интерфейса "главное-деталь". Текстовый редактор Emacs, разрабатываемый с 1970-х годов, содержит одну из самых ранних реализаций тайлинга. Кроме того, HTML-фреймы можно рассматривать как реализацию тайлинга на основе языка разметки. Менеджер окон тайлинга расширяет эту полезность за пределы множества функций внутри одного приложения, распространяя её на множество приложений на рабочем столе. Интерфейс с вкладками может быть полезным дополнением к тайлингу, поскольку он позволяет избежать одновременного отображения нескольких оконных плиток на экране для выполнения одной и той же задачи.