An Omarchy shell plugin (Quickshell) for Hyprland that snapshots your window layout and brings it back on demand as named profiles.
This is a fork of Davedes83/workspace-restorer, with additional features (window grouping, snapshot notes, theme/plugin-sharing on restore, and various fixes) not yet merged upstream. Use the install instructions below to get this fork rather than the original.
- Snapshot — Capture every open window: app, workspace, screen position, size, floating/fullscreen state, and working directory
- Restore — Re-launch missing apps directly onto the exact workspace they were on; move already-running windows back to the right workspace
- Conflict Detection — Avoids duplicate spawns; repositions existing windows instead of relaunching them
- Layout Restoration — Restores floating and fullscreen state for matched and spawned windows
- Window Grouping — Captures which windows were tabbed together and reforms the same groups on restore (best-effort; most reliable for floating window groups)
- Snapshot Notes — Add an optional multiline note when saving, shown as a preview under each profile in the list
- Sharing — Snapshots capture your current Omarchy theme and enabled third-party plugins; restore applies what it can locally and offers to install whatever's missing (theme, plugins, or AUR packages the shell needs) so a shared profile can look and work right elsewhere. A "Copy" action per profile copies its file path for sharing.
- Desktop Notifications — Feedback on snapshot/save/restore/delete actions
omarchy plugin add https://github.com/cognominal/workspace-restorer.git --enableThen add the plugin to your ~/.config/omarchy/shell.json:
{
"bar": {
"layout": {
"right": [
{ "id": "davedes.workspace-restorer" }
]
}
}
}Restart the shell:
omarchy restart shellomarchy plugin remove davedes.workspace-restorer(The id stays davedes.workspace-restorer regardless of which fork you installed from — it's set in manifest.json, not tied to the GitHub repo.)
- Click the bar widget to open the panel
- Click Take Snapshot to capture your current window layout
- Enter a name for the profile (e.g., "coding", "media")
- Click a profile name to restore that layout
- Click the delete action to remove a profile
- Snapshots are saved as JSON profiles in
~/.config/omarchy/workspace-restorer/ - State is captured via
hyprctl -j clientsandhyprctl -j monitors - Command line and working directory are read per-process from
/proc/<pid>(keyed by PID, so window data never misaligns) - Restore uses the Omarchy Lua bridge (
hl.dsp.*dispatchers) viahyprctl dispatchto move windows and workspaces, since plain Hyprland command syntax is unavailable through the bridge - Missing windows are launched by focusing their target workspace first, then starting the app — so each opens directly where it belongs
- A detached safety pass re-checks spawned windows and corrects any that ignore the focused workspace, without delaying the restore notification
- Omarchy Linux
- Hyprland compositor
- Quickshell (for the shell framework)
MIT
