leanflutter / tray_manager

This plugin allows Flutter desktop apps to defines system tray.
https://pub.dev/packages/tray_manager
MIT License
238 stars 40 forks source link

Linux: App crashes when appindicator is missing #31

Open dainnilsson opened 1 year ago

dainnilsson commented 1 year ago

When running an app with this plugin on Linux without libayatana-appindicator3-1 the app immediately crashes with:

error while loading shared libraries: libayatana-appindicator3.so.1: cannot open shared object file: No such file or directory

This happens even without ever invoking any trayManager functions. Would it be possible to detect this and fail more gracefully? Ideally I'd like if my app could continue to run without a tray icon, and I could inform the user to install the required package to enable it.

bdlukaa commented 2 weeks ago

My app doesn't even build if the dependencies are not found.

I only want to use the plugin on Windows and macOS, but not on the Linux platform because I don't want to make the users download any dependencies to use the app. When I try to build for Linux, this error is emitted:

[   +5 ms] -- Checking for module 'ayatana-appindicator3-0.1'
[   +1 ms] --   No package 'ayatana-appindicator3-0.1' found
[        ] -- Checking for module 'appindicator3-0.1'
[   +1 ms] --   No package 'appindicator3-0.1' found
[        ] CMake Error at flutter/ephemeral/.plugin_symlinks/tray_manager/linux/CMakeLists.txt:32 (message):
[        ]   The `tray_manager` package requires ayatana-appindicator3-0.1 or
[        ]   appindicator3-0.1.  See
[        ]   https://github.com/leanflutter/tray_manager#linux-requirements

See full logs