cryptomator / integrations-api

API for optional services, such as system keychain integrations
GNU Affero General Public License v3.0
12 stars 4 forks source link

Support icons next to items of the tray icon's popup menu #20

Open sschuberth opened 1 year ago

sschuberth commented 1 year ago

It would be nice if the popup menu for the tray icon would support icons in front of its entries. Then indicators like "* " currently could be replaced with a nice "unlocked" icon.

sschuberth commented 1 year ago

Hmm, looks like (some of) the code still uses AWT instead of Swing (or even JavaFX), which probably makes adding support for icons in menu item hard. So maybe an implementation based on a library like https://github.com/dorkbox/SystemTray would be feasible?

purejava commented 1 year ago

We are already working on a change that uses native libs on Linux to show the tray icon: https://github.com/cryptomator/integrations-linux/pull/22 https://github.com/cryptomator/cryptomator/pull/2885

The tray icon changes in case one of the vaults is unlocked and shows an unlocked lock symbol together with the Cryptomator icon then.

sschuberth commented 1 year ago

The tray icon changes in case one of the vaults is unlocked and shows an unlocked lock symbol together with the Cryptomator icon then.

Sounds nice, but what I was referring to is to show icons next to the items of the popup menu the tray menu opens, like next to "Green Mail" as shown here. Will that also be supported?

infeo commented 1 year ago

Not within the linked PRs. We would nee to extend/refactor the tray menu api to also support traymenu items containig different things than strings.

purejava commented 1 year ago

Sounds nice, but what I was referring to is to show icons next to the items of the popup menu the tray menu opens, like next to "Green Mail" as shown here. Will that also be supported?

SystemTray uses some hack to show the icons.

I'd definitely prefer a clean approach:

If you want to display an icon in a menu item, you should use GtkMenuItem and pack a GtkBox with a GtkImage and a GtkLabel instead.

sschuberth commented 1 year ago

I'd definitely prefer a clean approach:

Me too, thanks for taking a look. As I'm curious about what the SystemTray folks (who seem to have a lot of expertise in this area) have to say, I've asked.