Dome is my take on a tiling window manager for macOS and Windows, with a bunch of features that might only matter and make sense to me.
Windows (Scoop)
scoop bucket add dome https://github.com/l0ngvh/scoop-dome
scoop install dome-nightlymacOS (Homebrew)
brew install --cask l0ngvh/homebrew-dome/dome-nightlyOr build from source with a Rust toolchain:
git clone https://github.com/l0ngvh/Dome
cd Dome
cargo install --path .Once installed, start Dome from your system launcher, or run dome from the
command line.
| Key | Action |
|---|---|
| Alt + H / J / K / L | Focus left/down/up/right |
| Alt + Shift + H / J / K / L | Move window left/down/up/right |
| Alt + 0-9 | Focus workspace 0-9 |
| Alt + Shift + 0-9 | Move window to workspace 0-9 |
| Alt + Ctrl + H / J / K / L | Focus monitor left/down/up/right |
| Alt + Ctrl + Shift + H / J / K / L | Move window to monitor left/down/up/right |
| Alt + Shift + Space | Toggle floating |
| Alt + F | Toggle fullscreen |
| Alt + W | Toggle split/tabbed layout |
| Alt + Return | Open a terminal |
| Alt + Shift + Q | Close focused window |
| Alt + Shift + E | Exit Dome |
See Configuration.
Dome can remember how a workspace is arranged and restore it the next time those windows open:
dome save-layoutThat writes the arrangement to the layout.lua file in your configuration
folder:
---@type dome.Layout
return {
["Built-in Retina Display"] = {
["dev"] = {
layout = "partition_tree",
tree = {
split = "horizontal",
children = {
{ app = "Ghostty" },
{ app = "Firefox" },
},
},
float = { { app = "System Settings" } },
},
},
}You can edit it by hand to refine a rule, for example title = "/Picture in Picture/" to match a window with a regular expression. After you edit the
file, run dome apply-layout.
Dome draws a lot of inspiration from these awesome WMs and likely wouldn't exist without them:
Dome is released under the MIT License.