My work

Hyprland plugin

Hyprspaces

Paired workspaces for Hyprland.

Keybinds

hyprspaces install sets up these binds. Don't like them? Change them in your Hyprland config or configure Hyprspaces manually.

Super 1 to 0
Switch every monitor to that pair
Super Shift 1 to 0
Move the window to that pair on its monitor
Super An arrow key
Move focus
Super Mouse wheel
Step through the pairs
Super Shift An arrow key
Move the window

Stream to Moonlight

  1. Connect from Moonlight

    Keep your monitors off

  2. A virtual display at your device's resolution

  3. Your workspaces move onto it

  4. Quit from Moonlight and the display goes away

Streaming needs hyprspaces-tools and Sunshine v2026.516.143833 or newer.

A theme to match

I made an Omarchy theme for it. Copy it into ~/.config/omarchy/themes/hyprspaces, then apply it with omarchy theme set hyprspaces.

A dark navy desktop in the Hyprspaces theme

See every change first

No need to break your system to find out if there's a compatibility issue.

$ hyprspaces install --dry-run
[hyprspaces-install] [dry-run] mkdir -p ~/.config/hypr
[hyprspaces-install] [dry-run] mkdir -p ~/.local/state/hyprspaces/install
[hyprspaces-install] [dry-run] cp ~/.config/hypr/hyprspaces-plugin.lua ~/.local/state/hyprspaces/install/hyprspaces-plugin.lua.20261030-215745.bak
[hyprspaces-install] backup: ~/.local/state/hyprspaces/install/hyprspaces-plugin.lua.20261030-215745.bak
[hyprspaces-install] [dry-run] write ~/.config/hypr/hyprspaces-plugin.lua
[hyprspaces-install] updated ~/.config/hypr/hyprspaces-plugin.lua
[hyprspaces-install] keeping existing non-managed ~/.config/hypr/hyprspaces-plugin-settings.lua
[hyprspaces-install] [dry-run] mkdir -p ~/.local/state/hyprspaces/install
[hyprspaces-install] [dry-run] cp ~/.config/hypr/hyprspaces-bindings.lua ~/.local/state/hyprspaces/install/hyprspaces-bindings.lua.20261030-215745.bak
[hyprspaces-install] backup: ~/.local/state/hyprspaces/install/hyprspaces-bindings.lua.20261030-215745.bak
[hyprspaces-install] [dry-run] write ~/.config/hypr/hyprspaces-bindings.lua
[hyprspaces-install] updated ~/.config/hypr/hyprspaces-bindings.lua
[hyprspaces-install] install complete
[hyprspaces-install] plugin lifecycle: HyprPM

Get Hyprspaces

It needs Hyprland 0.56.0 or newer with its Lua config, and HyprPM. If the plugin doesn't load, your usual Hyprland keybinds still work.

  • hyprpm add https://gitlab.com/jtaw5649/Hyprspaces
  • hyprpm enable hyprspaces
  • hyprpm reload -n
  • yay -S hyprspaces-tools
  • hyprspaces install