Skip to content

Change tray icon so it is the right color on MacOS

Ryan Adolf requested to merge rianadon/kdeconnect-kde:macos-tray-color into master

Summary

On MacOS the system tray icon is off-color because it uses the gray-colored kdeconnectindicatordark icon which does not match the rest of MacOS.

image

BUG: 430226

I've used two patches to fix this:

  1. Always use the status KStatusNotifierItem::Passive on MacOS. KStatusNotifierItem will only mark the icon as a mask (which is needed to allow it to dynamically switch between light and dark theme) if the status is passive.
  2. The above should theoretically be enough to fix the issue and I swear at one point it was all that was needed. However, to fix this issue in my dev environment I also needed to pass in a QIcon with setIsMask(true) instead of setting the icon by its name. And I also use the kdeconnectindicator instead of kdeconnectindicatordark icon.

Test Plan

The icon now renders in the correct color, regardless of whether devices are connected:

image image

Future work

Once I've verified this PR is working in the right direction, I want to look into making the icon gray (and hopefully a much easier-to-see gray) when no devices are connected!

For example, WireGuard, when not connected, looks like this:

image image

P.S. I've been testing off the v21.12.2 tag since the master branch doesn't compile for me, so I haven't tested this change on the latest dev commit. But there should be no conflicts.

Edited by Ryan Adolf

Merge request reports