Automattic / Automattic/harper
Harper Desktop: Allow Users to Hide The Icon from Dock
- Dominant language
- Rust
- Stars
- 15.4k
- Forks
- 627
- Avg merge
- 1d 15h
- Merged PRs (30d)
- 102
Description
**What problem does this solve?**
Harper Desktop runs in the background all the time, but it keeps a permanent icon in the macOS Dock. For an app that mostly lives in the menu bar, the Dock icon just takes up space and adds visual clutter. There's currently no way to turn it off.
**Proposed Solution**
Add a setting to hide the Dock icon and run as a menu-bar-only app. Harper is built on Tauri, which exposes this through the app's activation policy:
```rust
#[cfg(target_os = "macos")]
app.set_activation_policy(tauri::ActivationPolicy::Accessory);
```
`Accessory` keeps the app running and visible in the menu bar while removing it from the Dock. It can be toggled at runtime, so a checkbox in settings (e.g. "Hide Dock icon") could switch between `Regular` and `Accessory` without a restart.
**Examples**
Many menu-bar utilities on macOS work this way and offer the same toggle, for example Rectangle and Ice. The app stays reachable from the menu bar, and the Dock stays clean.
**Component**
- [ ] Core engine
- [ ] Plugin/Extension
- [x] Other: Harper Desktop (macOS)
**Additional Context**
Reference from the Tauri project on using the activation policy to hide the Dock icon: https://github.com/tauri-apps/tauri/discussions/6038
Contributor guide
Research direction
Start by locating Harper Desktop's settings entry point and the Tauri application setup, then read the linked Tauri activation-policy reference. Implement a macOS setting that switches between Regular and Accessory, and verify that the checkbox changes whether the app appears in the Dock while remaining available from the menu bar.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust, tauri
- Domain
- desktop
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 65/100