Skip to content

fix: support standalone GNOME tray integration - #3297

Open
SiriusCrain wants to merge 5 commits into
gitify-app:mainfrom
SiriusCrain:feat/gnome-extension
Open

SiriusCrain wants to merge 5 commits into
gitify-app:mainfrom
SiriusCrain:feat/gnome-extension

Conversation

@SiriusCrain

@SiriusCrain SiriusCrain commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

Summary

GNOME Wayland users can install the standalone Gitify extension from System settings. Gitify no longer bundles an installer or manages the extension over IPC.

Idle tray appearance now offers Automatic, Light and Dark. Automatic uses macOS template rendering, follows the Windows system/taskbar theme, and uses a light fallback on Linux, where Electron cannot reliably report the panel appearance. Users with light Linux panels can select Dark. The selection is independent of Gitify's app theme and updates immediately; unread, offline and error states are preserved when the system theme changes. Existing saved white-icon choices and prior default behavior are migrated.

Closes #3296.

Validation

  • 1,537 tests passed, including preference migration, platform selection, live theme updates, manual overrides and notification-state preservation. TypeScript, lint/format and production build passed.
  • A real GNOME 50 compositor with AppIndicator and an Electron probe running the compiled tray handlers verified light-on-black, dark-on-white and the automatic Linux fallback. All three produced 50 contrasting pixels in the tray icon region while switching in the same process.
  • The earlier packaged-app test verified GNOME 50 window placement, close/reopen and anchoring after moving the tray icon. Reproduction instructions.
  • Windows and macOS automatic selection is unit-tested; native desktop validation on those platforms remains outstanding. Linux panel contrast was exercised with controlled black and white backgrounds, not every desktop theme.
  • GNOME 46 Electron reopening still produces a zero-sized window even without the extension. The standalone extension currently targets GNOME 50.

@github-actions github-actions Bot added the enhancement New feature or enhancement to existing functionality label Sep 8, 2026
afonsojramos added a commit to gitify-app/gnome that referenced this pull request Sep 8, 2026
Move the GNOME Shell extension proposed in gitify-app/gitify#3297 into its
own repository so it can be reviewed and distributed through
extensions.gnome.org instead of being bundled inside the Electron app.

Extension changes relative to the original:
- UUID is gitify@gitify.io to match the project domain.
- Declares GNOME Shell 45 through 50; the ESM extension API is stable
  across that range.
- Cancels pending placement timers when a window is unmanaged, so a
  window hidden before the last retry is never touched after the shell
  has released it.
- Skips maximized, fullscreen, and zero-sized frames.
- Iterates the pending map directly on disable.

Tooling mirrors the main repository: Vite+ for lint and format, CI with
actionlint and a bundle job, zizmor, release-please with the packed zip
attached to each GitHub release, and Renovate. pnpm's built-in `pack`
command shadows script names, so the bundle script is called `bundle`.

Co-authored-by: Yuriy Matskanyuk <yuriy.matskanyuk@gmail.com>
@afonsojramos afonsojramos changed the title feat: Bundle and install Gnome extension for correct window position fix: support standalone GNOME tray integration Sep 16, 2026
@github-actions github-actions Bot added bug Something isn't working and removed enhancement New feature or enhancement to existing functionality labels Sep 16, 2026
Replace the GNOME-specific default with automatic, light and dark idle icon
choices. Follow the Windows system theme and macOS template rendering, with
an explicit light fallback on Linux. Preserve saved icon preferences and
refresh immediately on preference and native theme changes without losing
notification state.
@afonsojramos

Copy link
Copy Markdown
Member

@SiriusCrain can you give it a go now? I've done some testing, and I believe that this achieves the goal perfectly. I've already submitted the extension, but I am still waiting for review feedback.

@afonsojramos

Copy link
Copy Markdown
Member

Thanks for the PR btw <3

@SiriusCrain

Copy link
Copy Markdown
Contributor Author

@SiriusCrain can you give it a go now? I've done some testing, and I believe that this achieves the goal perfectly. I've already submitted the extension, but I am still waiting for review feedback.

Hi, sure, what do you need help with? Install new version of extension or app build as well?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Development

Successfully merging this pull request may close these issues.

Gnome extension support

2 participants