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