Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4bc6b333dc |
@@ -34,14 +34,16 @@ automatically.
|
||||
|
||||
What it can and cannot hide:
|
||||
|
||||
- It hides **other third-party apps' icons** (cmux, Kapture, WireGuard, input
|
||||
source, Now Playing, …) so only your apps' icons leave the bar.
|
||||
- It **keeps Wi-Fi, Spotlight, Clock, Battery and Control Center**. The spacer's
|
||||
boundary is tuned (preferred position 250) to fall just left of Wi-Fi, so the
|
||||
Apple items on the right stay visible. macOS reserves that far-right area: a
|
||||
third-party item can never be placed to the right of it, so those icons cannot
|
||||
be pushed away even in principle. (Bartender and Ice hit the same wall and
|
||||
cover the area with their own overlay bar instead.)
|
||||
- It hides **other third-party apps' icons** (cmux, Kapture, moomoo, WireGuard).
|
||||
- It **keeps Wi-Fi, Now Playing, Spotlight, Clock, Battery and Control Center**
|
||||
visible, with the **hamburger at the left edge of that group**. The spacer's
|
||||
boundary (preferred position 300) falls just left of Now Playing. macOS
|
||||
reserves the far-right area, so an item can never be placed to the right of
|
||||
the system icons.
|
||||
- The input-source indicator is the one system icon that ends up hidden (it sits
|
||||
immediately left of where the hamburger can go). To keep it, set
|
||||
`defaults write dev.tzgyn.simpletopbar debug.spacerPos -float 350` (and
|
||||
`debug.hamburgerPos -float 100`), which moves the hamburger one slot right.
|
||||
- Newly launched apps are placed to the left of the spacer, so they are hidden
|
||||
automatically.
|
||||
- Advanced: set `defaults write dev.tzgyn.simpletopbar debug.spacerPos -float <n>`
|
||||
|
||||
@@ -103,9 +103,13 @@ final class AppDelegate: NSObject, NSApplicationDelegate {
|
||||
let name = "SimpleTopBar"
|
||||
let positionKey = "NSStatusItem Preferred Position \(name)"
|
||||
// Only seed the position on first run so the user's own drag wins and
|
||||
// persists through the autosave name.
|
||||
if UserDefaults.standard.object(forKey: positionKey) == nil {
|
||||
UserDefaults.standard.set(100.0, forKey: positionKey)
|
||||
// persists through the autosave name. Kept just below the hider's
|
||||
// preferred position so the hamburger lands at the left edge of the
|
||||
// visible icons. `debug.hamburgerPos` overrides it.
|
||||
if let override = UserDefaults.standard.object(forKey: "debug.hamburgerPos") as? Double {
|
||||
UserDefaults.standard.set(override, forKey: positionKey)
|
||||
} else if UserDefaults.standard.object(forKey: positionKey) == nil {
|
||||
UserDefaults.standard.set(290.0, forKey: positionKey)
|
||||
}
|
||||
|
||||
let item = NSStatusBar.system.statusItem(withLength: NSStatusItem.variableLength)
|
||||
|
||||
@@ -313,10 +313,14 @@ final class MenuBarHider: ObservableObject {
|
||||
// The boundary between "hidden" and "kept" falls just left of Wi-Fi at
|
||||
// ~250, so the other apps hide while Apple's Wi-Fi/Clock/Battery/Control
|
||||
// Center/Spotlight stay visible. `debug.spacerPos` overrides the seed.
|
||||
// The boundary sits just left of Now Playing, so every Control Center
|
||||
// item stays visible while the apps hide. It must stay *above* the
|
||||
// hamburger's preferred position (see AppDelegate) for the hamburger to
|
||||
// remain on the visible side. `debug.spacerPos` overrides the seed.
|
||||
if let override = UserDefaults.standard.object(forKey: "debug.spacerPos") as? Double {
|
||||
UserDefaults.standard.set(override, forKey: key)
|
||||
} else if UserDefaults.standard.object(forKey: key) == nil {
|
||||
UserDefaults.standard.set(350.0, forKey: key)
|
||||
UserDefaults.standard.set(300.0, forKey: key)
|
||||
}
|
||||
let item = NSStatusBar.system.statusItem(withLength: 0)
|
||||
item.autosaveName = name
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
set -euo pipefail
|
||||
cd "$(dirname "$0")"
|
||||
|
||||
VERSION="${1:-0.4.5}"
|
||||
VERSION="${1:-0.4.6}"
|
||||
|
||||
swift build -c release
|
||||
|
||||
|
||||
Reference in New Issue
Block a user