fix(tray): prefer libayatana-appindicator-glib when available (#1019)

Use the maintained AyatanaAppIndicatorGlib 2.0 indicator when it is installed, mirroring the existing Gtk.Menu into a Gio.Menu whose actions keep stable, never-reused names and fire the original items. Fall back to the GTK 3 indicators otherwise; the AppImage stays on its bundled GTK 3 indicator, and the .deb recommends the glib typelib.

Fixes #1013
This commit is contained in:
Jatin K Malik
2026-10-25 14:49:34 -07:00
committed by GitHub
parent 9b4aded3a2
commit 750d64dc9b
10 changed files with 730 additions and 59 deletions
+8
View File
@@ -214,6 +214,14 @@ def test_host_tools_are_recommended_in_both_formats() -> None:
assert tool in deps["rpm"]["recommends"], f"{tool} missing from rpm recommends"
def test_deb_recommends_the_appindicator_glib_tray_backend() -> None:
"""The tray prefers libayatana-appindicator-glib; the GTK 3 typelib stays a
hard dependency so Debian 12, which lacks the glib one, still installs."""
deps = _nfpm()["overrides"]["deb"]
assert "gir1.2-ayatanaappindicatorglib-2.0" in deps["recommends"]
assert "gir1.2-ayatanaappindicator3-0.1" in deps["depends"]
def test_the_pins_are_digests_rather_than_names() -> None:
for name, (kind, value, source) in _pins().items():
if kind == "sha256":