-
Notifications
You must be signed in to change notification settings - Fork 0
Workspaces and windows
Each space owns a contiguous range of real Hyprland workspaces. Personal gets 1 to 10, work gets 11 to 20. Windows are never moved when you switch, which is what makes switching instant and free of races.
"Workspace 1" means a different real workspace depending on which space is active. That is the isolation. Open a terminal on slot 1 in personal, switch to work, and slot 1 there is empty.
omarchy-spaces windows* Personal (personal) real workspaces 1-10
slot 1 foot ~/notes
slot 3 brave-browser Inbox
HiScale (work) real workspaces 11-20
slot 1 Slack #engineering
Anything sitting outside every range is listed separately.
The numbers are slots within the active space, not real workspace ids. That is what keeps the higher ranges reachable without inventing keys for 11 to 20.
| Keys | Action |
|---|---|
| SUPER + 1 to 0 | Go to slot 1 to 10 of the active space |
| SUPER + SHIFT + 1 to 0 | Move the focused window to that slot |
| SUPER + ALT + SHIFT + P | Send the focused window to personal |
| SUPER + ALT + SHIFT + W | Send the focused window to work |
| SUPER + CTRL + ←/→ | Previous / next workspace, inside this space |
| SUPER + CTRL + SHIFT + ←/→ | Move the window there |
SUPER + SHIFT + 1 in work moves the window to real workspace 11. The same
keystroke in personal moves it to real workspace 1.
These replace Omarchy's own SUPER+1..0 and SUPER+SHIFT+1..0, so
hypr/spaces.lua unbinds them first.
SUPER + CTRL + arrows steps to the next or previous workspace within the
active space, wrapping at the ends of its range. In work, going back from
slot 1 lands on slot 10, real workspace 20, rather than escaping into personal.
Do not use Hyprland's e+1 and e-1 for this. They walk every workspace on
the machine and know nothing about ranges, so from work's real workspace 11 the
previous workspace is real 6 or wherever personal last had a window. That was
the original behaviour here and it is exactly the bug.
omarchy-spaces workspace next
omarchy-spaces workspace prev
omarchy-spaces move-to-workspace nextOccupied slots are preferred, the way e+1 skips empty workspaces, so
navigation does not trudge through unused slots. When nothing else in the range
holds a window it steps by one instead.
This is the common case. A link opens a browser window in personal while you are working.
omarchy-spaces move-to-space workThe window leaves silently, so you stay where you are. Add --follow to go with
it. Add a slot number to choose where it lands:
omarchy-spaces move-to-space work 3
omarchy-spaces move-to-space work 3 --followWithout a slot it keeps the same slot number it was already on, so a window on personal slot 2 lands on work slot 2.
By default these act on the focused window, which is what a hotkey wants. For
scripts, pass an address from hyprctl clients:
omarchy-spaces move-to-space work --address 0x55c562ebb0f0Offsets are derived from each space's position in the list, so this works with no configuration. To pin them:
"workspaces": { "offset": 20, "count": 5 }offset is the workspace before the first slot, so offset 20 with 5 slots means
real workspaces 21 to 25. omarchy-spaces validate fails if two spaces claim
the same real workspace.
{ "workspaceIsolation": false }at the top level of the config. Switching then leaves your workspace alone and only changes notifications, browser, and appearance.
The bundled workspace widget numbers by slot, so the bar reads 1 to 10 in every space and matches the numbers you press.

It is not enabled by default, because switching it on means switching off
Omarchy's own. Run ./install.sh --replace-workspaces, and see
Installation for what changes.
Omarchy's own widget only accepts workspace ids 1 to 10, so in a second space it cannot show where you are at all:
