komorebi
Tiling Window Management for Windows.
Overview
komorebi is a tiling window manager that works as an extension to Microsoft’s
Desktop Window
Manager in
Windows 10 and above.
komorebi allows you to control application windows, virtual workspaces and display monitors with a CLI which can be
used with third-party software such as whkd
and AutoHotKey to set user-defined keyboard shortcuts.
komorebi aims to make as few modifications as possible to the operating
system and desktop environment by default. Users are free to make such
modifications in their own configuration files for komorebi, but these will
remain opt-in and off-by-default for the foreseeable future.
Please refer to the documentation for instructions on how
to install and
configure
komorebi, common workflows, a complete
configuration schema reference and a
complete CLI reference.
Community
There is a Discord server available for
komorebi-related discussion, help, troubleshooting etc. If you have any
specific feature requests or bugs to report, please create an issue in this
repository.
There is a YouTube
channel where I post
komorebi development videos, feature previews and release overviews. Subscribing
to the channel (which is monetized as part of the YouTube Partner Program) and
watching videos is a really simple and passive way to contribute financially to
the development and maintenance of komorebi.
There is an Awesome List which
showcases the many awesome projects that exist in the komorebi ecosystem.
Licensing for Personal Use
komorebi
is educational source
software.
komorebi
is licensed under the Komorebi 2.0.0
license, which is a fork of the
PolyForm Strict 1.0.0
license. On a high level
this means that you are free to do whatever you want with komorebi
for
personal use other than redistribution, or distribution of new works (i.e.
hard-forks) based on the software.
Anyone is free to make their own fork of komorebi
with changes intended either
for personal use or for integration back upstream via pull requests.
The Komorebi 2.0.0 License does
not permit any kind of commercial use (i.e. using komorebi
at work).
Sponsorship for Personal Use
komorebi is a free and educational source project, and one that encourages you
to make charitable donations if you find the software to be useful and have the
financial means.
I encourage you to make a charitable donation to the Palestine Children’s
Relief Fund or to contribute
to a Gaza Funds campaign before you consider sponsoring
me on GitHub.
GitHub Sponsors is enabled for this
project. Sponsors can claim custom roles on
the Discord server, get shout outs at the end of komorebi-related videos on
YouTube, gain the ability to submit feature requests on the issue tracker, and
receive releases of komorebi with «easter eggs» on physical media.
If you would like to tip or sponsor the project but are unable to use GitHub
Sponsors, you may also sponsor through Ko-fi, or
make an anonymous Bitcoin donation to bc1qv73wzspc77k46uty4vp85x8sdp24mphvm58f6q
.
Licensing for Commercial Use
A dedicated Individual Commercial Use License is available for those who want to
use komorebi
at work.
The Individual Commerical Use License adds “Commercial Use” as a “Permitted Use”
for the licensed individual only, for the duration of a valid paid license
subscription only. All provisions and restrictions enumerated in the Komorebi
License continue to apply.
More information, pricing and purchase links for Individual Commercial Use
Licenses can be found here.
Installation
A detailed installation and quickstart
guide is available which shows how to get started
using scoop
, winget
or building from source.
Comparison With Fancy Zones
Community member Olge has created an
excellent video which compares the default window management features of
Windows 11, Fancy Zones and komorebi.
If you are not familiar with tiling window managers or if you are looking at
komorebi and wondering «how is this different from Fancy Zones? 🤔», this short
video will answer the majority of your questions.
Demonstrations
@amnweb showing komorebi v0.1.28
running on Windows 11 with window borders,
unfocused window transparency and animations enabled, using a custom status bar integrated using
komorebi‘
s Window Manager Event Subscriptions.
Windows.11.and.Komorebi.mp4
@haxibami showing komorebi running on Windows
11 with a terminal emulator, a web browser and a code editor. The original
video can be viewed
here.
0vadqFOyIJHglPRY.mp4
@aik2mlj showing komorebi running on Windows 11
with multiple workspaces, terminal emulators, a web browser, and the
yasb status bar with the komorebi workspace
widget enabled. The original video can be viewed
here.
0e0dd7fc-7115-11ec-a064-42a1fbc2e1e9-v4_t10000011-wbjnuX5De6.mp4
Contribution Guidelines
If you would like to contribute to komorebi
please take the time to carefully
read the guidelines below.
Please see CONTRIBUTING.md for more information about how
code contributions to komorebi
are licensed.
Commit hygiene
- Flatten all
use
statements - Run
cargo +stable clippy
and ensure that all lints and suggestions have been addressed before committing - Run
cargo +nightly fmt --all
to ensure consistent formatting before committing - Use
git cz
with
the Commitizen CLI to prepare
commit messages - Provide at least one short sentence or paragraph in your commit message body to describe your thought process for
the changes being committed
PRs should contain only a single feature or bug fix
It is very difficult to review pull requests which touch multiple unrelated features and parts of the codebase.
Please do not submit pull requests like this; you will be asked to separate them into smaller PRs that deal only with
one feature or bug fix at a time.
If you are working on multiple features and bug fixes, I suggest that you cut a branch called local-trunk
from master
which you keep up to date, and rebase the various independent branches you are working on onto that branch
if you want to test them together or create a build with everything integrated.
Refactors to the codebase must have prior approval
komorebi
is a mature codebase with an internal consistency and structure that has developed organically over close to
half a decade.
There are countless hours of live coding videos demonstrating work on this project and
showing new contributors how to do everything from basic tasks like implementing new komorebic
commands to
distinguishing monitors by manufacturer hardware identifiers and video card ports.
Refactors to the structure of the codebase are not taken lightly and require prior discussion and approval.
Please do not start refactoring the codebase with the expectation of having your changes integrated until you receive an
explicit approval or a request to do so.
Similarly, when implementing features and bug fixes, please stick to the structure of the codebase as much as possible
and do not take this as an opportunity to do some «refactoring along the way».
It is extremely difficult to review PRs for features and bug fixes if they are lost in sweeping changes to the structure
of the codebase.
Breaking changes to user-facing interfaces are unacceptable
This includes but is not limited to:
- All
komorebic
commands - The
komorebi.json
schema - The
komorebi-application-specific-configuration
schema
No user should ever find that their configuration file has stopped working after upgrading to a new version
of komorebi
.
More often than not there are ways to reformulate changes that may initially seem like they require breaking user-facing
interfaces into additive changes.
For some inspiration please take a look
at this commit which added the
ability for users to specify colours in komorebi.json
in Hex format alongside RGB.
There is also a process in place for graceful, non-breaking, deprecation of configuration options that are no longer
required.
Development
If you use IntelliJ, you should enable the following settings to ensure that code generated by macros is recognised by
the IDE for completions and navigation:
- Set
Expand declarative macros
toUse new engine
under «Settings > Langauges & Frameworks > Rust» - Enable the following experimental features:
org.rust.cargo.evaluate.build.scripts
org.rust.macros.proc
Logs and Debugging
Logs from komorebi
will be appended to %LOCALAPPDATA%/komorebi/komorebi.log
; this file is never rotated or
overwritten, so it will keep growing until it is deleted by the user.
Whenever running the komorebic stop
command or sending a Ctrl-C signal to komorebi
directly, the komorebi
process
ensures that all hidden windows are restored before termination.
If however, you ever end up with windows that are hidden and cannot be restored, a list of window handles known
to komorebi
are stored and continuously updated in %LOCALAPPDATA%/komorebi//komorebi.hwnd.json
.
Restoring Windows
Running komorebic restore-windows
will read the list of window handles and forcibly restore them, regardless of
whether the main komorebi
process is running.
Panics and Deadlocks
If komorebi
ever stops responding, it is most likely either due to either a panic or a deadlock. In the case of a
panic, this will be reported in the log. In the case of a deadlock, there will not be any errors in the log, but the
process and the log will appear frozen.
If you believe you have encountered a deadlock, you can compile komorebi
with --features deadlock_detection
and try
reproducing the deadlock again. This will check for deadlocks every 5 seconds in the background, and if a deadlock is
found, information about it will appear in the log which can be shared when opening an issue.
Window Manager State and Integrations
The current state of the window manager can be queried using the komorebic state
command, which returns a JSON
representation of the State
struct.
This may also be polled to build further integrations and widgets on top of.
Window Manager Event Subscriptions
Named Pipes
It is possible to subscribe to notifications of every WindowManagerEvent
and SocketMessage
handled
by komorebi
using Named Pipes.
First, your application must create a named pipe. Once the named pipe has been created, run the following command:
komorebic.exe subscribe-pipe <your pipe name>
Note that you do not have to include the full path of the named pipe, just the name.
If the named pipe exists, komorebi
will start pushing JSON data of successfully handled events and messages:
{"event":{"type":"AddSubscriber","content":"yasb"},"state":{}} {"event":{"type":"FocusWindow","content":"Left"},"state":{}} {"event":{"type":"FocusChange","content":["SystemForeground",{"hwnd":131444,"title":"komorebi – README.md","exe":"idea64.exe","class":"SunAwtFrame","rect":{"left":13,"top":60,"right":1520,"bottom":1655}}]},"state":{}} {"event":{"type":"MonitorPoll","content":["ObjectCreate",{"hwnd":5572450,"title":"OLEChannelWnd","exe":"explorer.exe","class":"OleMainThreadWndClass","rect":{"left":0,"top":0,"right":0,"bottom":0}}]},"state":{}} {"event":{"type":"FocusWindow","content":"Right"},"state":{}} {"event":{"type":"FocusChange","content":["SystemForeground",{"hwnd":132968,"title":"Windows PowerShell","exe":"WindowsTerminal.exe","class":"CASCADIA_HOSTING_WINDOW_CLASS","rect":{"left":1539,"top":60,"right":1520,"bottom":821}}]},"state":{}} {"event":{"type":"FocusWindow","content":"Down"},"state":{}} {"event":{"type":"FocusChange","content":["SystemForeground",{"hwnd":329264,"title":"den — Mozilla Firefox","exe":"firefox.exe","class":"MozillaWindowClass","rect":{"left":1539,"top":894,"right":1520,"bottom":821}}]},"state":{}} {"event":{"type":"FocusWindow","content":"Up"},"state":{}} {"event":{"type":"FocusChange","content":["SystemForeground",{"hwnd":132968,"title":"Windows PowerShell","exe":"WindowsTerminal.exe","class":"CASCADIA_HOSTING_WINDOW_CLASS","rect":{"left":1539,"top":60,"right":1520,"bottom":821}}]},"state":{}}
You may then filter on the type
key to listen to the events that you are interested in. For a full list of possible
notification types, refer to the enum variants of WindowManagerEvent
in komorebi
and SocketMessage
in komorebi::core
.
Below is an example of how you can subscribe to and filter on events using a named pipe in nodejs
.
const { exec } = require("child_process"); const net = require("net"); const pipeName = "\\\\.\\pipe\\komorebi-js"; const server = net.createServer((stream) => { console.log("Client connected"); // Every time there is a workspace-related event, let's log the names of all // workspaces on the currently focused monitor, and then log the name of the // currently focused workspace on that monitor stream.on("data", (data) => { let json = JSON.parse(data.toString()); let event = json.event; if (event.type.includes("Workspace")) { let monitors = json.state.monitors; let current_monitor = monitors.elements[monitors.focused]; let workspaces = monitors.elements[monitors.focused].workspaces; let current_workspace = workspaces.elements[workspaces.focused]; console.log( workspaces.elements .map((workspace) => workspace.name) .filter((name) => name !== null) ); console.log(current_workspace.name); } }); stream.on("end", () => { console.log("Client disconnected"); }); }); server.listen(pipeName, () => { console.log("Named pipe server listening"); }); const command = "komorebic subscribe-pipe komorebi-js"; exec(command, (error, stdout, stderr) => { if (error) { console.error(`Error executing command: ${error}`); return; } });
Unix Domain Sockets
It is possible to subscribe to notifications of every WindowManagerEvent
and SocketMessage
handled
by komorebi
using Unix Domain Sockets.
UDS are also the only mode of communication between komorebi
and komorebic
.
First, your application must create a socket in $ENV:LocalAppData\komorebi
. Once the socket has been created, run the
following command:
komorebic.exe subscribe-socket <your socket name>
If the socket exists, komorebi will start pushing JSON data of successfully handled events and messages as in the
example above in the Named Pipes section.
Rust Client
As of v0.1.22
it is possible to use the komorebi-client
crate to subscribe to notifications of
every WindowManagerEvent
and SocketMessage
handled by komorebi
in a Rust codebase.
Below is a simple example of how to use komorebi-client
in a basic Rust application.
// komorebi-client = { git = "https://github.com/LGUG2Z/komorebi", tag = "v0.1.36"} use anyhow::Result; use komorebi_client::Notification; use komorebi_client::NotificationEvent; use komorebi_client::UnixListener; use komorebi_client::WindowManagerEvent; use std::io::BufRead; use std::io::BufReader; use std::io::Read; pub fn main() -> anyhow::Result<()> { let socket = komorebi_client::subscribe(NAME)?; for incoming in socket.incoming() { match incoming { Ok(data) => { let reader = BufReader::new(data.try_clone()?); for line in reader.lines().flatten() { let notification: Notification = match serde_json::from_str(&line) { Ok(notification) => notification, Err(error) => { log::debug!("discarding malformed komorebi notification: {error}"); continue; } }; // match and filter on desired notifications } } Err(error) => { log::debug!("{error}"); } } } }
A read-world example can be found
in komokana.
Subscription Event Notification Schema
A JSON Schema of the event notifications emitted to subscribers can be generated with
the komorebic notification-schema
command. The output of this command can be redirected to the clipboard or a file,
which can be used with services such as Quicktype to generate type definitions in different
programming languages.
Communication over TCP
A TCP listener can optionally be exposed on a port of your choosing with the --tcp-port=N
flag. If this flag is not
provided to komorebi
or komorebic start
, no TCP listener will be created.
Once created, your client may send
any SocketMessage to komorebi
in the
same way that komorebic
would.
This can be used if you would like to create your own alternative to komorebic
which incorporates scripting and
various middleware layers, and similarly it can be used if you would like to integrate komorebi
with
a custom input handler.
If a client sends an unrecognized message, it will be disconnected and have to reconnect before trying to communicate
again.
Socket Message Schema
A JSON Schema of socket messages used to send instructions to komorebi
can be generated
with the komorebic socket-schema
command. The output of this command can be redirected to the clipboard or a file,
which can be used with services such as Quicktype to generate type definitions in different
programming languages.
Appreciations
-
First and foremost, thank you to my wife, both for naming this project and for her patience throughout its
never-ending development -
Thank you to @sitiom for
being an exemplary open source community leader -
Thank you to the developers of nog who came before me and whose work taught
me more than I can ever hope to repay -
Thank you to the developers of GlazeWM for pushing the boundaries of tiling
window management on Windows with me and having an excellent spirit of collaboration -
Thank you to @Ciantic for helping me bring
the hidden Virtual Desktops cloaking function tokomorebi
Table of Content
Understanding Tiling Window Managers
A tiling window manager (WM) is a type of window manager that organizes open windows in a non-overlapping manner on the screen. Instead of traditional overlapping windows, tiling window managers place windows side by side, stacked, or in a grid, automatically adjusting the layout as new windows are opened or closed.
These tools are highly keyboard-focused, allowing users to manage windows efficiently without relying on a mouse, making them ideal for power users and developers who value productivity and workflow efficiency.
History and Importance
Tiling window managers have been around since the early days of graphical user interfaces. They emerged as a response to the need for more efficient window management, particularly for users who work with multiple applications simultaneously.
The emphasis on keyboard shortcuts and automation reduces the time spent resizing and moving windows, allowing users to focus on their tasks.
In modern computing, tiling window managers are especially important for managing multi-monitor setups. As more professionals work with several screens, the ability to quickly and efficiently organize applications across multiple displays becomes crucial.
Tiling window managers streamline this process by automatically arranging windows in a logical manner, reducing clutter and maximizing the use of screen real estate.
Examples of Tiling Window Managers
1- Linux
- i3: A popular and flexible tiling window manager known for its simplicity and extensive configurability.
- Xmonad: A highly customizable tiling window manager written in Haskell, favored by users who prefer to script their configurations.
- Awesome: A dynamic tiling window manager that allows users to define custom layouts and has a strong community of contributors.
2- macOS
- Amethyst: A tiling window manager for macOS that offers automatic window arrangement and easy customization via a simple configuration file.
- Yabai: A powerful tiling window manager for macOS, focusing on providing extensive control over window layout and behavior.
- Phoenix: While not a tiling manager by default, it allows extensive scripting to achieve tiling-like behavior on macOS.
10 Open Source Tiling Window Managers for macOS
What is a Tiling Window Manager? A tiling window manager is a desktop environment that organizes windows in a non-overlapping layout. Rather than allowing windows to be manually resized and positioned, a tiling window manager automatically arranges them in a logical, space-efficient manner. Tiling window managers are often favored by
MEDevel.com: Open-source for Healthcare, and EducationHazem Abbas
Importance in Managing Multi-Monitor Setups
In the context of Windows, tiling window managers are increasingly important for users who work with multi-monitor setups. Managing multiple screens can quickly become cumbersome with traditional window management, as windows need to be manually moved and resized across different displays.
Tiling window managers address this challenge by allowing users to automatically organize windows across all connected monitors, ensuring that screen space is used efficiently and that workflows remain smooth.
For developers, designers, and professionals who rely on having multiple applications open simultaneously—such as code editors, terminals, and browsers—tiling window managers provide a significant boost in productivity.
They eliminate the need for constant adjustments and help maintain an organized workspace, which is essential for staying focused and efficient in a multi-monitor environment.
Tiling window managers on Windows, though less common than on Linux, are growing in popularity as more users recognize the benefits of a keyboard-focused, automated approach to window management.
Whether it’s for coding, design, or general productivity, these tools offer a way to harness the full potential of modern multi-monitor setups.
In the following list, we collected the best active open-source free tools that works as tiling window manager for Windows systems.
1. Komorebi
Komorebi is a tiling window manager for Windows that enhances desktop productivity by providing dynamic tiling, keybindings, and multi-monitor support. It focuses on offering a seamless and efficient window management experience for users who need better control over their workspace.
Features:
- Dynamic Tiling: Automatically arranges windows in a non-overlapping layout.
- Customizable Keybindings: Allows users to define and use keyboard shortcuts for efficient window management.
- Multi-Monitor Support: Manages windows across multiple monitors, ensuring optimal use of screen space.
- Configurable Layouts: Users can customize window layouts to fit their workflow.
- Resource Efficient: Designed to be lightweight, ensuring smooth performance without significant system impact.
GitHub — LGUG2Z/komorebi: A tiling window manager for Windows 🍉
A tiling window manager for Windows 🍉. Contribute to LGUG2Z/komorebi development by creating an account on GitHub.
GitHubLGUG2Z
2. workspacer
workspacer is a free tiling window manager for Windows 10+, similar in style and function to common unix tiling window managers (dwm, i3, xmonad).
GitHub — workspacer/workspacer: a tiling window manager for Windows
a tiling window manager for Windows. Contribute to workspacer/workspacer development by creating an account on GitHub.
GitHubworkspacer
3. GlazeWM
GlazeWM lets you easily organize windows and adjust their layout on the fly by using keyboard-driven commands.
Features
- Simple YAML configuration
- Multi-monitor support
- Customizable rules for specific windows
- Easy one-click installation
- Integration with Zebar as a status bar
GitHub — glzr-io/glazewm: GlazeWM is a tiling window manager for Windows inspired by i3wm.
GlazeWM is a tiling window manager for Windows inspired by i3wm. — glzr-io/glazewm
GitHubglzr-io
4. FancyWM
FancyWM is a tiling window manager for Windows that enhances productivity by automatically organizing windows into a non-overlapping layout. It offers customizable layouts and efficient keyboard controls, making it easier to manage multiple windows and workspaces.
Features:
- Automatic Tiling: Organizes windows without overlap.
- Custom Layouts: Allows users to define their preferred window arrangements.
- Keyboard Control: Enables efficient window management through shortcuts.
- Multi-Monitor Support: Handles windows across multiple screens.
- Lightweight: Minimal resource usage for smooth operation.
GitHub — FancyWM/fancywm: FancyWM — Dynamic Tiling Window Manager for Windows
FancyWM — Dynamic Tiling Window Manager for Windows — FancyWM/fancywm
GitHubFancyWM
5. bug.n
Bug.n is a tiling window manager extension for Windows that brings efficient window management features typically found on Linux to the Windows environment. It integrates seamlessly with Windows, providing users with the ability to tile windows across their desktop, enhancing productivity by organizing open applications more effectively.
Bug.n provides Windows users with a powerful tool to enhance their productivity by bringing the benefits of tiling window management to the Windows desktop, making it easier to manage multiple applications and monitor setups.
bug.n is a tiling window manager add-on for the Explorer shell of Microsoft Windows. It is written in the scripting language AutoHotkey.
Features:
- Tiling Window Management: Automatically arranges open windows in a non-overlapping layout.
- Multi-Monitor Support: Manages windows across multiple monitors for a more efficient workflow.
- Keyboard-Focused Operation: Allows extensive control over window management via keyboard shortcuts.
- Customizable Layouts: Offers various tiling layouts that can be customized to suit different user needs.
- Lightweight: Minimal impact on system resources, ensuring smooth performance.
GitHub — fuhsjr00/bug.n: Tiling Window Manager for Windows
Tiling Window Manager for Windows. Contribute to fuhsjr00/bug.n development by creating an account on GitHub.
GitHubfuhsjr00
6. Miguru
Miguru is an automatically tiling window manager for Windows 10, inspired by Amethyst/ xmonad.
GitHub — imawizard/MiguruWM: A tiling window manager for Windows
A tiling window manager for Windows. Contribute to imawizard/MiguruWM development by creating an account on GitHub.
GitHubimawizard
7. Nog
Nog is a free and open-source tiling window manager for Windows.
GitHub — TimUntersberger/nog: A tiling window manager for Windows
A tiling window manager for Windows. Contribute to TimUntersberger/nog development by creating an account on GitHub.
GitHubTimUntersberger
8. grout
group is a free and open-source simple tiling window manager for Windows, written in Rust. Inspired by Budgie’s Window Shuffler grid functionality.
GitHub — tarkah/grout: Simple tiling window manager for Windows
Simple tiling window manager for Windows. Contribute to tarkah/grout development by creating an account on GitHub.
GitHubtarkah
9. WinWM
WinWM is a free and open-source tiling window manager inspired by i3wm.
Features
- Multi monitor support
- LuaJit Scripting
- Uses virtual desktops instead of just moving around windows
- Fast seamless performance
GitHub — McYoloSwagHam/win3wm: A Tiling Window Manager for windows 10, Inspired by i3wm
A Tiling Window Manager for windows 10, Inspired by i3wm — McYoloSwagHam/win3wm
GitHubMcYoloSwagHam
10. JigsawWM
JigsawWM is a free and open-source project that aims to increase your productivity by offering a set of automation facilities, including the jmk module as an AHK alternative, a Tiling Window Manager to free you from managing windows manually and the Daemon to support any customization you may have in mind.
GitHub — klesh/JigsawWM: JigsawWM is a dynamic window manager for Windows10/11 just like the suckless dwm for the X
JigsawWM is a dynamic window manager for Windows10/11 just like the suckless dwm for the X — klesh/JigsawWM
GitHubklesh
If you are a Windows user, you have probably gotten hooked on some of its styles and effects available in its graphical interface. The problem may come at the time of gestating the classic windows that the system provides us. Is this usually attractive or effective enough? So if you have been wondering how to organize Windows windows better, you can take a breath now! We give you the best window manager software for Windows PC. So you can choose, fast and easy.
Best Window Manager Software for PC
These Window Management Apps for Windows 10 are the best option if you want something that fits your style and needs for your Microsoft Desktop.
1. MaxTo Window Manager
MaxTo will help you divide your screen and organize windows quickly, with a clean and easy-to-see interface. It is highly recommended if you are a beginner user or not very familiar with software. With MaxTo, you can organize your windows like a professional.
By installing this software, you can maximize screens that will directly go to one side of the screen. Furthermore, you can deactivate the configuration whenever you want. And you don’t need to worry about the installation process because if there is a word to describe it, this is user-friendly. For greater comfort, you can control the windows with the keyboard. This software is more useful if you have a large monitor, so you can fully enjoy this excellent windows manager on your PC.
2. Stack Window Manager
You can get this software in a free version if you have Windows 7 or previous ones. With it, you can easily dock windows and take full advantage of using multiple monitors. However, it is also recommended if you have a single large monitor. It helps rearrange multiple windows, and its custom layouts are advantageous.
You can move the windows with quick access and with the middle mouse button. You can also add taskbars if you have a dual monitor. If you wish, you can make the windows appear on the screen automatically. Stack is, above all, software that allows you to optimize functionality, adjusting it to your personal preferences. The best thing is that you can work intuitively without learning complicated codes or combinations to organize your windows. Therefore, we can say that it is one of the best window managers for Windows.
3. Actual Window Manager
Actual Window Manager has a lot of options to offer you. It is compatible with Windows 10/9/8/7/ vista and XP. It is specially designed for multiple monitor users. The objective of this program is to help you increase your productivity when using your PC with multiple monitors. For this, it offers you a multifunctional taskbar that you can view on each screen, making it easier and faster to access.
With this program, you can easily manage your screensaver, background image, profile desktops, and more. You can also combine keys to create a shortcut and use only the keyboard to move and rearrange your windows. Additionally, you can select your preferences not only in windows but also in other programs and folders. This software has been awarded several awards for its excellence in various aspects, highlighting its ease of installation, high security, and optimal functionality.
4. WindowGrid
WindowGrid is quite functional software. It is compatible with Windows Vista/7/8/8.1/10. It has several features that are managed even with the secondary mouse button! With it, you can customize windows dimensions, opacity, color, etc. You can resize, align, and move windows. You can create your windows according to your own designs and tastes! Its dynamic grid has a retro style that lovers of classics will love.
Its use does not compromise the memory of the system, and also its interface is very comfortable and intuitive. And you will be pleasantly surprised by the speed at which its processes operate. Moreover, it is updated automatically, so you will not waste time looking to enjoy the optimizations.
5. SplitView
SplitView is what you need when you are looking for a program to divide your screen, make the windows look orderly, and use them efficiently. This software is perfect for when you are looking for simplicity and speed when dividing screens. But still, there are plenty of options you can explore! For example, you can dock a selected window to place it on the side of the screen, just with one button. Also, you have helpful features, like you can use keyboard shortcuts for quick access. And, you can adjust the settings so that the window you want automatically appears on your screen in the size you want.
The design is very modern, and of course, you can use it on dual monitors. In fact, this software was designed precisely for users who need to boost their productivity.
6. Chamaleon Windows Manager
Chamaleon Windows Manager is free and still has many advantages. With Chamaleon, you can change the whole look of your windows. This program is ideal if you are looking for a window manager that focuses on improving both the utility and the appearance of your operating system. You can choose from how you want the windows to open to the color. Do you want them to be transparent? No problem, the possibilities are the order of the day.
Frequently Asked Questions (FAQ)
1. What is a window manager?
A window manager is a software that manages the appearance and placement of windows on your screen. It allows you to control how your windows are organized, resized, and positioned. A window manager is a software program that controls the placement, arrangement, and appearance of windows in an operating system. In the case of Windows, a tiled window manager for Windows 11, or any other version of Microsoft Windows, is a popular choice for efficiently managing window multitasking.
This type of window manager organizes and arranges open windows into tiles, providing a streamlined and convenient way to navigate and work with multiple applications simultaneously. Some tiled window managers for Windows are available for free, making them a preferred option for many users.
2. Can I use a window manager in Windows 10?
Yes, there are various window manager software available for Windows 10. These software offer different functionalities to enhance your window management experience. Yes, you can use a window manager in Windows 10. A window manager allows you to minimize, position, and resize windows on your desktop using hotkeys or scripts.
Although primarily used in Linux, there are also window managers available for Windows, such as Mosaico and NURGO. These window managers give you the ability to manage multiple windows and apps, allowing you to customize the position and size of each window according to your personal use.
3. What is a tiling window manager?
A tiling window manager is a type of window manager that automatically arranges your windows in a non-overlapping layout. It is designed to improve productivity and make efficient use of screen space. A tiling window manager is a productivity tool that simplifies the user interface by organizing windows in a non-overlapping layout. Unlike traditional window managers, it allows user-defined window arrangements and supports multi-monitor setups.
Instead of using the mouse, tiling window managers prioritize keyboard shortcuts to toggle between applications. It also eliminates cluttered desktops by adopting a tabbed approach. Aquasnap is an example of a tiling window manager that allows easy resizing and positioning of windows.
4. Are there tiling window managers available for Windows?
Yes, there are several tiling window managers specifically designed for Windows operating system. Some popular options include AquaSnap, MaxTo, and bug.n. Yes, there are tiling window managers available for Windows. Unlike the default task bar in mainstream operating systems like OS X, tiling window managers offer horizontal window layouts and customizable keyboard shortcuts. They organize open windows automatically, making multitasking a breeze.
These window managers also feature status bars that display information about CPU usage, tags for grouping related windows, and the ability to easily customize the appearance of title bars. They can be installed and uninstalled easily, with the option to predefine settings to further personalize the user experience.
5. What is the purpose of window management?
Window management refers to the process of controlling the layout, arrangement, and behavior of windows on your desktop. It helps you organize your workspace, increase efficiency, and multitask effectively. The purpose of window management is to organize and control the windows on my desktop. It allows me to snap windows to different positions, arrange them in the best tiled window layout, and easily switch between different windows open on my computer.
Windows versions provide various options like cascading or stacking windows, but the goal is to have an efficient and organized workspace with the ability to focus on one window at a time.
6. How can I resize or maximize windows using a window manager?
Most window managers provide keyboard shortcuts or mouse actions to resize and maximize windows. These shortcuts allow you to quickly adjust the size and position of windows based on your preference and workflow. To resize or maximize windows using a window manager, there are several options available. Users can typically manually adjust the size of windows by clicking and dragging the edges using the mouse or by using keyboard shortcuts.
Some window managers also have features that allow for automatic resizing and maximizing of windows. Additionally, apps like Aquasnap allow for advanced window management functionalities, such as snapping windows vertically or horizontally. The system tray or desktop environment may provide additional options for resizing or maximizing windows.
7. Can I use a window manager with multiple monitors?
Yes, many window managers are compatible with multiple monitors. They offer features to manage windows across different screens, allowing you to make the most out of your multi-monitor setup. Yes, you can use a window manager with multiple monitors. In fact, using a window manager can make your life easier when working with several screens.
It is particularly useful because it allows you to arrange your windows horizontally across the monitors, making it easier to manage your tasks and workflow. Some window managers even come with enhancement tools like magnets and gridmove, which help you organize your windows effortlessly.
8. What are some popular window manager software?
Some popular window manager software include AquaSnap, MaxTo, bug.n, and TidyTabs. These tools provide various window management features and customizable options to suit different user needs. Some popular window manager software includes the free window managers like Openbox and i3, which are available for different versions of Windows.
These window managers utilize a tiling feature, which automatically arranges windows in a tiled layout. They also support various apps and allow users to navigate through the windows using a combination of keyboard and mouse. Additionally, users can optionally customize the appearance and behavior of these window managers to suit their preferences.
9. Can I configure a window manager to suit my preferences?
Yes, most window managers offer configuration options that allow you to customize their behavior and appearance. You can adjust settings such as window placement, keyboard shortcuts, and more to match your preferred workflow. Yes, you can configure a window manager to suit your preferences.
A window manager is a window management tool that determines how your windows are displayed and arranged on the screen. It allows you to customize the appearance and behavior of windows, such as using tiles to arrange them or having a built-in window resizing feature. With the flexibility of a window manager, you can create a personalized and efficient layout that meets your needs.
Conclusion
Your options are very varied, whether you are looking for a very prominent and radical style or if you are looking for a minimalist. You can hide or show the taskbars, programs, windows, whatever you want! This program meets everything you expect from a windows manager and more. It can even help you speed up the Windows startup process by selecting the programs you want to start with yourself. This software allows you to optimize appearance, order, and establish priorities for the best performance of the system functions — everything you need from the best window manager software for Windows PC.
Tiling window managers (WM) provide Linux users with a way to customize a desktop environment to suit their personal preferences. Windows can be arranged to avoid overlapping and altered on the fly simply by typing in keyboard commands.
Inspired by the likes of i3 (a Linux window manager aimed at power users and developers) and Polybar (a fast and easy-to-use tool for creating status bars), GlazeWM brings this functionality to Windows, and the tool has just undergone a massive update. Version 2.0 fixes a number of problems and introduces a wealth of new features.
Highlights of GlazeWM include:
- Simple YAML configuration
- Multi-monitor support
- Customizable bar window
- Customizable rules for specific windows
- Easy one-click installation
New features in GlazeWM 2.0 include:
- Restore hidden windows when the WM is killed unexpectedly.
- Introduced a new «watcher» process, which restores all windows when the main process dies.
- Highlight the active window with a customizable border.
- Exclusively on Windows 11 due to the underlying API not being available on W10.
- Automatically focus windows underneath the cursor.
- Cursor jumps to windows focused by the WM.
- Introduce an IPC server and a CLI for querying GlazeWM’s state and running WM commands.
- Both the IPC server and CLI support the same commands.
- Lots of new components for the bar:
- System tray component
- WiFi/ETH stats component
- CPU stats component
- GPU stats component
- Memory/RAM stats component
- Weather component
- Text file component
- Volume component
- Image component
- Further improvements to the bar include:
- Customizable border radius for components and the bar window itself
- Fully remove the bar
- Show the bar above all other windows
- Support for mixing font family, font weight, font size, and foreground color within a label. This means that icons and text fonts can be used together in a label
- Add an equivalent to workspace_auto_back_and_forth from i3wm. The new option general.toggle_workspace_on_refocus allows switching back and forth between the previously focused workspace when focusing the current workspace.
- Add new command for setting width/height of a window to a specific value.
- UWP windows now tile correctly.
- Customize individual outer gaps, eg. gaps.outer_gap: 10px 5px 10px 5px.
- Floating windows can now be moved and resized. The amount of movement is controlled by general.floating_window_move_amount.
- Window transition animations can be disabled globally via general.window_animations.
- Ctrl can be used instead of Control when defining keybindings.
The latest executable can be downloaded via releases. You can also download it using the Winget package manager.
winget install GlazeWM
Image Credit: @HolbyFPV
Getting started
komorebi
is a tiling window manager for Windows that is comprised of two
main binaries, komorebi.exe
, which contains the window manager itself,
and komorebic.exe
, which is the main way to send commands to the tiling
window manager.
It is important to note that neither komorebi.exe
nor komorebic.exe
handle
key bindings, because komorebi
is a tiling window manager and not a hotkey
daemon.
This getting started guide suggests the installation of
whkd
to allow you to bind komorebic.exe
commands to hotkeys to allow you to communicate with the tiling window manager
using keyboard shortcuts.
However, whkd
is a very simple hotkey daemon, and notably, does not include
workarounds for Microsoft’s restrictions on hotkey combinations that can use
the Windows
key.
If using hotkey combinations with the Windows
key is important to you, I
suggest that once you are familiar with the main komorebic.exe
commands used
to manipulate the window manager, you use
AutoHotKey to handle your key bindings.
komorebi
also includes komorebi-bar.exe
, a simple and reliable status bar which
is deeply integrated with the tiling window manager, and can be customized with
various widgets and themes.
komorebi
is available pre-built to install via
Scoop and
WinGet, and you may also build
it from source if you would prefer.
- Scoop
- WinGet
- Building from source
- Offline
Long path support
It is highly recommended that you enable support for long paths in Windows by
running the following command in an Administrator Terminal before installing
komorebi
.
Set-ItemProperty 'HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem' -Name 'LongPathsEnabled' -Value 1
Disabling unnecessary system animations
It is highly recommended that you enable the «Turn off all unnecessary animations (when possible)» option in
«Control Panel > Ease of Access > Ease of Access Centre / Make the computer easier to see» for the best performance with
komorebi.
Scoop
Make sure you have installed scoop
and verified that
installed binaries are available in your $PATH
before proceeding.
Issues with komorebi
and related commands not being recognized in the
terminal ultimately come down to the $PATH
environment variable not being
correctly configured by your package manager and should not be raised as
bugs or issues either on the komorebi
GitHub repository or Discord server.
Install komorebi and whkd
First add the extras bucket
Then install the komorebi
and whkd
packages using scoop install
scoop install komorebi whkd
Once komorebi is installed, proceed to get the example
configurations.
WinGet
Make sure you have installed the latest version of
winget
and verified that installed binaries are available in your $PATH
before
proceeding.
Issues with komorebi
and related commands not being recognized in the
terminal ultimately come down to the $PATH
environment variable not being
correctly configured by your package manager and should not be raised as
bugs or issues either on the komorebi
GitHub repository or Discord server.
Install komorebi and whkd
Install the komorebi
and whkd
packages using winget install
winget install LGUG2Z.komorebi
winget install LGUG2Z.whkd
Once komorebi is installed, proceed to get the example
configurations.
Building from source
Make sure you have installed rustup
, a stable rust
compiler toolchain, and the Visual Studio Visual Studio
prerequisites.
Clone the git repository, enter the directory, and build the following binaries:
cargo +stable install --path komorebi --locked
cargo +stable install --path komorebic --locked
cargo +stable install --path komorebic-no-console --locked
cargo +stable install --path komorebi-gui --locked
cargo +stable install --path komorebi-bar --locked
If the binaries have been built and added to your $PATH
correctly, you should
see some output when running komorebi --help
and komorebic --help
Offline
Download the latest komorebi
and whkd MSI installers on an internet-connected computer, then copy them to
an offline machine to install.
Once installed, proceed to get the example configurations (none of the commands for
first-time set up and running komorebi require an internet connection).
Upgrades
Before upgrading, make sure to run komorebic stop --whkd --bar
. This is to ensure that all the current
komorebi-related exe files can be replaced without issue.
Then, depending on whether you installed via scoop
or winget
, you can run the appropriate command:
# for winget
winget upgrade LGUG2Z.komorebi
# for scoop
scoop update komorebi
Once the upgrade is completed you can confirm that you have the latest version by running komorebic --version
, and
then start it with komorebic start --whkd --bar
.
Uninstallation
Before uninstalling, first run komorebic stop --whkd --bar
to make sure that
the komorebi
, komorebi-bar
and whkd
processes have been stopped.
Then, depending on whether you installed with Scoop or WinGet, run scoop
or
uninstall komorebi whkdwinget uninstall LGUG2Z.komorebi LGUG2Z.whkd
.
Finally, you can run the following commands in a PowerShell prompt to clean up
files created by the quickstart
command and any other runtime files:
rm $Env:USERPROFILE\komorebi.json
rm $Env:USERPROFILE\applications.json
rm $Env:USERPROFILE\.config\whkdrc
rm -r -Force $Env:LOCALAPPDATA\komorebi