wakatime / macos-wakatime

Mac system tray app for automatic time tracking and metrics generated from your Xcode, Figma, Postman, etc. usage.
https://wakatime.com/mac
BSD 3-Clause "New" or "Revised" License
127 stars 22 forks source link

Indicate when WakaTime cannot watch Xcode due to missing accessibility permission #130

Closed starbugs closed 10 months ago

starbugs commented 11 months ago

I created a first draft of what an indicator in the menu bar item could look like:

WakaTime missing permission indicator

It would look similar with a light menu bar with a slightly different contrast of the red dot. The dark version has a bit of a darker red to improve the contrast on a dark menu bar.

The menu bar would show a message similar to the one in the screenshot (texts are just quickly drafted for now). Below the message, it would show a clickable menu item which would re-trigger the request for accessibility permissions and open the System Settings as it's done during the initial app launch currently.

Here's a few issues that I stumbled upon when designing/researching this approach:

  1. Using color in the menu bar icons on macOS is rare since the translucent menu bars were introduced. Most apps stick to monochrome icons and macOS now automatically tints the menu bar according to the system's dark mode setting if not prevented. Most apps that I have tested indicate their status by making their menu icon semi-transparent. Notable examples are: Dropbox, Google Drive and the built-in Wifi indicator which also displays a diagonal strike-through on top. These would be alternatives to the design above.
  2. A red indicator upon first app launch, where the user didn't have the chance to grant or deny permission actively yet, might signal that something is wrong even though it isn't. It would be better to show the indicator only once we're sure that the initial permission request has been ignored/denied. An issue might be to define a point in time when we can be reasonably sure that this is the case. Which is a good segue to point 3...
  3. This would really work great if combined with a properly designed onboarding window that leads the user through the process and reports feedback as they grant permission. I found a good (in my opinion) example for that, which would be the Bartender app, screenshot of their onboarding window below.
Screenshot 2023-07-20 at 12 45 26 Screenshot 2023-07-20 at 12 45 34

We could do it in a very similar fashion and either do the menu bar indicator (red dot or semi-transparent icon) as well or just do the onboarding window without the indicator.

If we chose to use the menu bar indicator + the onboarding window, once the onboarding window is closed, the indicator could become active if the user still didn't grant access to the permissions needed for the WakaTime app to fulfill its main purpose.

alanhamlett commented 10 months ago

It's monocolor, but a good first implementation in #146.