В вычислительной технике тайлинговый оконный менеджер — это оконный менеджер , в котором организация экрана часто зависит от математических формул для организации окон в неперекрывающуюся рамку. Это противоположно более распространенному подходу, используемому стековыми оконными менеджерами , которые позволяют пользователю перетаскивать окна, вместо того, чтобы окна привязывались к позиции. Это допускает другой стиль организации, хотя и отходит от традиционной метафоры рабочего стола.
История
Xerox ПАРК
Первая система Xerox Star (выпущенная в 1981 году) располагала окна приложений плиткой, но допускала перекрытие диалоговых окон и окон свойств. [1] Позднее Xerox PARC также разработала CEDAR [2] (выпущенную в 1982 году), первую оконную систему, использующую плиточный оконный менеджер.
Различные поставщики
Затем в 1983 году появился Andrew WM, полная система мозаичного оконного оформления, позже замененная X11 . Windows 1.0 от Microsoft (выпущенная в 1985 году) также использовала мозаичное оформление (см. разделы ниже). В 1986 году появился GEM 2.0 от Digital Research , система оконного оформления для CP/M , которая использовала мозаичное оформление по умолчанию. [3] Одной из ранних (созданных в 1988 году) мозаичных WM была RTL от Siemens , до сегодняшнего дня являющаяся хрестоматийным примером из-за ее алгоритмов автоматического масштабирования, размещения и компоновки окон, а также (де)иконификации. RTL работала на X11R2 и R3, в основном на «родных» системах Siemens, например, SINIX . Ее возможности описаны в ее рекламном видеоролике. [4] [5] Проект Andrew (AP или tAP) был настольной клиентской системой (похожей на ранний GNOME) для X с мозаичным и перекрывающимся оконным менеджером.
В MacOS X 10.11 El Capitan, выпущенной в сентябре 2015 года, представлены новые функции управления окнами, такие как создание полноэкранного разделенного представления, ограниченного двумя окнами приложений, расположенными рядом на весь экран, путем удержания кнопки полноэкранного режима в верхнем левом углу окна. [6]
Плиточные оконные менеджеры
Майкрософт Виндоус
Первая версия ( Windows 1.0 ) включала в себя тайловый оконный менеджер, отчасти из-за судебного разбирательства Apple, заявляющей о праве собственности на метафору перекрывающегося окна рабочего стола . Но из-за жалоб следующая версия ( Windows 2.0 ) последовала метафоре рабочего стола. Все последующие версии операционной системы придерживались этого подхода как поведения по умолчанию.
Встроенный оконный менеджер Microsoft Windows , начиная с Windows 2.0 , по умолчанию следует традиционному подходу стекирования . Он также может выступать в качестве элементарного тайлового оконного менеджера.
Чтобы расположить окна плиткой, пользователь выбирает их на панели задач и использует пункт контекстного меню Tile Vertically или Tile Horizontally . Выбор Tile Vertically приведет к тому, что окна будут располагаться плиткой горизонтально, но приобретут вертикальную форму, а выбор Tile Horizontally приведет к тому, что окна будут располагаться плиткой вертикально, но приобретут горизонтальную форму. Позднее в Windows Vista эти параметры были изменены на Show Windows Side by Side и Show Windows Stacked соответственно.
В Windows 7 добавлена функция «Aero Snap», которая позволяет перетаскивать окна на любую сторону экрана для создания простой параллельной плиточной компоновки или на верхнюю часть экрана для максимизации . В Windows 8 появились приложения Магазина Windows ; в отличие от настольных приложений, они не работали в окне и могли работать только на весь экран или «прикрепляться» в качестве боковой панели рядом с другим приложением или средой рабочего стола. [7]
Наряду с возможностью запуска приложений Магазина Windows в традиционном окне, Windows 10 улучшила функции привязки, представленные в Windows 7, позволив размещать окна в квадрантах экрана путем перетаскивания их в угол, а также добавила функцию «Snap Assist», которая предлагает пользователю выбрать приложение, которое он хочет разместить на другой половине экрана, когда он привязывает окно к одной половине экрана, и позволяет пользователю автоматически изменять размер обоих окон одновременно, перетаскивая маркер в центре экрана. [8]
Windows 10 также поддерживает FancyZones — более полный диспетчер окон с возможностью настраивать зоны мозаики и обеспечивать больший контроль со стороны пользователя, настраиваемый с помощью Microsoft PowerToys .
В Windows 11 добавлено больше встроенных опций мозаики, активируемых наведением указателя мыши на кнопку «Развернуть».
Замены сторонних производителей
AquaSnap — разработано Nurgo Software. Бесплатное ПО с дополнительной лицензией «Professional».
bug.n – настраиваемый оконный менеджер с открытым исходным кодом, созданный как скрипт AutoHotKey и лицензированный по лицензии GNU GPL . [9]
MaxTo — настраиваемая сетка, глобальные горячие клавиши. Работает с повышенными приложениями, 32- и 64-битными приложениями и несколькими мониторами. [10]
WS Grid+ – перемещайте и/или изменяйте размер окон с помощью системы выбора сетки, сочетающей преимущества плавающего, стекового и мозаичного размещения. Он предоставляет сочетания клавиш/мыши для мгновенного перемещения и изменения размера окна.
Стек – настраиваемая сетка (XAML), глобальные горячие клавиши и/или средняя кнопка мыши. Поддерживает HiDPI и несколько мониторов. [11] [12]
Plumb — легкий менеджер тайлов с поддержкой нескольких версий Windows. Поддерживает мониторы HiDPI, горячие клавиши клавиатуры и настройку горячих клавиш (XAML). [13]
workspacer — лицензированный MIT менеджер оконных панелей для Windows 10, стремящийся быть быстрым и совместимым. Написан и настраивается с использованием C# . [14]
dwm-win32 — порт общей функциональности dwm на win32. Имеет лицензию MIT и настраивается путем редактирования заголовка конфигурации в том же стиле, что и dwm. [15]
GlazeWM — тайловый оконный менеджер для Windows, вдохновленный i3 и Polybar.
Komorebi — оконный менеджер для Microsoft Windows SO, написанный на Rust . Как и bspwm, он не обрабатывает привязку клавиш самостоятельно, поэтому пользователям приходится использовать AHK или WHKD для управления сочетаниями клавиш. Komorebi также имеет версию с графическим интерфейсом пользователя под названием Komorebi UI.
В X Window System оконный менеджер является отдельной программой. Сама X не навязывает никакого определенного подхода к управлению окнами и остается пригодной для использования даже без какого-либо оконного менеджера. Текущая версия протокола X X11 явно упоминает возможность мозаичного размещения оконных менеджеров. Siemens RTL Tiled Window Manager (выпущенный в 1988 году) был первым, кто реализовал стратегии автоматического размещения/изменения размера. Другим мозаичным оконным менеджером того периода был Cambridge Window Manager, разработанный группой IBM Academic Information System.
awesome – производная dwm с разбиением окон на плитки, плаванием и тегированием, написанная на C и настраиваемая и расширяемая в Lua . Это была первая WM, перенесенная из Xlib в XCB , и поддерживающая D-Bus , pango , XRandR и Xinerama .
bspwm – небольшой тайловый оконный менеджер, который, подобно yabai, представляет окна как листья полного двоичного дерева. Он не обрабатывает привязки клавиш самостоятельно, требуя другой программы (например, sxhkd) для преобразования ввода в события X.
Compiz – композитный оконный менеджер, доступный для использования без выхода из привычных интерфейсов, таких как интерфейсы GNOME , KDE Plasma или Mate . Один из его плагинов (называемый Grid) позволяет пользователю настраивать несколько сочетаний клавиш для перемещения окон в любой угол с пятью различными длинами. Также есть опции для настройки размещения по умолчанию для определенных окон. Плагины можно настроить через Compiz Config Settings Manager / CCSM.
dwm – позволяет переключать макеты тайлинга, нажимая на текстовый значок ascii art в строке состояния. По умолчанию используется расположение основной области + области стекирования, представленное символом []= . Другие стандартные макеты – это режим «монокля» с одним окном, представленный буквой M , и нетайлинговый плавающий макет, который позволяет перемещать окна и изменять их размер, представленный рыбоподобным > < > . Существуют сторонние патчи для добавления макета Фибоначчи на основе золотого сечения , горизонтального и вертикального тайлинга на основе строк или макета сетки. Утилита меню с клавиатурным управлением « dmenu », разработанная для использования с dwm, [16] используется с другими тайлинговыми WM, такими как xmonad , [17] а иногда и с другим «легким» программным обеспечением, таким как Openbox [16] и uzbl . [18]
EXWM — EXWM (Emacs X Window Manager) — полнофункциональный тайловый менеджер окон X для Emacs, созданный на основе XELB. Он поддерживает полностью клавиатурное управление, гибридные режимы макета (тайловый и стековый), поддержку динамического рабочего пространства, совместимость с ICCCM/EWMH, поддержку RandR (несколько мониторов) и встроенный системный лоток.
herbstluftwm – ручной тайловый оконный менеджер (похожий на i3 или Sway ), который использует концепцию независимых от монитора тегов в качестве рабочих пространств. На мониторе можно просматривать только один тег, причем каждый тег содержит свой собственный макет. Как и i3 и Sway, herbstluftwm настраивается во время выполнения с помощью вызовов IPC из herbstclient. [19]
i3 — созданный с нуля оконный менеджер на основе wmii. Он имеет сочетания клавиш в стиле vi и рассматривает дополнительные мониторы как дополнительные рабочие пространства, что означает, что окна можно легко перемещать между мониторами. Позволяет вертикальное и горизонтальное разделение, вкладки и стековые макеты, а также родительские контейнеры. Им можно управлять полностью с клавиатуры, но можно также использовать мышь.
Ion – сочетает в себе тайлинг с интерфейсом вкладок: дисплей вручную разделяется на неперекрывающиеся области (фреймы). Каждый фрейм может содержать одно или несколько окон. Видно только одно из этих окон, которое заполняет весь фрейм.
Larswm – реализует форму динамической мозаики: дисплей вертикально разделен на две области (дорожки). Левая дорожка заполнена одним окном. Правая дорожка содержит все остальные окна, расположенные друг над другом.
LeftWM – тайловый оконный менеджер, основанный на темах и поддерживающий большие мониторы, такие как ультраширокие. [20]
Notion — тайловый оконный менеджер
Qtile – тайловый оконный менеджер, написанный, настраиваемый и расширяемый на Python . [21]
spectrwm — динамический тайловый и переподчиненный оконный менеджер для X11. Он старается не мешать, чтобы ценное экранное пространство можно было использовать для более важного контента. Он стремится быть маленьким, компактным и быстрым. Ранее назывался «scrotwm» (каламбур, основанный на слове «scrotum»). [22] [ необходим неосновной источник ]
StumpWM – ответвление ratpoison, управляемое с помощью клавиатуры, поддерживающее несколько дисплеев (например, xrandr), которые можно настраивать на лету в Common Lisp. По умолчанию он использует сочетания клавиш, совместимые с Emacs.
wmii (window manager improved 2) поддерживает управление окнами с помощью расширенной клавиатуры , мыши и удаленного управления на основе файловой системы, [23] заменяя парадигму рабочего пространства новым подходом к тегированию. [24] Конфигурация по умолчанию использует нажатия клавиш, полученные из текстового редактора vi . Менеджер окон предлагает расширенную настройку через виртуальную файловую систему с использованием протокола файловой системы 9P , аналогичного предлагаемому Plan 9 от Bell Labs . [23] Каждое окно, тег и столбец представлены в виртуальной файловой системе, а окна управляются путем манипулирования их файловыми объектами (фактически, файл конфигурации — это просто скрипт, взаимодействующий с виртуальными файлами). Эта система RPC допускает множество различных стилей конфигурации, включая те, которые предусмотрены в базовом дистрибутиве в plan9port и оболочке Bourne . Последняя версия 3.9 также включает конфигурации на Python и Ruby . [25] Последняя версия поддерживает Xinerama , поставляемую с собственной программой меню на основе клавиатуры, называемой wimenu, с историей и программируемым завершением. [25] [26] [27] [28]
xmonad — расширяемая WM, написанная на Haskell , которая находилась под влиянием dwm и продолжает оказывать на него влияние.
Wayland — это новая оконная система, которая призвана заменить X Window System . Только несколько менеджеров тайлов поддерживают Wayland изначально.
Список тайловых оконных менеджеров для Wayland
Hyprland — Hyprland — это динамический тайловый компоновщик Wayland, который предлагает уникальные функции, такие как плавная анимация, динамическая тайловая заливка и скругленные углы.
japokwm — Динамический компоновщик плиток Wayland, основанный на создании макетов на основе wlroots.
newm — Компоновщик Wayland, написанный специально для ноутбуков и тачпадов (в настоящее время не поддерживается) .
niri — Компоновщик Wayland с возможностью прокрутки.
Velox — Простой оконный менеджер на основе swc, вдохновленный dwm и xmonad .
Vivarium — Динамический тайловый компоновщик Wayland, использующий wlroots, с семантикой рабочего стола, вдохновленной xmonad .
Sway — Sway — это «замена оконного менеджера i3 , но для Wayland вместо X11 . Он работает с вашей существующей конфигурацией i3 и поддерживает большинство функций i3, а также несколько дополнительных функций». [29]
River - River - это динамический тайловый компоновщик Wayland с гибкой настройкой времени выполнения, он поддерживается и регулярно обновляется.
CageBreak — это тайловый компоновщик для Wayland, основанный на Cage и вдохновленный Ratpoison , которым легко управлять с помощью клавиатуры и сокета домена Unix.
dwl - dwl - это компоновщик wayland, который был призван заполнить то же пространство в мире Wayland, что и dwm в X11 . Как и dwm, он написан на C , имеет небольшую кодовую базу и не имеет какого-либо интерфейса конфигурации, кроме редактирования исходного кода.
Другие
Операционная система и система программирования 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. [30]
На macOS Moom от давних разработчиков Mac Many Tricks — это активно обновляемый менеджер мозаики окон.
Применение плитки
Хотя мозаичное размещение не является режимом по умолчанию для оконных менеджеров на любой широко используемой платформе, большинство приложений уже отображают несколько функций внутри аналогичным образом. Примерами служат клиенты электронной почты, IDE , веб-браузеры и контекстная справка в Microsoft Office. Главные окна этих приложений разделены на « панели » для различных дисплеев. Панели обычно разделены перетаскиваемым разделителем, что позволяет изменять размер. Панели с панорамированием являются распространенным способом реализации интерфейса «главный-подробный» .
Разработанный с 1970-х годов, текстовый редактор Emacs содержит одну из самых ранних реализаций тайлинга. Кроме того, фреймы HTML можно рассматривать как реализацию тайлинга на основе языка разметки . Тайловый оконный менеджер расширяет эту полезность за пределы нескольких функций в приложении, на несколько приложений на рабочем столе. Интерфейс документов с вкладками может быть полезным дополнением к тайлингу, поскольку он позволяет избежать наличия нескольких оконных плиток на экране для одной и той же функции.
^ Таннер, Марк Андре. "dwm-win32 - X11 dwm(1) для Windows". brain-dump.org . Получено 2020-07-02 .
^ ab Arch Linux Magazine Team (январь 2010 г.). "Обзор программного обеспечения: награды LnF 2009". Arch Linux Magazine . Архивировано из оригинала 2010-02-16 . Получено 8 марта 2010 г.
^ "100 open source gems - part 2". TuxRadar . Future Publishing . 21 мая 2009 г. Архивировано из оригинала 2010-01-06 . Получено 3 марта 2010 г.
^ Vervloesem, Koen (15 июля 2009 г.). "Uzbl: браузер, следующий философии UNIX". LWN.net . Eklektix, Inc. Архивировано из оригинала 2009-11-30 . Получено 3 марта 2010 г.
^ ab "wmii - Window Manager Improved 2". Wmii.suckless.org . Архивировано из оригинала 2011-12-31 . Получено 2013-07-13 .
^ Комис, Антонис (апрель 2013 г.). «Миграция Windows: среды рабочего стола и оконные менеджеры». PCLinuxOS . Тайловые и динамические тайловые оконные менеджеры — wmii. Архивировано из оригинала 24 октября 2016 г.
^ ab "suckless.org git repositories". Hg.suckless.org . Архивировано из оригинала 2011-07-28 . Получено 2013-07-13 .
^ "Легкий и быстрый. WMI и реинкарнация клавиатуры" (PDF) . Linux Magazine . № 54. Архивировано из оригинала (PDF) 24 февраля 2012 г.
^ Голд, Нико (март 2006 г.). «Никаких слабаков. Взгляд на оконный менеджер Wmii» (PDF) . Linux Magazine . № 64. Архивировано (PDF) из оригинала 28.10.2015 . Получено 01.10.2018 .
^ Сондерс, Майк (март 2008). "Легкие оконные менеджеры". Linux Format . № 103. wmii.
^ "SwayWM". Архивировано из оригинала 2017-10-10 . Получено 2017-10-13 .