Warn the agent skill off pulling graphical-session.target - #8257
Open
kkoontz wants to merge 1 commit into
Open
Conversation
UWSM owns that target. Requires=/Wants= from a linger or Persistent user unit starts an empty session and Hyprland never launches.
Contributor
There was a problem hiding this comment.
Pull request overview
Adds agent guidance preventing user units from pulling UWSM’s graphical session target.
Changes:
- Expands skill triggers for user units, timers, and linger.
- Adds systemd user-unit safety guidance.
- Recommends post-boot hooks for desktop automation.
Tip
If you aren't ready for review, convert to a draft PR.
Click "Convert to draft" or run gh pr ready --undo.
Click "Ready for review" or run gh pr ready to reengage.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
default/agents/skills/omarchy/user-units.md |
Documents safe user-unit patterns. |
default/agents/skills/omarchy/SKILL.md |
Adds triggers, routing, and safety warnings. |
default/agents/skills/omarchy/hooks.md |
Directs post-desktop automation to hooks. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Comment on lines
+7
to
+9
| UWSM owns `graphical-session.target`. Omarchy's shipped user units under | ||
| `$OMARCHY_PATH/default/systemd/user/` start *with* that target via | ||
| `WantedBy=graphical-session.target`. They never `Requires=` or `Wants=` it. |
Comment on lines
+50
to
+52
| After editing units: `systemctl --user daemon-reload`. Then | ||
| `systemctl --user show graphical-session.target -p RequiredBy` must not | ||
| list the job. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
UWSM owns
graphical-session.target. Omarchy's shipped user units already start with that target (WantedBy=) and neverRequires=orWants=it.Agents following generic systemd GUI examples write
Requires=graphical-session.target. That starts the target. If the user manager is already up (linger, a Persistent timer, an SSH session), UWSM printsA compositor or graphical-session* target is already active!and refuses to start Hyprland. Plymouth has quit; the screens stay black until the next boot.The installed agent skill did not mention this, and its triggers did not include
~/.config/systemd/user/, so the skill often never loaded for that work.What
user-units.md, copying the pattern from$OMARCHY_PATH/default/systemd/user/omarchy hook install post-bootinstead of pulling the session targetReproduced with linger + a Persistent user timer +
Requires=graphical-session.target: UWSM helper exits 1,Welcome to Hyprlandnever appears. An immediate reboot (timer already consumed) starts normally.This is additive against current quattro. #6718 rewrites the skill more broadly; happy to rebase or fold into that if preferred.