Auto Workspace
Auto-launch apps on workspaces at boot/login for Omarchy Quattro + Hyprland.
Assign YouTube to workspace 1 so it always opens there, put Code + Terminal on workspace 2, etc. Supports multiple apps per workspace, silent launch, and per-boot dedup.
Install
omarchy plugin add https://github.com/yesheytenzin/auto-workspace.git --enable
# or manual drop-in for dev:
mkdir -p ~/.config/omarchy/plugins/tenzin.auto-workspace
cp -r /path/to/auto_workspace/* ~/.config/omarchy/plugins/tenzin.auto-workspace/
omarchy-shell shell rescanPlugins
omarchy plugin enable tenzin.auto-workspace
# bar widget appears in left section; move if desired:
omarchy bar move tenzin.auto-workspace --section left
Usage
- Click the icon in the bar (left) → Auto Workspace panel.
- Click + Add, pick workspace 1-10, type name + command/URL, choose type:
- App —
.desktopExec likecode,spotify,foot,chromium - Web App — URL like
https://youtube.com(usesomarchy-launch-webapp) - Custom — raw command as-is
- App —
- Add to WS — saved to
~/.local/state/omarchy/auto-workspace/config.json(legacy plugin-folder config is auto-migrated). - Click Launch all to test now, or
↗on a single rule. On next boot/login it launches automatically.
Tips:
- Centered panel: icon may be left/center/right — panel always opens centered (
centerOnBar: true, 720 wide) for a full workspace overview. - Workspace list (1-10): each WS shows count, assigned apps, and a live preview. Expand a WS to see its apps, drag tiles to reorder launch order or drag between workspaces to move assignments — preview updates live (dwindle mock for 1-4 apps, grid for >4). Hypr live preview (maybe): shows
● live N+ chips for windows currently on that WS fromhyprctl clients -j(polls every 2s when open), updates as you launch/move windows. - Multiple apps on same workspace → they tile/float per that workspace's Hyprland layout. Preview follows the selected workspace. The ⇄ dwindle/scrolling button sets this workspace only (same persist path as Super+L:
~/.local/state/omarchy/workspace-layouts/<id>.lua). - Use filter box to pick from installed
.desktopapps quickly. - Per-workspace launch is
hyprctl eval 'hl.exec_cmd("[workspace N silent] <cmd>")'— doesn't steal focus. - Launch timing is now per-app by type:
Web App(Chromium zygote) defaults toOnce per boot(no duplicate on rescan),App(native foot/ghostty/code) defaults toEvery restart(closed windows come back),Customdefaults toOnce per boot. Change viaOnce/Everytoggle per row orLaunch: Once per boot / Every restartwhen adding.
Config
~/.local/state/omarchy/auto-workspace/config.json:
{
"version": 1,
"settings": {
"enabled": true,
"launchDelayMs": 800,
"staggerMs": 400,
"silent": true,
"onlyOnBoot": true
},
"assignments": [
{ "id": "aw-...", "workspace": 1, "name": "YouTube", "command": "https://youtube.com", "exec": "omarchy-launch-webapp 'https://youtube.com'", "type": "webapp", "enabled": true, "onlyOnBoot": true },
{ "id": "aw-...", "workspace": 2, "name": "Foot", "command": "foot --app-id=foot-work", "exec": "foot --app-id=foot-work", "type": "app", "enabled": true, "onlyOnBoot": false }
]
}
CLI
Helper script at ~/.config/omarchy/plugins/tenzin.auto-workspace/auto-workspace.sh:
auto-workspace.sh --status
auto-workspace.sh --list-apps
auto-workspace.sh --launch 1 "chromium --app=https://youtube.com"
auto-workspace.sh --launch-all
auto-workspace.sh --force-launch-all
omarchy-shell -q tenzin.auto-workspace launchAll
omarchy-shell -q tenzin.auto-workspace forceLaunchAll
omarchy-shell -q tenzin.auto-workspace status
How it works
Service.qml(kindservice) runs on shell start (Component.onCompleted). It ensures config exists, then afterlaunchDelayMsspawnsauto-workspace.sh --launch-allviaProcess. RespectsonlyOnBootby remembering/proc/sys/kernel/random/boot_idin~/.local/state/omarchy/auto-workspace/last_boot_idand dedups againsthyprctl clients -j.BarWidget.qml+Panel.qml(kindbar-widget) provides the management UI. No sudo, no network.
Update
omarchy plugin update tenzin.auto-workspace
# update all plugins
omarchy plugin update
Remove
omarchy plugin remove tenzin.auto-workspace
rm -rf ~/.config/omarchy/plugins/tenzin.auto-workspace ~/.local/state/omarchy/auto-workspace
License
MIT