+---------+
| o o |
| ~ |
+----+----+
/| |\
\|_________|/
|| ||
_|| ||_
Named-desk overlay for Omarchy Quattro. A desk is the current 1–10
workspaces, given a name. Switching parks this room onto named special
workspaces special:omadesk-<id>-N (the same kind of hidden space as
the scratchpad, so Super+Tab never lands there) and brings the other
room back onto 1–10. Each workspace is put back on the monitor it was
on; a missing display is skipped. The bar still shows 1 2 3. The
scratchpad itself (special:scratchpad) stays global and is never
parked, restored, or stored.
Live truth while the session is alive is parked window addresses. Two
Chromiums on two workspaces work during the day because we move those
addresses. A save stores class, exec, Chromium profile, terminal cwd and
command, and window size. After a reboot, switching into that desk
relaunches those windows (chromium --profile-directory=… --new-window,
a terminal with its directory and command, floating size and position).
Workspace tiles show the tiled layout from window geometry, with app
icons, two per row at the monitor's aspect ratio.
omarchy plugin add https://github.com/modoterra/omadesk.git --enableFrom this checkout:
omarchy plugin add /home/hallas/Work/modoterra/omadesk --enableThere is no installer script. The plugin is QML + JavaScript only.
Put the chip next to the stock workspace numbers:
omarchy bar move com.mdtrr.omadesk --section leftomarchy-shell shell toggle com.mdtrr.omadeskSuggested bind: Super+D. Super+Space stays the Omarchy menu. Super+Shift+D is Omarchy’s Docker TUI, so this plugin does not take that key.
o.bind("SUPER + D", "Desks", "omarchy-shell shell toggle com.mdtrr.omadesk")| Key | Action |
|---|---|
| Super+D | toggle overlay |
| / | start filter (Esc leaves) |
| j / k, arrows, h l | move cursor |
| 1–9 | jump to card |
| click a workspace tile | switch onto that workspace |
| drag a window pane onto another tile | move that window on this desk |
| drag a pane onto Empty | put it on the next free workspace |
| D / L in the workspace header | toggle dwindle and scrolling |
| enter | switch, or return to Unsaved |
| n | save current as a named desk |
| s | update desk you are on |
| r | rename (display name; parking id stays) |
| e | extras (DND Leave/On/Off, launch missing after reboot, theme Leave or Set) |
| del | forget, with confirm (parked windows return to 1–10) |
| esc | close (clear filter first if any) |
omarchy plugin remove com.mdtrr.omadeskRecipes live in ~/.config/omarchy/omadesk/desks.json. Forget deletes the
recipe and brings that desk's parked windows back onto 1–10. A live desk
still has windows (on 1–10 or parked). A dead desk is recipe only.
Switching into it after a reboot launches the saved windows if Launch
Missing is on.
Theme extras can leave the current theme or run omarchy theme set. On the
desk you are on, that set runs as soon as you pick it. On another desk it
runs when you switch in.
node tests/test_model.js
omarchy plugin validate .
qmllint -I "$OMARCHY_PATH/shell" Overlay.qml BarWidget.qmlPlugins run unsandboxed inside the long-lived Omarchy shell process, with
your user permissions. Review the code before you enable it. Hyprctl is
the only command used to move windows; apps are launched with uwsm-app.
Use common sense and decency. There is no formal code of conduct. We reserve the right to moderate this community to the extent of the law and the policy of the host. Write community@modoterra.xyz if you need us.
