Omarchy 4 prep: Quickshell shell migration, menu selector compatibility, resume monitor, QML lint workflow#23
Omarchy 4 prep: Quickshell shell migration, menu selector compatibility, resume monitor, QML lint workflow#23timmo001 wants to merge 51 commits into
Conversation
|
@copilot add a github workflow (based on the others in terms of formatting) to validate quickshell files. something like qmllint or similar could work here. Put it in a dedicated workflow seperate from the dot build workflow, this will be dedicated to quickshell or qml (qt meta language) |
Added a dedicated |
9aca7ba to
9dd47f0
Compare
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Fresh init only set OMARCHY_HOST transiently for its own process and never enabled the resume recovery monitor, so a clean install left dot doctor warning about an unset host and a disabled service. - Write OMARCHY_HOST to /etc/environment during init (idempotent), so pam_env exposes the selected host to the graphical session, status scripts, and dot doctor without a transient env. - Enable dot-on-resume-monitor.service alongside the doctor startup timer, generalising the enable logic into a shared enableUserUnit.
dot stow and dot install unstowed each package before restowing, which briefly removed every hypr symlink (hyprland.lua included). Hyprland's live-config autoreload caught the gap and dropped into emergency mode. Skip the unstow-then-restow for the hypr package only (plain stow and stow --adopt stay idempotent on correct links) and reload Hyprland afterwards. Other packages keep the existing behaviour. Sync the hypr-stow notes in AGENTS, README, and the dotfiles-stow skill.
Regenerate the dot command reference for the dropped Waybar and Secret Service doctor checks, and update the prose: drop the waybar Omarchy repo from the managed repo lists and init paths, switch the bar-agnostic git examples to the Omarchy 4 Quickshell bar, and remove the status-bar module-wiring claims that dot doctor no longer verifies.
Summary
Prepares and carries out the shell-and-bar half of the Omarchy 4 Quickshell migration: relocates the Home Assistant bar producer, adds reusable Quickshell bar-widget plugins, generates the per-host
shell.jsonon stow, removes Waybar from thedottooling, and keeps menu selection, the resume monitor, and a QML lint workflow in place. The bar migration is VM-validated.Supersedes #12 (closed) and the earlier #11. Rebased onto the current
distro/arch-omarchy.Migration plan and remaining work:
dot-migration/omarchy-quickshell/README.mdComplete
Quickshell bar migration (VM-validated)
ha-bar-modulerelocated from the Waybar repo for Quickshell (parent detection, noWAYBAR_*env)timmo.commandandtimmo.stream-commandreusable bar-widget plugins (per-class colours, hide classes, click actions, IPC refresh, grey loading placeholder)~/.config/omarchy/shell.jsonauto-generated ondot stow(dot/src/lib/omarchyShellConfig.ts), built-ins mapped through, custom widgets instantiated with their command/clicks/colourstimmo.*widgets rather than the built-in command moduleon-resumeIPC refresh; git watcher cache/lock reset preservedWaybar removal
dot(repo sync, doctor checks, git-diff cache) and remaining launch/cache leftovers cleaned up; thetimmo001/omarchy-waybarrepo is retained but no longer clonedShell-script and tooling compatibility
menu_select()helper intwitch-menu,workspace-menu,workspace-relayout, targeting Omarchy 4 only (Walker fallback dropped)on-resume-monitordbus sleep/wake monitor plusdot-on-resume-monitor.service, with adot doctorcheck for script and unit presence/enablementcheckRequiredUserUnitSetuphelper (no behaviour change)CI and docs
.github/workflows/quickshell-lint.ymlrunsqmllintover all*.qml(module-dependent categories disabled so genuine syntax errors still fail)What's left
Tracked in the linked migration plan, not in this PR:
timmo001/omarchy-hypr)omarchy-quickshellrepo layout, upstream PR status, git-modules-as-QML-plugin, HA-streaming approach, shared vs per-host config)current-next-eventicons are currently baked intoha-bar-module; they should move into bar config (Quickshell widget config here, Waybarformaton the default branch)Validation
bash -npasses on all modified shell scriptsbunx tsc --noEmit,bun run build, andbun run formatall passqmllint(module-dependent categories disabled) passes on both QML widgets; an intentional syntax error was confirmed to faildot doctorclean