Glazewm
GlazeWM is a tiling window manager for macOS and Windows inspired by i3wm.
Install / Use
/learn @glzr-io/GlazewmREADME
<br> <img src="./resources/assets/logo.svg" width="230" alt="GlazeWM logo" /> <br>V3 is finally out - check out the changelog here 🔥
GlazeWM
A tiling window manager for Windows inspired by i3wm.
[![Discord invite][discord-badge]][discord-link] [![Downloads][downloads-badge]][downloads-link] [![Good first issues][issues-badge]][issues-link]
GlazeWM lets you easily organize windows and adjust their layout on the fly by using keyboard-driven commands.
Installation • Default keybindings • Config documentation • FAQ • Contributing ↗
![Demo video][demo-video]
</div>🌟 Key features
- Simple YAML configuration
- Multi-monitor support
- Customizable rules for specific windows
- Easy one-click installation
- Integration with Zebar as a status bar
Installation
The latest version of GlazeWM is downloadable via releases. Zebar can optionally be installed as well via a checkbox during installation.
GlazeWM is also available through several package managers:
Winget
winget install GlazeWM
Chocolatey
choco install glazewm
Scoop
scoop bucket add extras
scoop install extras/glazewm
Contributing
Help fix something that annoys you, or add a feature you've been wanting for a long time! Contributions are very welcome.
Local development and guidelines are available in the contributing guide.
Default keybindings
On the first launch of GlazeWM, a default configuration can optionally be generated.
Below is a cheat sheet of all available commands and their default keybindings.

Config documentation
The default config file is generated at %userprofile%\.glzr\glazewm\config.yaml.
To use a different config file location, you can launch the GlazeWM executable with the CLI argument --config="...", like so:
./glazewm.exe start --config="C:\<PATH_TO_CONFIG>\config.yaml"
Or pass a value for the GLAZEWM_CONFIG_PATH environment variable:
setx GLAZEWM_CONFIG_PATH "C:\<PATH_TO_CONFIG>\config.yaml"
With the benefit of using a custom path being that you can choose a different name for the config file, such as glazewm.yaml.
Config: General
general:
# Commands to run when the WM has started (e.g. to run a script or launch
# another application).
startup_commands: []
# Commands to run just before the WM is shutdown.
shutdown_commands: []
# Commands to run after the WM config has reloaded.
config_reload_commands: []
# Whether to automatically focus windows underneath the cursor.
focus_follows_cursor: false
# Whether to switch back and forth between the previously focused
# workspace when focusing the current workspace.
toggle_workspace_on_refocus: false
cursor_jump:
# Whether to automatically move the cursor on the specified trigger.
enabled: true
# Trigger for cursor jump:
# - 'monitor_focus': Jump when focus changes between monitors.
# - 'window_focus': Jump when focus changes between windows.
trigger: "monitor_focus"
Config: Keybindings
The available keyboard shortcuts can be customized via the keybindings option. A keybinding consists of one or more key combinations and one or more commands to run when pressed.
It's recommended to use the alt key for keybindings. The Windows key is unfortunately a pain to remap, since the OS reserves certain keybindings (e.g. lwin+l).
keybindings:
# Command(s) to run.
- commands: ["focus --workspace 1"]
# Key combination(s) to trigger the keybinding.
bindings: ["alt+1"]
# Multiple commands can be run in a sequence (e.g. to move a window to a
# workspace + focus workspace).
- commands: ["move --workspace 1", "focus --workspace 1"]
bindings: ["alt+shift+1"]
Full list of keys that can be used for keybindings:
<details> <summary>Keys list</summary>| Key | Description |
| --------------------- | ------------------------------------------------------------------------- |
| a - z | Alphabetical letter keys |
| 0 - 9 | Number keys |
| numpad0 - numpad9 | Numerical keypad keys |
| f1 - f24 | Function keys |
| shift | Either left or right SHIFT key |
| lshift | The left SHIFT key |
| rshift | The right SHIFT key |
| control | Either left or right CTRL key |
| lctrl | The left CTRL key |
| rctrl | The right CTRL key |
| alt | Either left or right ALT key |
| lalt | The left ALT key |
| ralt | The right ALT key |
| lwin | The left ⊞ Windows logo key |
| rwin | The right ⊞ Windows logo key |
| space | The spacebar key |
| escape | The ESCAPE key |
| back | The BACKSPACE key |
| tab | The TAB key |
| enter | The ENTER key |
| left | The ← arrow key |
| right | The → arrow key |
| up | The ↑ arrow key |
| down | The ↓ arrow key |
| num_lock | The NUM LOCK key |
| scroll_lock | The SCROLL LOCK key |
| caps_lock | The CAPS LOCK key |
| page_up | The PAGE UP key |
| page_down | The PAGE DOWN key |
| insert | The INSERT key |
| delete | The DELETE key |
| end | The END key |
| home | The HOME key |
| print_screen | The PRINT SCREEN key |
| multiply | The * key (only on numpad) |
| add | The + key (only on numpad) |
| subtract | The - key (only on numpad) |
| decimal | The DEL key (only on numpad) |
| divide | The / key (only on numpad) |
| volume_up | The volume up key |
| volume_down | The volume down key |
| volume_mute | The volume mute key |
| media_next_track | The media next track key |
| media_prev_track | The media prev track key |
| media_stop | The media stop key |
| media_play_pause | The media play/pause key |
| oem_semicolon | The ;/: key on a US standard keyboard (varies by keyboard) |
| oem_question | The //? key on a US standard keyboard (varies by keyboard) |
| oem_tilde | The `/~ key on a US standard keyboard (varies by keyboard) |
| oem_open_brackets | The [/{ key on a US standard keyboard (varies by keyboard) |
| oem_pipe | The \/\| key on a US standard keyboard (varies by keyboard) |
| oem_close_brackets | The ]/} key on a US standard keyboard (varies by keyboard) |
| oem_quotes | The '/" key on a US standard keyboard (varies by keyboard) |
| oem_8 | The ``
Related Skills
himalaya
352.0kCLI to manage emails via IMAP/SMTP. Use `himalaya` to list, read, write, reply, forward, search, and organize emails from the terminal. Supports multiple accounts and message composition with MML (MIME Meta Language).
node-connect
352.0kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
taskflow
352.0kname: taskflow description: Use when work should span one or more detached tasks but still behave like one job with a single owner context. TaskFlow is the durable flow substrate under authoring layer
frontend-design
111.1kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
