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
.appbundles 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.