Features

Focus

Pomodoro-style timer that dims non-allowlisted apps for the duration of a session.

Focus is a per-workspace concentration timer. While a session is running:

  • Apps in the focus allowlist stay full-bright
  • All other running apps dim to ~35% opacity
  • The Focus tray cell shows the remaining time as a circular progress ring

When the timer ends, all apps return to full brightness and the system Glass sound plays (configurable).

Enabling

Settings → Focus → Show Focus Timer.

The Focus tray cell only appears when this is on. Hide the cell to also disable the feature.

Starting a session

Click the Focus tray cell. A small dropdown lets you pick:

  • 25 minutes (default Pomodoro)
  • 50 minutes (long Pomodoro)
  • Custom (Settings → Focus → Custom Length, 5–90 minutes in 5-min steps)

Click again during a session to end it early — apps return to full brightness and no completion sound plays.

Allowlist

The allowlist names which apps stay full-bright during a session. Everything else dims.

  • Settings → Focus → Allowlist lets you add apps via picker or by dragging .app bundles from Finder.
  • Allowlists are workspace-scoped — each workspace has its own list. The header in Settings shows which workspace's allowlist you're editing.
  • When no workspace is active, you edit the Default allowlist.

If your allowlist is empty when a session starts, all apps dim. That's the intent — but the Settings UI shows a warning so you know.

Completion sound

Settings → Focus → Play Sound on Completion. Plays the system Glass sound when a session finishes naturally (not when you stop early).

Stored in UserDefaults under apexdock.focus.completionSoundEnabled so you can flip it from a script without opening Settings.

Notes

  • The dim effect lowers each non-allowlisted app's window opacity to ~35% for the length of the session. If a future macOS removes that capability, dimming becomes a no-op rather than failing the timer.
  • Each workspace stores its own allowlist (a list of bundle IDs). Activating a workspace swaps in that workspace's list.
  • Quitting a dimmed app mid-session doesn't end the session. Brightness comes back when the timer ends or you click the tray cell.