Skip to content

Warn the agent skill off pulling graphical-session.target - #8257

Open
kkoontz wants to merge 1 commit into
omacom:quattrofrom
kkoontz:skill-uwsm-graphical-session
Open

Warn the agent skill off pulling graphical-session.target#8257
kkoontz wants to merge 1 commit into
omacom:quattrofrom
kkoontz:skill-uwsm-graphical-session

Conversation

@kkoontz

@kkoontz kkoontz commented Aug 25, 2026

Copy link
Copy Markdown

Why

UWSM owns graphical-session.target. Omarchy's shipped user units already start with that target (WantedBy=) and never Requires= or Wants= 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 prints A 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

  • Trigger the skill for user units, linger, and timers
  • Short safety note plus user-units.md, copying the pattern from $OMARCHY_PATH/default/systemd/user/
  • Point post-boot automation at omarchy hook install post-boot instead of pulling the session target

Reproduced with linger + a Persistent user timer + Requires=graphical-session.target: UWSM helper exits 1, Welcome to Hyprland never 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.

UWSM owns that target. Requires=/Wants= from a linger or Persistent
user unit starts an empty session and Hyprland never launches.
Copilot AI balanced review requested due to automatic review settings August 25, 2026 18:13

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants