Skip to content

notificationDaemon: resolve native desktop-entry hints without a PID match - #14090

Open
jkramer5103 wants to merge 2 commits into
linuxmint:masterfrom
jkramer5103:oss-notification-desktop-entry-20261029
Open

jkramer5103 wants to merge 2 commits into
linuxmint:masterfrom
jkramer5103:oss-notification-desktop-entry-20261029

Conversation

@jkramer5103

@jkramer5103 jkramer5103 commented Oct 29, 2026 •

Copy link
Copy Markdown

Notifications from native applications without a tracked PID/window can still use a generic icon even after e225755: Source._getApp() only resolves the desktop-entry hint through the Flatpak-only application table. Resolve the desktop-file ID first, accepting hints with or without .desktop, then retain the existing Flatpak, browser-alias, name and tray fallbacks. PID matches retain priority.

Related to #14070. This addresses the remaining native-app lookup case; it does not duplicate the app-icon fallback already on master or claim to reproduce every reported Slack/Geary notification.

The standalone test was removed from the PR at the maintainer's request. The final diff contains only the eight-line source change.

Validation performed locally before removing the test:

  • node tests/unit/notificationDaemon.js passes against the real module with GI/UI boundaries stubbed. Covers native desktop hints, source and notification icons, explicit icon priority, PID precedence, Flatpak IDs/browser aliases, unique/ambiguous names, unknown/missing hints, urgency icons and tray lookup.
  • The same test against unchanged upstream fails at the first native-app identity assertion (null instead of the native app).
  • node --check js/ui/notificationDaemon.js and git diff --cached --check pass. Staged diff reviewed and scanned for common credential patterns.
  • Test processes ran in a verified systemd cgroup with memory.max=1073741824 and memory.swap.max=0, one process at a time.

Limitations: the local standalone proof is not included in the submitted changes. No full build, real GI/CJS session, D-Bus integration test or live UI screenshots; Cinnamon/CJS and a desktop session are unavailable in this environment. Visual behavior remains unverified.

@mtwebster

Copy link
Copy Markdown
Member

Please don't include tests

@jkramer5103

Copy link
Copy Markdown
Author

Removed the standalone test in 55f2ada. The PR now contains only the eight-line notification lookup change; the description retains the local validation results.

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