Glide is a tiling window manager for macOS. It takes inspiration from window managers like i3, Sway, and Hyprland.
glide_demo.mov
Integrates with Spaces: Adopt incrementally, using Mission Control and moving between spaces as you normally would.
Keyboard focused; trackpad enhanced: Bring the responsiveness of tiling window managers to macOS. Resize interactively. Speed up trackpad use with mouse-follows-focus and focus-follows-mouse.
Adapts to your environment: Customize your layout as you move between external monitor and on the go.
Reliable architecture: Made with years of experience building window managers for macOS.
Supports animations, too!
Quick start
brew install glide
glide launch
Note: If you don't have Homebrew, see the "manual installation" section below.
The first time you do this, you will have to follow instructions to enable Accessibility permissions.
Important
Glide requires "Displays have separate Spaces" to be turned on to work properly with multiple monitors. This is the default on macOS. You can check it under System Settings → Desktop & Dock → Mission Control. If you change it, you must log out and back in for it to take effect.
Once Glide is running, press Alt+Z (Option+Z on Mac keyboards) to start managing the current space. Note: This will resize all your windows! To stop managing the space, press Alt+Z again.
See glide.default.toml for a list of key bindings. You can customize these by
creating a config file at ~/.config/glide/glide.toml (or ~/.glide.toml) and either restarting Glide or running the following:
Tip
To apply changes as you save, add the --watch flag: glide config update --watch.
To exit Glide, type Alt+Shift+E (Option+Shift+E on Mac keyboards).
Note
Mac keyboard note: Throughout this documentation, "Alt" refers to the Option (⌥) key on Mac keyboards.
Save and restore
If you need to update Glide or restart it for any reason, exit with the
save_and_exit key binding (default Alt+Shift+E / Option+Shift+E). Then, when starting again,
run it with the --restore flag:
Note that this does not work across machine restarts.
Running Glide at login
To install Glide as a service to run at login, use:
Manual installation
Download the latest release from the releases page.
Open the disk image and install Glide by dragging it into Applications. I recommend installing the glide CLI; you can do this by running in a terminal:
sudo ln -s /Applications/Glide.app/Contents/MacOS/glide /usr/local/bin
Launch the app using the CLI or with Finder.
Building from source
First, install Rust and make sure you have the latest Xcode command line tools installed.
Then, run the following:
git clone https://github.com/glide-wm/glide
cd glide
cargo run --release
The first time you do this, you may have to follow instructions to enable Accessibility permissions. Instead of enabling them for Glide, enable them for whatever application your terminal is running in.
Acknowledgements
Glide builds on the work of many who came before. Yabai contains a wealth of information about the tricks and techniques needed to write window managers on macOS. objc2 and related crates make it possible for Glide to be written in Rust. tracing provides tree-structured logging to follow the complex asynchronous flows that are inherently required in a macOS window manager like Glide.
Contributing
New contributions are welcome, whether they are filing an issue, improving docs, or writing code. See CONTRIBUTING.md to get started.
License and usage notes
Licensed under either of Apache License, Version 2.0 or MIT license at your option.