Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Optionally use AppIndicator for system tray #315

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

trigg
Copy link
Contributor

@trigg trigg commented Jun 18, 2024

Adds extra codepath to use libappindicator to show system tray icon

Benefits:

  • Icon will show on wayland panels
  • Icon should show even when abaddon is running in a container (although I've not proven this with a test) Tested in distrobox
  • AppIndicator silently switches between itself and GTK StatusIcon depending on what panel is available

Downsides:

  • AppIndicator only uses a menu, no direct left-click callback

Other considerations:

  • I am completely unable to test this on Windows or Mac. I believe the conditional CMake setup won't break those but I know almost nothing about CMake.
  • I've successfully tested on Arch, Debian and Ubuntu. Both with and without libappindicator installed.
  • Code consistency. I tried to auto-format to keep it in line, but that only broke it more. Please point out corrections I must make.

Packaging:

  • Ubuntu/Debian apt install libappindicator3-dev
  • Arch pacman -S libappindicator-gtk3
  • Fedora untested

- Alternative codepath for appindicator where possible
@ouwou
Copy link
Member

ouwou commented Jun 21, 2024

is there any reason someone might want to not use appindicator even if they have it installed? idk if maybe it should have a cmake option

@trigg
Copy link
Contributor Author

trigg commented Jun 22, 2024

I wouldn't say 'never' but as AppIndicator falls back to Gtk StatusIcon internally if there's no appindicator service to use, I'd argue it covers ground better (except for Mac/Windows)

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