Dynamic window manager windows

Привет! Вы наверно меня уже знаете, ведь моя первая статья набрала 6к просмотров. Поэтому перейду сразу к сути статьи.

План

  1. Почему именно DWM?

  2. Как мы будем настраивать?

  3. Какие еще утилиты мы будем использовать?

  4. Настройка системы для DWM

  5. Написание конфига

Почему именно DWM?

DWM — dynamic window manager. Это означает, что он может работать с floating и tiling окнами. Он разработан на языке C под Xserver. В его коде содержится ~2300 строк кода + дополнительные утилиты 500 строк.

Его расширение осуществляется патчами (которые мы тоже будем использовать). DWM надо собирать самому, что для многих является скорее плюсом, чем минусом. В нем можно работать «из коробки», все самое важное работает сразу после установки (открытие терминала, dmenu и т.д). В нем работает стандартное меню (в большинстве wm надо загружать доп. пакеты). Ну и самый главный плюс — настройка конфига происходит на языке C, а это означает, что каждый может написать свой элемент.

Как мы будем настраивать?

Настройка DWM, как я говорил, происходит на языке C, но если вы его не знаете, все равно не будет трудностей с настройкой. Есть 2 типа конфигов:

  • config.def.h — это конфиг, который потом превращается в config.h (если config.h нет)

  • config.h — главный конфиг, стоит выше, чем config.def.h

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

Какие еще утилиты мы будем использовать?

Первое, нам нужен dmenu (меню поиска и запуска файлов из папки /usr/bin).

Второе, нам нужен терминал (sakura, kitty, alacritty или st), в нашем примере я буду использовать kitty (я им пользуюсь на основной машине)

В третьих, нам нужен редактор кода в терминале, я использую vim.

В четвертых, браузер (xD, он правда очень нужен).

Ну и в пятых, slstatus (или какое нибудь другое меню) (я покажу как можно его самому написать)

Настройка системы для DWM

DWM работает на X сервере, следовательно, нам нужен X сервер.

P.S. я буду использовать Ubuntu Server на виртуальной машине, но все действия (кроме пакетного менеджера) можно будет провернуть на других дистрибутивах.

Для установки X сервера вам надо прописать комманду

# Для Ubuntu
sudo apt install xorg

# Для Arch
sudo pacman -S xorg

Далее, вам нужен Git (для установки dwm, slstatus и тд)

Его также можно установить коммандой

# Для Ubuntu
sudo apt install git

# Для Arch
sudo pacman -S git

После этого, вам следует создать папку для wm, я так и назову wm

mkdir wm
cd wm

И начну делать git clone всех нужных мне пакетов

git clone https://git.suckless.org/dwm
git clone https://git.suckless.org/dmenu
git clone https://git.suckless.org/slstatus

После выполнения всех процедур, я перейду в папку dwm

cd dwm

Ну и для просто стандартного запуска введу

sudo make clean install

P.S. если пишет что команда не найдена, установите пакет make в вашу систему.

После билда, перейдите в корень и откройте файл .xinitrc и введите в нем exec dwm

Введите в терминале startx и Вуа-ля!

Вот мы и запустили DWM на нашей машине, дальше надо его настроить

Настройка конфига

Нажимаешь Alt+Shift+Q и выходим из DWM (сейчас ничего работать не будет). Перейдем в папку ~/wm/dmenu и тоже соберем его.

Теперь мы можем снова прописать startx и запустить dwm

После можно нажать Alt+p и ву-а-ля! Запустился dmenu!

Он позволяет запускать любые процессы. Теперь снова выйдем из него, нажав Alt+Shift+Q

Далее, нам нужен терминал. Я говорил, что буду использовать Kitty, поэтому его поставлю.

Теперь, самое интересное, настройка самого конфига. Переходим в ~/wm/dwm и открываем config.def.h (надо удалить config.h командой rm -rf)

Чтобы поменять терминал на свой (терминал в dwm открывается клавишами MOD+Shift+Enter) (Mod = Alt), надо найти строчку

static const char *termcmd[] = {"st", NULL}

И там где «st» надо прописать имя своего терминала

static const char *termcmd[] = {"kitty", NULL}

Теперь сохраняем и выходим из редактора, и собираем DWM.

После сборки прописываем startx и ву-а-ля! При нажатии Mod+Shift+Enter открывается терминал

Neofetch для красоты)

Neofetch для красоты)

Как я считаю, надо поменять клавишу Mod с Alt на Win.

Теперь, можем конфигурировать DWM внутри DWM)

Также открываем config.def.h и находим строку

#define MODKEY Mod1Mask 

Тут настройка для клавиши Alt, для то чтобы сменить клавишу, вместо Mod1Mack надо вставить Mod4Mack

#define MODKEY Mod4Mask 

Теперь удаляем config.h и собираем наш DWM.

Для перезапуску выходим Alt+Shift+Q и прописываем startx

Теперь, главная клавиша DWM — Win! Чтобы открыть терминал, вместо Alt, надо нажать Win.

Теперь, настройка slstatus.

SlStatus утилита которая меняет вот это

Например, на вот это

И обновляет каждую секунду

Переходим в ~/wm/slstatus и входим в config.def.h

Появляется много настроек, но по дефолту стоит только время. Я бы поставил время, hostname и CPU в процентах

В массив arg надо ввести следующее

static const struct arg args[] {
  {datetime, "%s | ", "%F %T"},
  {hostname, "%s | ", NULL},
  {cpu_perc, "%s", NULL}
}

Сохраняем и выходим. Дальше собираем как и все утилиты.

И для теста, можем запустить его командой slstatus

Вот такая сборка! Расскажу вым про патчи.

  • Самый хороший патч для красивой системы — fullgaps

  • Патч для красивого меню — status2d (задавать цвета)

  • Ну и патч — noborder (убирает подсветку границ окна если оно в фулл режиме)

Конец

Спасибо за прочтение статьи! Если вам зайдет, выпущу 2 часть

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

Делать 2 часть?

Проголосовали 26 пользователей. Воздержались 2 пользователя.

Simple Dynamic Window Manager for Windows

demo.mp4

When I am working on a computer 99% of my interaction is using one of the following window configurations:

  • A single fullscreen window (e.g. when I am coding, browsing the web, etc.)
  • Two equal windows side-by-side (e.g. when debugging or when coding while reading documentation)

So the normal window managers waste a lot of bandwidth making all sorts of (to me) useless window configurations possible, this is an issue which tiling window managers tend to fix. On linux I normally use i3 which is a decent (though not perfect) tiling window manager. The main feature that I miss in i3 is the ability to have the same program on multiple workspaces, which is pretty useful for my use cases. For example sometimes I want to have a code editor and a browser side-by-side when reading documentation in a documentation workspace and once I am done with the documentation I want to move to a workspace with fullscreen code editor. (I am sure there is an extension or script that makes that possible, but at least it is not a first-class feature of i3). dwm is another window manager that does have a feature similar to this, however, as much as I enjoy being stuck in a boot-loop because I made a mistake in a «config» file, sometimes I need to actually get work done on my computer which seems to be the antithesis to dwm‘s philosophy.

I have tried many tiling window managers on windows over the years, however, because windows’s window manager is not really designed to be customized they all eventually led to frustrations that made me give up on them.

In this repository I try to create an extremely simple window manager for windows that tries to optimize my own use cases. The main idea is not to mess with window’s window management as much as possible. Here is how it works: Whenever you run window-manager.py, it takes a snapshot of all open windows at the instance that you ran it and creates a dummy window. Whenever you focus on this window, instead of focusing the window, it restores all windows to the position and size that they were when the snapshot were taken. So for example for my use-case of having two configurations, one for reading documentation while coding and the other exclusively for coding, I can first create a snapshot when my code editor is full screen and then create another snapshot when editor and browser are snapped to different sides of the screen and toggle between these two configurations by focusing on these «dummy» windows. This method does not mess with windows’ window management system at all and the system’s behavior is completely indistinguishable from normal behavior except for when you focus on one of these dummy windows. Another advantage is that these windows can be controlled naturally using windows’s normal window management shortcuts (e.g. control+tab) so your muscle memory is applicable.

Here is my setup:

  • I use autohotkey to lauch window-manager.py (I use Win+Space as the shortcut). Here is the script that I use:
#Space::
run pythonw C:\path\to\window-manager.py
return
  • There is a textbox when you run window-manager.py where you can optionally enter a name for the dummy window. I use this name along with switcheroo to quickly switch to a workspace by typing its name.

Advanced Usage

  • If the name of the window configurations starts with ++, we save the window configuration in a file so that it can be restored later. Since in this case, we need to launch the programs if they are not present, you need to specify which of the windows are included in this configuration (you select the checkbox next to desired windows). You can also optionally specify a command which is used to open a program. For example, if you want to open a file explorer in a specific directory, you can add something like this in the textbox next to the explorer window: explorer \path\to\directory.
  • If the name of the window starts with +, we search the previous window configurations and if a configuration with the same name (minus the plus of course) exists, we try to recreate this configuration, but we don’t launch any new windows.
  • If the name of the window starts with * we behave similar to when it starts with +, but now we do launch new windows if they are not present.
  • So overall the workflow is something like this: you first create a new configuration with a name like this ++my-awesome-config and select the windows that are present in this configuration (also optionally specify the commands which are used to launch these windows) and then later (event after a computer restart) invoke these configurations by entering *my-awesome-config as the name of configuration.

From Wikipedia, the free encyclopedia

In computing, a dynamic window manager is a tiling window manager where windows are tiled based on preset layouts between which the user can switch. Layouts typically have a main area and a secondary area. The main area usually shows one window, but one can also change the number of windows in this area. Its purpose is to reserve more space for the more important window(s). The secondary area shows the other windows.

Tiling window managers that don’t use layouts are called manual tiling window managers. They let the user decide where windows should be placed.

The following dynamic window managers are available for the X Window System:

  • awesome[1][2]
  • bluetile — A full featured window manager for the GNOME environment
  • dwm[1]
  • echinus
  • evilwm
  • fvwm
  • larswm
  • spectrwm
  • xmonad
  • Qtile

Wayland Display Server

[edit]

The following dynamic window managers are available for the Wayland Display Server:

  • dwl
  • Hyprland
  • Qtile
  • river
  • Vivarium
  1. ^ a b (in German) Falko Benthin (Dec 2008) Herr der Fenster. Schlanker Windowmanager Awesome, alt. link, LinuxUser
  2. ^ Awesome window manager homepage

В этой статье речь пойдет о настройке DWM (Dynamic Window Manager). Это простой тайловый оконный менеджер от сообщества suckless.org, который отличается от своих аналогов простотой и легковесностью. И пусть вас не пугает факт того, что настройка DWM происходит путем редактирования исходного кода — для этого не требуется никаких навыков программирования (но потребуется немножко усидчивости и желание вникнуть).

Статья будет разбита на две части. В первой (этой) речь пойдет о базовой установке и настройке DWM и Xorg до состояния «юзабельно», во второй пойдет речь о цветной строке статуса, хоткеях, скриптах, а так же решении частых проблем. В процессе чтения статьи вы углубите свои знания про Xorg и про внутренности Linux. Однако, эта статья может не подойти пользователям, «которые только что поставили Ubuntu».

Because dwm is customized through editing its source code, it’s pointless to make binary packages of it. This keeps its userbase small and elitist. No novices asking stupid questions. Кстати, в данной статье настройка будет происходить на дистрибутиве Archlinux, поэтому пользователям apt/rpm-based дистров нужно будет поискать упомянутные в статье пакеты под свои дистры.

Установка
DWM распространяется в виде исходников, поэтому просто клонируем репозиторий https://git.suckless.org/dwm. Убедитесь, что у вас установлена группа пакетов base-devel.
Собираем пакет

  1. make

и устанавливаем с помощью

  1. sudo make install

Запуск
Есть два способа запуска DWM: с помощью startx и с помощью Display Manager. Мы будем использовать первый способ, т.к. это позволит нам запустить дополнительные скрипты и определить переменные окружения
Создадим файл ~/.xinitrc

  1. #!/usr/bin/bash

  2. exec dwm

теперь запустим startx из tty. По умолчанию, DWM имеет только статусбар вверху, с 9 рабочими столами (они называются «теги», и их отличие от рабочих столов в том, что одно окно может быть помечено сразу несколькими тегами), а так же надписью dwm-%версия% справа. Позднее, мы заменим эту надпись на красивый статусбар с цветными иконками-эмодзи.
Основная идея тайлового оконного менеджера в том, что в нем окна расположены в стеке, и окно на вершине стека является основным, master окном, и оно занимает наибольшее пространство. На самом деле, это зависит от раскладки (оконного менеджера, не клавиатуры ), но в дефолтной раскладке DWM все именно так. И полезное сочетание клавиш, которое вам сейчас понадобится — alt+Shift+q, чтобы выйти из dwm и открыть терминал в tty (по дефолту, DWM использует st в качестве терминала, и если у вас его нет, то вы не сможете перейти к настройке)

Настройка
Настрока производится путем редактирования файла config.h. Откройте его в вашем любимом редакторе vim.

Первое что мы сделаем — увеличим размер рамки окна, чтобы было видно какое окно сейчас активно. за это отвечает переменная borderpx, по умолчанию равна 1. Я использую 4 (здесь и далее я буду приводить значения, которые использую сам, вы можете использовать подходящие вам).

Массив colors[] отвечает за цвета рамок окон. Сейчас нам это не так важно, разбор пойдет во второй части

Массив tags[] отвечает за названия тегов. По-умолчанию, теги называются цифрами от 1 до 9, и их можно тут переименовать. Например, { «web», «media», «dev», «term», … };

Массив rules[] отвечает за правила, на каком теге какое окно должно появляться. Примеры для Gimp и Firefox уже есть в коде. Обратите внимание на столбец tags mask. Чтобы окно запускалось на i-ом теге, туда нужно вписать 1 << i-1, то есть для того чтобы Telegram запускался на 2 теге, нужно вписать

  1. { «Telegram», NULL, NULL, 1 << 1, 0 },

Чтобы получить значение столбца class, запустите команду

  1. xprop | grep WM_CLASS

и нажмите мышкой на нужное окно. У меня, например, Firefox называется firefox, поэтому пример в исходном коде не работает, нужно переименовать

Прокрутите до строчки /* key definitions */. Замените в строчке

  1. #define MODKEY Mod1Mask

1 на 4, чтобы в качестве клавиши-модификатора для комбинаций использовать super (win) вместо alt.

Далее, под комментарием /* commands */ указаны команды, на которые позже мы повесим хоткеи. Команды — это массив char (массив строк), в которой последний аргумент должен быть всегда NULL. Массив представляет собой саму программу (первым элементом), и аргументы, передаваемые программе. Обратите внимание: аргументы передаются не в bash, поэтому вот такая конструкция

  1. static const char *show_waifu[] = { «eog», «~/Pics/megumin.png», NULL };

работать не будет, т.к. в bash это будет эквивалентно вводу в терминале

  1. eog «~/Pics/megumin.png»

то есть, ~ на $HOME не будет заменено. Если вам нужна эта фича — вы можете закинуть в $PATH скрипты и указать их уже в config.h.
Замените в переменной termcmd st на ваш терминал (кстати, во второй части я буду использовать xterm).
Кроме того, вы можете объявить тут свои команды, просто добавив свои переменные. Например:

  1. static const char *connect_wifi[] = { «nmcli», «con», «up», «wifi-home», NULL };

Далее идет самое интересное — массив keys[], в котором можно назначить хоткеи на указанные выше команды.
Первым аргументом идет модификатор. Например, MODKEY (super), 0 (без модификатора), MODKEY|ShiftMask (super+shift)
вторым аргументом идет кнопка. С буквами понятно — XK_b, XK_j, XK_e. Для более сложных кнопок (регулировка громкости, яркости и т.д) вам перед массивом keys нужно подключить библиотеку из пакета xorgproto:

  1. #include <X11/XF86keysym.h>

Чтобы узнать названия кнопок, посмотрите содержимое /usr/include/X11/XF86keysym.h. Либо запустите xev (пакет xorg-xev) и нажмите нужную вам кнопку, и посмотрите вывод.
кроме функции spawn, которая запускает команду, есть и другие (как они работают, можно узнать, понажимав соответствующие хоткеи).
togglebar — скрывает/показывает верхнюю панель
focusstack — i=+1 делает активным следующее окно, i=-1 — предыдущее
setmfact — увеличивает/уменьшает размер активного окна
zoom — ставит текущее окно на вершину стека
view — переключает между 2 последними тегами
killclient — отправляет текущему окну SIGTERM
quit — закрывает DWM и все окошки без предупреждения
еще тут же описаны хоткеи для переключения между тегами. Опишу их тут понятным языком
mod+[1-9] — переключение на соответствующий тег
mod+0 — просмотр всех тегов (показать все окна)
mod+shift+[1-9] — отправить текущее окно на тег
mod+ctrl+[1-9] — просмотр текущего тега и еще нескольких. Например, mod+ctrl+2, mod+ctrl+3 покажет текущий тег, а еще второй и третий.
mod+shift+0 — поставить все теги на текущее окно. То есть, это окно будет отображаться на всех тегах!
mod+shift+ctrl+[1-9] — пометить окно несколькими тегами (частный случай предыдущего пункта
Таким образом, в отличие от рабочих столов, вы можете как отображать окна на нескольких тегах, так и просматривать все окна, принадлежащие отмеченным тегам!.
mod+, и mod+. — переключение между мониторами
mod+shift+, и mod+shift+. — перекинуть текущее окно на следующий/предыдущий монитор
Кстати, каждый монитор имеет свое пространство тегов, и переключение тегов происходит только на активном мониторе!
Не спешите захламлять config.h хоткеями на все подряд!. Во второй части статьи мы настроим sxhkd для этой цели. Однако, пару вещей мы все же поменяем.

Rofi (рофи, а не рофл, если у кого-то шрифт кривой )
rofi — хороший аналог dmenu (панельки для запуска команд). В отличие от dmenu, rofi имеет больше возможностей для кастомизации, имеет темы, и умеет сканнировать .dekstop файлы из /usr/share/applications и .local/share/applications. dmenu же умеет исполнять файлы только из $PATH. А еще оно умеет переключать окна. Не очень полезная фича, но вдруг нужно.
Установим пакет rofi, создадим конфиг

  1. rofi -dump-config > .config/rofi/config.rasi

Отредактируйте этот файлик на свое усмотрение. Я изменил только строчки modi (список режимов и их порядок), и width (25 хватит всем), а еще включил иконки приложений. Не забудьте раскомментировать.

  1. modi: «drun,run,window»;

  2. width: 25;

  3. showicons: true;

drun — режим выбора .desktop приложений. run — аналог dmenu, запуск приложений из $PATH. window — переключение между окнами. Запустите rofi-theme-selector и выберите тему, которая вам нравится. Я использую тему dmenu, в этом случае rofi отображается поверх статусбара DWM

Xterm
Это стандартный терминал для Xorg. Однако, по-умолчанию у него белый фон и черный шрифт, все очень мелкое, и не работает копирование через ctrl+insert. Исправим:
Открываем/создаем файл ~/.Xresources. Мой конфиг выглядит так:

  1. XTerm.vt100.foreground: white

  2. XTerm.vt100.background: black

  3. XTerm.vt100.faceName: Droid Sans Mono:size=12:antialias=true

  4. XTerm.vt100.font: 7×13

  5. xterm*selectToClipboard: true

  6. xterm*VT100.Translations: #override \

  7.                 Shift <Key>Insert:    insertselection(SELECT) \n\

  8.                  Ctrl <Key>Insert:     copyselection(SELECT) \n\

Чтобы узнать, как «в этом файле» называется шрифт, который вы хотите использовать, используйте fc-list. Например,

  1. fc-list | grep Droid

в ~/.xinitrc (до запуска DWM) впишите строчку

  1. xrdb ~/.Xresources

Кроме того, настроим дополнительные параметры отображения шрифтов в .Xresources:

  1. Xft.autohint: 0

  2. Xft.lcdfilter:  lcddefault

  3. Xft.hintstyle:  hintfull

  4. Xft.hinting: 1

  5. Xft.antialias: 1

  6. Xft.rgba: rgb

Если у вас HiDPI, допишите так же строчку

  1. Xft.dpi: 120

и измените этот параметр согласно вашим предпочтениям. 120 подходит для 1920×1080. Для применения изменений, перезапустите Xorg (выйдите из DWM и запустите startx)

Возвращаемся в config.h
Добавим 2 переменные там, где у вас указаны команды

  1. static const char *rofi[] = { «rofi», «-show», «drun», NULL };

  2. static const char *termcmd[] = { «xterm», NULL };

termcmd в массиве keys[] уже есть, добавим rofi на super+r:

  1. { MODKEY, XK_r, spawn, {.v=rofi } },

Пересоберем и установим dwm снова (это нужно делать при любом изменении config.h):

  1. sudo make clean install

нажмем Win+Shift+Q (или что там у вас), запустим startx и, если вы все сделали правильно, то при нажатии Win+Shift+Enter запустится xterm, а при win+r — rofi, откуда вы сможете запустить любое приложение.

Скриншоты
А вот не покажу! Скриншоты вы будете делать сами! А чтобы их делать, нужен flameshot. Конечно, вы можете использовать любую другую программу, и не читать эту секцию. А вот те кто будут использовать, читаем!
устанавливаем пакет flameshot. в DWM flameshot будет работать если
а) он запущен до DWM в фоне
б) DWM запущен с dbus

Вариант а (для тех кто будет вторую часть статьи читать):
~/.xinitrc:

  1. flameshot &

Вариант б (даже если вы используете вариант а, все равно сделайте, не только flameshot это требует):
~/.xinitrc:

  1. exec dbus-launch —exit-with-session dwm

а затем, в обоих случаях, config.h:

  1. static const char *flameshot[] = { «flameshot», «gui», NULL };

  2. static Key keys[] = {

  3. 0, XK_Print, spawn, {.v=flameshot } },

Pereklyuchenie raskladki, или я уже в панике нафлудил во все чаты транслитом:
~/.xinitrc:

  1. setxkbmap -layout us,ru -option «grp:win_space_toggle»

посмотреть доступные комбинации — man xkeyboard-config

Обои
Устанавливаем feh, в .xinitrc пишем:

  1. feh —bg-scale ~/Wallpapers/megumin.png

java.lang.НифигаНеВидноError
При попытке запуска окон приложений java AWT (Idea, TLauncher, да что угодно) они будут либо серые, либо ничего не отображать. Эта проблема касается всех non-reparenting WM. Установите пакет wmname и пропишите в .xinitrc:

  1. export _JAVA_AWT_WM_NONREPARENTING=1

  2. export AWT_TOOLKIT=MToolkit

  3. wmname LG3D

На этом все! В следующей статье:
1) Выставим тему и шрифты
2) Заюзаем sxhkd для хоткеев, чтобы не перекомпиливать DWM каждый раз
3) Сделаем очень красивый статусбар с иконками

dwm_bar.png

4) Научимся применять патчи к dwm
5) Для желающих, поставим трей

7 Best Window Managers for Windows in 2023 (Free & Paid)

By Alex • Updated Sep 16, 2023

Best for: Overall | Windows | Mac

In the digital age, managing computer windows efficiently is crucial for productivity. Window managers are great tools that help you organize, resize, and reposition windows effortlessly. This guide explores the top 7 window managers for Windows in 2023, both free and paid, to enhance your efficiency.

Best Window Management Apps for Windows

  1. Windows Snap
  2. AquaSnap
  3. MaxTo
  4. PowerToys FancyZones
  5. SmartWindows
  6. Divvy
  7. FancyWM

What Makes a Great Window Management App?

Before we delve into the list, let’s look at what makes a great window management app. The application should be user-friendly, intuitive, and highly customizable. It should offer features like window snapping, tiling, and docking. The ability to create custom keyboard shortcuts for faster navigation is also a significant plus. Furthermore, it should be lightweight, not consuming too much of your CPU or memory. Lastly, the app should be compatible with the latest Windows versions and support multi-monitor setups.

Now, let’s jump into our list of the 7 best window managers for Windows in 2023.

1. Windows Snap

Windows Snap is a built-in feature in Windows 10 and 11 that allows you to quickly organize your windows by snapping them to the sides or corners of your screen.

Key Features:

  • Snap windows side-by-side or into the four corners of your screen.
  • Drag and drop windows to resize and reposition them.
  • Keyboard shortcuts for quick window movement and resizing.

Our Take:

While Windows Snap may not offer as many features as some third-party tools, its seamless integration with the Windows operating system and the fact that it comes pre-installed make it a convenient and useful tool for basic window management.

2. AquaSnap

AquaSnap is a versatile window manager that goes beyond the standard features offered by the built-in Windows Snap.

Key Features:

  • Snap windows side-by-side, in quarters, or create complex layouts with hotkeys.
  • Window tiling and docking with keyboard shortcuts.
  • Window stretching and snapping for precise control over window sizes.
  • Group multiple floating windows and move them together.

Our Take:

AquaSnap is a powerful tool that provides highly customizable window management. With its ability to create complex layouts and manage multiple floating windows, it’s perfect for power users who need advanced control over their workspace.

3. MaxTo

MaxTo is a highly efficient window manager that allows you to divide your screen into exact portions, maximizing your workspace.

Key Features:

  • User-defined grid system for precise window positioning.
  • Customize keyboard shortcuts for almost all actions.
  • Virtual desktop support for Windows 10 users.
  • Recipe feature to launch and place multiple programs at once.

Our Take:

MaxTo is an excellent choice for those seeking a balanced combination of power and simplicity. Its user-defined grid system and recipe feature are unique selling points that make it stand out.

4. PowerToys FancyZones

Created by Microsoft, PowerToys FancyZones is a powerful window manager designed to make multitasking easier and more efficient.

Key Features:

  • Create custom layouts for your windows.
  • Snap windows into defined zones using drag-and-drop or hotkeys.
  • Multi-monitor support for enhanced productivity.
  • Zone templates for quick setup.

Our Take:

Being a Microsoft product, PowerToys FancyZones integrates seamlessly with Windows. It’s a fantastic tool for those who frequently multitask and need to manage their workspace efficiently.

5. SmartWindows

SmartWindows is a versatile window manager that aims to save users’ time by restoring their display settings and application positions with a single click.

Key Features:

  • Restore display settings and application positions.
  • Create unlimited profiles for work, play, and study.
  • Support for multiple users on a single PC.
  • Multi-browser and Microsoft Office file support.

Our Take:

SmartWindows is an excellent choice for those who frequently switch between different workspaces. Its ability to restore display settings and application positions can save a lot of time and effort.

6. Divvy

Divvy is a window management solution that gives users control over their desktop layout using a simple and intuitive interface.

Key Features:

  • Grid system to easily organize windows.
  • User-customizable keyboard shortcuts.
  • Drag-and-drop functionality for resizing windows.
  • Multi-monitor support.

Our Take:

Divvy is a great tool for those who value simplicity and ease of use. It may not have as many features as some other options, but its intuitive interface makes it easy to manage windows efficiently.

7. FancyWM

FancyWM is a dynamic tiling window manager designed specifically for Windows 10 and 11 to optimize the user’s workflow.

Key Features:

  • Create dynamic tiling layouts with mouse or keyboard.
  • Move window focus with keyboard.
  • Swap windows with keyboard.

Our Take:

FancyWM is a superb choice for those seeking a dynamic tiling window manager. It requires a bit of a learning curve, but once mastered, it can significantly boost productivity.

Frequently Asked Questions

What is a window manager?

A window manager is a software application that controls the arrangement of open windows on your computer screen. It helps in resizing, moving, and managing multiple windows efficiently.

Why do I need a window manager?

If you frequently work with multiple windows open, a window manager can significantly improve your productivity. It allows you to precisely control the positioning and size of your windows, making multitasking easier and more efficient.

Does Windows have a built-in window manager?

Yes, Windows has a built-in feature called Snap which allows you to organize your windows by snapping them to the sides or corners of your screen. However, it is relatively basic, and you might need a more powerful third-party tool for advanced window management.

Can I use a different window manager with each virtual desktop on Windows 10?

Some window managers like MaxTo and PowerToys FancyZones support virtual desktops on Windows 10, allowing you to have different window layouts on each virtual desktop.

Conclusion

In conclusion, window managers can be a game-changer for your productivity, especially if you regularly work with multiple windows open. Whether you’re looking for a simple tool like Windows Snap or a more advanced solution like AquaSnap or MaxTo, there’s a window manager out there that’s just right for your needs. So why wait? Start improving your efficiency with one of these fantastic window managers today!

All Window Management Apps for Windows

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Windows server 2016 стандарт
  • Windows update use proxy
  • Windows xp сборка lex pex
  • Чем просматривать pdf в windows 10
  • Umfd 0 что это за процесс windows 10