Windows tiling window managers

Comparison of tiling window managers

This article provides an unbiased comparison of the most popular tiling window managers (as opposed to floating window managers).

Contents

Comparison table

The following table lists the most popular tiling window managers alongside notable features, providing readers with a quick overview.

Window Manager Written in Configured with Management style System tray support On-the-fly reload Information bars Compositing Default layouts Pixel usage External control Library Multiple (n) monitor behavior ICCCM/EWMH compliant Maintenance
alopex C C (recompile) Hybrid None No Built-in; call script/program as first argument External max, h-stack, v-stack, h-tab Variable borders, titles in-statusbar Xlib six tags, two views available by default Abandoned
Awesome C Lua Dynamic Built-in Yes Built-in, images and text External max, nh-stack (and invert), nv-stack (and invert), free Variable borders, optional h-tab titles dbus (if enabled) XCB n-tags (workspaces). Per default 9 are enabled. Example Yes Active
bspwm C Anything Hybrid None Yes Can write internal state to a FIFO External v-split, h-split Variable borders via bspc XCB Monitors hold Desktops Yes Active
dwm C C (recompile) Dynamic Optional Patch Optional Built-in, reads from root window name External v-stack, max via dwmfifo Xlib n regions, 9 workspaces fixed to each region Active
echinus C Text Dynamic None Yes ourico AUR External v-stack, b-stack, max Variable borders, optional titles Xlib Yes Abandoned
euclid-wm C Text Hybrid None Yes External (dzen) rows, columns 1-pix borders Xlib Dormant
FrankenWM C C (recompile) Dynamic None No No, outputs information to stdout, which can easily be parsed and displayed by an external monitor or panel (dzen2, conky, etc) External v-stack (and invert), h-stack (and invert), dual-v/h-stack, grid, fibonacci (vh-stack), rows, columns, max, free Variable borders XCB Active
herbstluftwm C++ Text Manual None Yes rows, columns 1-pix borders commands via herbstclient Xlib n regions, 9 workspaces visible in any region Active
i3 C Text Dynamic i3bar Yes (Layout is preserved) text piped to i3bar ( i3status / conky and others can be used) External tree, v-split, h-split, stacked, tabbed, max, can be nested infinitely None, 1-pix or 2-pix, optional titlebars, can hide edge borders commands via ipc (or i3-msg, which uses ipc) XCB n regions Yes Active
LeftWM Rust toml (user settings) / Anything (themes) Dynamic None Yes Yes, many options through theme system External v-stack, columns, rows Variable based on theme supports _NET_ACTIVE_WINDOW and sending commands to a named pipe Xlib Workspaces and monitors are not tide. Many workspaces for monitor or many monitors for workspace Yes Active
Notion C, Lua Lua, compatible with Ion3 configs Manual trayion, stalonetray Yes configurable ? h-tab, max Configurable borders and titlebars/tabs EWMH, arbitrary Lua scripts which have access to the rich internal API Xlib n workspaces on each monitor. Supports on-the-fly changes in topology Active
qtile Python Python Dynamic Yes Yes Yes External tree, v-split, h-split, stacked, tabbed, max No borders, although customizable Hooks, Server mode XCB Active
Ratpoison C Text Manual None Yes Yes External max No Active
Snapwm C Reloadable Text Dynamic None Yes Built-in, reads from root window name External nVertical, Fullscreen, nHorizontal, Grid, Center Stacking Variable borders, no titles Xlib Number of desktops distributed evenly between monitors Active
Spectrwm C Text Dynamic None Yes Built-in, reads from user script No nv-stack, nh-stack, max 1-pix borders, no titles XCB n regions, 10 workspaces visible in any region Yes Active
Stumpwm Lisp Lisp Manual None Yes Yes No Xlib No Active
subtle C Ruby Manual Built-in Yes Built-in (Ruby), external can be used as well External Variable grid Variable borders, no titles Hooks (Ruby), subtler (CLI), subtlext (Ruby extension) Xlib One workspace (view) per monitor (screen), placement on views via tags and per runtime Yes Active
Wingo Go Text Dynamic None Yes No External floating, nv-stack, nh-stack, max title bars in floating, skinny borders in tiling via wingo-cmd or UNIX sockets in any programming language X Go Binding n regions, workspaces visible in any region Yes Dormant
WMFS C Text Dynamic Built-in Yes Built-in, set with command, color text, images External nh-stack (and invert), nv-stack (and invert), mirror-v, mirror-h, grid, free, max Variable borders, titles or no titles commands Xlib Up to 36 tags(workspaces) per screen Yes Active
xmonad Haskell Haskell Dynamic None Yes No Yes, with xmonad-contrib and an external manager nv-stack, nh-stack, max Variable borders, no titles via XMonad-Hooks-ServerMode Xlib n regions, 9 workspaces visible in any region Yes / ? Active
Window Manager Written in Configured with Management style System tray support On-the-fly reload Information bars Compositing Default layouts Pixel usage External control Library Multiple (n) monitor behavior ICCCM/EWMH compliant Maintenance

Management style

Dynamic management emphasizes automatic management of window layouts for speed and simplicity. Manual management emphasizes manual adjustment of layout and sizing with potentially more precise control, at the cost of more time spent moving and sizing windows.

Читайте также:  Nvme ssd windows 10 не загружается

Layouts

A number of common layout types appear in several tiling WMs, although the terminology varies somewhat.

  • max: one window shown fullscreen (with or without a status bar, title and borders). Aka: monocle (dwm, monsterwm).
  • h-stack: master area in top half, other windows stack up horizontally in the bottom half. The master area may be resizable. May be inverted top-bottom (wmfs). Aka: bottom stack (dwm), bstack(monsterwm).
  • v-stack: master area in left half, other windows stack up vertically in the right half. The master area may be resizable. May be inverted left-right (wmfs). Aka: tile (dwm, monsterwm).
  • nh-stack: h-stack allowing >=1 windows in master area. Aka: nbstack (dwm)
  • nv-stack: v-stack allowing >=1 windows in master area. Aka: ntile (dwm)
  • mirror-h: nh-stack with stacks above and below the master area
  • mirror-v: nv-stack with stacks to the left and right of the master area
  • h-tab: one window shown fullscreen with all window titles shown horizontally (like browser tabs)
  • v-tab: one window shown fullscreen with all window titles shown vertically. Aka: stack (wmii).
  • h-split: a keybinding splits the current window horizontally creating space for another
  • v-split: a keybinding splits the current window vertically creating space for another
  • columns: manual layout style which treats windows as belonging to vertical columns
  • rows: manual layout style which treats windows as belonging to horizontal rows
  • grid: window positions and sizes based on a regular NxM grid. May be automatic (like wmfs, monsterwm) or manual (like Subtle).

Key bindings

Tiling window managers are usually designed to be used entirely with the keyboard or with keyboard & mouse. This is for speed (reaching for and moving a mouse is slow) and ease of use. Sensible key bindings are crucial to making workflow fast and efficient. Some default sets are better than others, but generally the keys can be rebound as desired by the user.

Tiling Window Manager и почему вы должны его использовать

Ваш рабочий стол — беспорядок? Есть ли окна поверх окон поверх тех, кто что знает? Может быть, вы просто всегда ищете больше места на экране. Может показаться, что эти вещи являются симптомами ключевой проблемы с тем, как компьютерные графические интерфейсы обрабатывают окна, и они есть. Большинство оконных менеджеров крайне неэффективны. Tiling Window Manager является возможным решением.

Что такое Tiling Window Manager

  • Что такое Tiling Window Manager
    • Менеджеры с плавающими окнами VS
  • Ломать пространство
  • навигация
  • Менеджеры верхнего окна
    • Linux
      • i3wm
      • BSPWM
      • Xmonad
      • AwesomeWM
    • OSX
      • ChunkWM
      • Аметист
    • Windows
      • bug.n
      • AquaSnap
  • Аксессуары и инструменты
    • Polybar
    • Lemonbar
    • Rofi
    • URxvt
    • напор
    • Данст
  • Заключительные мысли

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

Например, если вы откроете программу на пустом рабочем столе, она автоматически заполнит весь экран. Затем, если вы откроете другой, он откроется рядом с предыдущим, заполнив половину экрана. Отсюда все зависит от того, какой алгоритм использует оконный менеджер. Однако в этом примере можно предположить, что он будет вести себя как оконный менеджер i3. Если это так, следующее окно откроется рядом с остальными, разделив экран на трети. Эта тенденция будет продолжаться.

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

Большинство оконных менеджеров, особенно в системах Linux, также используют рабочие пространства. Рабочие пространства создают виртуальные экраны, обычно до десяти. Вы можете настроить, чтобы окна открывались на определенных рабочих пространствах, а рабочие пространства — на определенных мониторах.

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

Менеджеры с плавающими окнами VS

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

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

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

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

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

Читайте также:  Как убрать пароль при спящем режиме windows

Ломать пространство

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

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

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

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

Конечно, есть и другие алгоритмы, но это самые распространенные, с которыми вы можете столкнуться.

Навигация в оконном менеджере тайлинга зависит от оконного менеджера и от того, как вы его настроили. Однако многое зависит от вашей конфигурации. Одна вещь, которую все конфигурации имеют в общем, это клавиша «Mod». Этот ключ позволяет менеджеру вдовы знать, что вы используете команду вместо простого ключа. Обычно клавиша «Mod» является клавишей Alt или клавишей Windows.

Большинство пользователей оконного менеджера тайлинга предпочитают нам Vim в качестве основы своих конфигураций, используя клавиши h, j, k и l вместе с Mod для перемещения. Для перемещения вверх нажмите k. Для перемещения нажмите j. H слева, а L справа. Затем вы добавляете еще одну клавишу, например Shift, в микс, чтобы изменить положение этих окон.

Мод и число обычно перемещаются между рабочими пространствами. Нажатие клавиши мод и номер 1 приведут вас к рабочему пространству 1. «Мод + 8» будет рабочим пространством 8. Вы поняли идею.

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

Менеджеры верхнего окна

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

Linux

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

Если вы работаете в Linux и никогда раньше не использовали менеджер окон, выберите i3. Он очень популярен, прост в использовании и отличная документация. Вы не будете разочарованы.

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

BSPWM

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

BSPWM также использует конфигурацию сценариев оболочки, которую довольно легко понять пользователям Linux, но она не самая лучшая для новичков.

Также важно отметить, что BSPWM ожидает от вас появления собственных приложений поддержки, таких как строка состояния и панель запуска. Есть много отличных вариантов, но вам нужно найти их самостоятельно.

Xmonad

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

Это не очень хороший вариант для новых пользователей, но если вы программист и ищете вариант, позволяющий настроить ваш рабочий стол с использованием реального кода, Xmonad — хороший выбор.

AwesomeWM

Если вы искали что-то, что поставляется с «батарейками в комплекте», например, i3 и использует программирование для конфигурации, например, Xmonad, AwesomeWM может быть тем, что вы ищете.

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

OSX — это Unix-подобная система, и она любима разработчиками. Не так уж и сложно понять, почему люди захотят размещать там оконные менеджеры. Хотя у него не так много вариантов, как у Linux, есть еще несколько надежных оконных менеджеров для OSX.

ChunkWM

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

Читайте также:  Конфигурация windows терминального сервера windows

Вы можете установить ChunkWM на OSX, используя homebrew, и настроить его оттуда. Сам ChunkWM написан в основном на C ++ и Objective -C ++, так что он работает так же быстро и быстро, как и вы.

Аметист

Аметист — еще один отличный вариант для OSX. Он больше похож на Xmonad, но написан в основном на Swift, поэтому хорошо вписывается в экосистему Apple.

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

Windows

Windows — не лучшее место для таких вещей, как мозаичные оконные менеджеры. Он построен так, чтобы работать так, как он был спроектирован, и не требует особых настроек. Тем не менее, есть несколько хороших опций, которые могут дать вам некоторые преимущества тайлинга WM на Windows.

Bug.n — это оконный менеджер в традиционном стиле для Windows. Это скрипт, который вы можете добавить, чтобы ваш рабочий стол по умолчанию вел себя как оконный менеджер. Этот скрипт добавляет макеты листов, а также горячие клавиши для навигации.

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

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

AquaSnap

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

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

Аксессуары и инструменты

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

Polybar

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

Lemonbar

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

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

Вы также можете настроить внешний вид Rofi, чтобы он соответствовал вашему рабочему столу. Это не так сложно с помощью файла Xresources в Linux.

URxvt

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

В качестве дополнительного бонуса, URxvt является супер конфигурируемым. Вы можете настроить его практически на любой внешний вид. Это включает в себя цвет, текст и фон.

напор

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

Vim — очень мощный текстовый редактор. Это, наверное, лучший текстовый редактор в мире. Он имеет и абсолютно безумное количество доступных плагинов, которые делают его способным к еще большему.

Данст

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

Заключительные мысли

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

Также важно помнить, что оконные менеджеры листов лучше в Linux, чем OSX и Windows, а OSX намного лучше, чем Windows. Это связано с их происхождением Unix. Если вы решите использовать оконный менеджер листов, ожидайте, что большинство поддержки и дополнительных приложений сосредоточатся на Linux.

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

Оцените статью