Wait for real output before shell launch - #9527
Open
tbasten wants to merge 1 commit into
Open
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
This PR introduces a new omarchy-launch-shell-ready helper that delays launching the Omarchy shell until Hyprland reports at least one enabled non-placeholder output, improving reliability when logging in docked with the laptop lid closed.
Changes:
- Add
bin/omarchy-launch-shell-readyto wait for a real Hyprland output, reconcile clamshell state, then launch the shell (with a bounded fallback). - Update Hyprland autostart to launch the shell via the new helper instead of calling
omarchy-launch-shelldirectly. - Add a shell test that verifies readiness waiting behavior, fallback behavior, and the autostart wiring.
Reviewed changes
Copilot reviewed 2 out of 3 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
bin/omarchy-launch-shell-ready |
New helper that waits for a real Hyprland output before launching the shell, with bounded fallback. |
default/hypr/autostart.lua |
Switch autostart to use the display-ready shell launch helper. |
test/shell.d/launch-shell-ready-test.sh |
New test covering placeholder-waiting, bounded fallback, and autostart integration. |
Suppressed comments (1)
test/shell.d/launch-shell-ready-test.sh:75
- Same issue as above:
calls[0]/calls[1]will trigger an unbound-variable error if the helper fails before writing both log lines. Guarding on${#calls[@]}keeps the test output consistent and debuggable.
mapfile -t calls <"$call_log"
[[ ${calls[0]} == "omarchy-hyprland-monitor-clamshell" ]] ||
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
tbasten
force-pushed
the
fix-docked-clamshell-login
branch
from
September 1, 2026 02:02
5c9d629 to
a2c1c54
Compare
tbasten
force-pushed
the
fix-docked-clamshell-login
branch
from
September 1, 2026 02:15
a2c1c54 to
5864bae
Compare
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.
What changed
Launch Omarchy shell through a new
omarchy-launch-shell-readyhelper. The helper waits until Hyprland reports at least one enabled real output before starting the shell, then reconciles clamshell monitor state and launchesomarchy-launch-shell.If no real output appears after the bounded wait, it logs and falls back to launching the shell.
Why
When logging in docked with the laptop lid closed, Hyprland can start before the external display is fully available. Omarchy shell may then start against Qt's placeholder screen:
There are no outputs - creating placeholder screenThat leaves the user logged in but looking at a blank screen. Waiting for a real output before shell launch fixes the docked clamshell login path.
fixes #9529
Verification
bash ./test/shell.d/launch-shell-ready-test.shbash ./test/shell.d/bin-style-test.shbash ./test/clibash -n bin/omarchy-launch-shell-ready test/shell.d/launch-shell-ready-test.shgit diff --checkbash ./test/allwas also run. It still fails due to missing localomarchy-pkgscheckout /OMARCHY_PKGS_PATH, unrelated to this change.