Open notifications in a web app window and mark them read on click - #10
Merged
Conversation
Opening a notification only launched the browser. Mark-as-read was also ignored while a refresh was running, so the bar stayed alarming until the next poll. Hide the thread immediately, queue the GitHub PATCH if a fetch is in flight, and keep an in-flight refresh from restoring it. Validation: - tests/panel-source-test.sh - tests/service-source-test.sh - tests/helper-test.sh Assisted-by: Grok/Grok 4.6
hideNotification destroyed the row immediately, so the click handler read an empty URL and skipped the browser launch. Snapshot the target, open it, then mark the thread. Validation: - tests/panel-source-test.sh - tests/service-source-test.sh - tests/helper-test.sh Assisted-by: Grok/Grok 4.6
Wayland mice often report a fake 1–2px pixelDelta alongside a real notch. Flickable preferred the pixel value, so the panel crawled. Use pixel scrolling only when it looks like a touchpad, and move about one row per accumulated 120° notch otherwise. Validation: - tests/panel-source-test.sh - tests/service-source-test.sh - tests/helper-test.sh Assisted-by: Grok/Grok 4.6
The handler lived on PanelKeyCatcher, so Flickable kept Qt's default 1–2px Wayland wheel distance and the faster step never ran. Handle wheel as a direct Flickable child, move one row per mouse notch, and scale touchpad pixel deltas. Validation: - tests/panel-source-test.sh Assisted-by: Grok/Grok 4.6
Qt.resolvedUrl percent-encodes the plugin path, so the fetch helper could not be launched from a directory containing spaces or non-ASCII characters.
The combined branch keeps opening links through omarchy-launch-webapp rather than xdg-open, so assert the launcher the panel actually uses and restore the assert_not_contains helper the dropped commit had provided.
This was referenced Aug 23, 2026
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.
Combines #7 and #9, both of which changed
openUrl()inPanel.qmland would have conflicted. Original commits are carried over with their authorship — 4 from @AnthonyPoschen, 2 from @shmall03.Clicking a notification now opens it and marks it read. Previously the row stayed put and the Octocat stayed lit until the next poll. The row is hidden immediately, the mark is queued behind any in-flight refresh so it can't be dropped, an in-flight fetch can't restore it, and a failed PATCH puts the row back. The check button and
mare unchanged — they still mark without opening.Links open in a dedicated web app window via
omarchy-launch-webapprather thanomarchy-launch-browser, which started a new uwsm unit per click. That helper targets Chromium-based default browsers and falls back tochromium.desktop; a machine with no Chromium-based browser installed won't open links.The mouse wheel moves about one row per notch. Flickable was applying a 1–2px
pixelDeltaon Wayland, and aWheelHandleronly intercepts that if it's a direct child of the Flickable.Also fixes
helperPath()to decode its resolved URL, so the fetch helper launches from paths containing spaces or non-ASCII characters.Dropped from the original PRs: the
xdg-openvariant in #9 (opposite direction to the web app window), and thelinkBehaviorsetting plus thehyprctl-based reuse-window script in #7.