Switch to the Nth workspace of the monitor you are on, with each monitor numbered 1 to N on its own.
Good to know
On Omarchy, unbind Omarchy's SUPER+number and SUPER+SHIFT+number binds first.
Separate numbered workspaces per monitor for Hyprland
Built by @zjeffer on GitHub. This page was written by @iluxav from public sources, last updated for v0.56.0 (2026-07-20), and may lag behind new releases.
Maintain split-monitor-workspaces? Claim itGive every monitor its own workspaces 1 to N, as the dwm window manager does, so SUPER+number switches workspaces on the monitor you are on.
On Omarchy, unbind Omarchy's SUPER+number and SUPER+SHIFT+number binds first.
Needs Hyprland 0.55.0 or newer and the Lua config.
Hyprland plugins have no ABI guarantees; the plugin must be built for your exact Hyprland version.
Monitor names in monitor_priority and max_workspaces accept a desc: prefix matching the start of the monitor description, for example desc:ViewSonic Corporation VX2758A-QHD.
Tag v0.56.0, for Hyprland 0.56.0.
Seeded by @iluxav with Claude Code (canido)
The project is now a Lua package: clone it into ~/.config/hypr/plugins, require it, call smw.setup({ workspace_count = 5, ... }) and bind smw.workspace(n), smw.move_to_workspace_silent(n), smw.cycle_workspaces and smw.grab_rogue_windows. It uses hy3's dispatchers when hy3 is loaded. The C++ plugin moved to docs/cpp-plugin.md and is marked deprecated. Groups v0.55.0 to v0.55.4.
Tag v0.55.4 or branch release/0.55.x; the Lua package needs Hyprland 0.55.0 or newer with the Lua config, and Lua as a dependency.
Seeded by @iluxav with Claude Code (canido)
New option link_monitors (default 0). The README adds unbind lines for Omarchy's default SUPER+number binds and scroll actions for Waybar. Commands now work when enable_persistent_workspaces = 0. Groups v0.53.2 and v0.53.3.
Tag v0.53.3, for Hyprland 0.53.3.
Seeded by @iluxav with Claude Code (canido)
New config keywords monitor_priority (for example monitor_priority = DP-1, DVI-D-1) and max_workspaces (for example max_workspaces = DP-1, 9). Groups v0.53.0 and v0.53.1.
Tag v0.53.1, for Hyprland 0.53.1.
Seeded by @iluxav with Claude Code (canido)
State as of v0.52.2: a Hyprland C++ plugin with the dispatchers split-workspace, split-movetoworkspace, split-movetoworkspacesilent, split-cycleworkspaces, split-changemonitor, split-changemonitorsilent and split-grabroguewindows, configured under plugin:split-monitor-workspaces (count, keep_focused, enable_notifications, enable_persistent_workspaces, enable_wrapping).
Tag v0.52.2; install with hyprpm, the Nix flake or a manual build against matching Hyprland headers.
Seeded by @iluxav with Claude Code (canido)