Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
30d5aff906 | ||
|
|
6f55861be7 | ||
|
|
ccc172d218 |
@@ -103,6 +103,13 @@ wants it in the final answer every time. Keep it to the cask upgrade commands
|
|||||||
(see the README release section for the exact block), because the app is
|
(see the README release section for the exact block), because the app is
|
||||||
installed through the tap.
|
installed through the tap.
|
||||||
|
|
||||||
|
Notarization: `release.sh` submits to Apple when the `SIMPLETOPBAR_NOTARY_*`
|
||||||
|
env vars are set (provider, `.p8` path, key id, issuer id). The credentials are
|
||||||
|
the same App Store Connect key used by Kapture (`~/.config/kapture/AuthKey_*.p8`,
|
||||||
|
team `RX6767S6BW`); the issuer id is a non-secret UUID from App Store Connect.
|
||||||
|
Verify with `spctl -a -vv SimpleTopBar.app` → `source=Notarized Developer ID`.
|
||||||
|
Without the vars it still builds, zips and prints the sha, just unnotarized.
|
||||||
|
|
||||||
## Status item placement (why not MenuBarExtra)
|
## Status item placement (why not MenuBarExtra)
|
||||||
|
|
||||||
On a full menu bar, a newly created status item is placed leftmost, which on a
|
On a full menu bar, a newly created status item is placed leftmost, which on a
|
||||||
|
|||||||
@@ -35,15 +35,11 @@ automatically.
|
|||||||
What it can and cannot hide:
|
What it can and cannot hide:
|
||||||
|
|
||||||
- It hides **other third-party apps' icons** (cmux, Kapture, moomoo, WireGuard).
|
- It hides **other third-party apps' icons** (cmux, Kapture, moomoo, WireGuard).
|
||||||
- It **keeps Wi-Fi, Now Playing, Spotlight, Clock, Battery and Control Center**
|
- It **keeps Wi-Fi, Now Playing, the input-source indicator, Spotlight, Clock,
|
||||||
visible, with the **hamburger at the left edge of that group**. The spacer's
|
Battery and Control Center** visible, with the **hamburger at the left edge of
|
||||||
boundary (preferred position 300) falls just left of Now Playing. macOS
|
that group**. The spacer's boundary (preferred position 330) falls just left
|
||||||
reserves the far-right area, so an item can never be placed to the right of
|
of the input-source indicator. macOS reserves the far-right area, so an item
|
||||||
the system icons.
|
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
|
- 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>`
|
||||||
@@ -59,7 +55,8 @@ brew install --cask simpletopbar
|
|||||||
```
|
```
|
||||||
|
|
||||||
The tap is hosted on Gitea, so the full URL is required. Homebrew may print an
|
The tap is hosted on Gitea, so the full URL is required. Homebrew may print an
|
||||||
"Unsupported tap" warning — it's harmless.
|
"Unsupported tap" warning — it's harmless. Releases from 0.4.8 on are notarized,
|
||||||
|
so the app opens without a Gatekeeper warning.
|
||||||
|
|
||||||
## Upgrade
|
## Upgrade
|
||||||
|
|
||||||
|
|||||||
@@ -109,7 +109,7 @@ final class AppDelegate: NSObject, NSApplicationDelegate {
|
|||||||
if let override = UserDefaults.standard.object(forKey: "debug.hamburgerPos") as? Double {
|
if let override = UserDefaults.standard.object(forKey: "debug.hamburgerPos") as? Double {
|
||||||
UserDefaults.standard.set(override, forKey: positionKey)
|
UserDefaults.standard.set(override, forKey: positionKey)
|
||||||
} else if UserDefaults.standard.object(forKey: positionKey) == nil {
|
} else if UserDefaults.standard.object(forKey: positionKey) == nil {
|
||||||
UserDefaults.standard.set(290.0, forKey: positionKey)
|
UserDefaults.standard.set(320.0, forKey: positionKey)
|
||||||
}
|
}
|
||||||
|
|
||||||
let item = NSStatusBar.system.statusItem(withLength: NSStatusItem.variableLength)
|
let item = NSStatusBar.system.statusItem(withLength: NSStatusItem.variableLength)
|
||||||
|
|||||||
@@ -313,14 +313,15 @@ 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
|
// The boundary sits just left of the input-source indicator, so every
|
||||||
// item stays visible while the apps hide. It must stay *above* the
|
// system item (input source, Now Playing, Wi-Fi, …) stays visible while
|
||||||
// hamburger's preferred position (see AppDelegate) for the hamburger to
|
// the apps hide. It must stay *above* the hamburger's preferred position
|
||||||
// remain on the visible side. `debug.spacerPos` overrides the seed.
|
// (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(300.0, forKey: key)
|
UserDefaults.standard.set(330.0, forKey: key)
|
||||||
}
|
}
|
||||||
let item = NSStatusBar.system.statusItem(withLength: 0)
|
let item = NSStatusBar.system.statusItem(withLength: 0)
|
||||||
item.autosaveName = name
|
item.autosaveName = name
|
||||||
|
|||||||
+2
-2
@@ -2,7 +2,7 @@
|
|||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
cd "$(dirname "$0")"
|
cd "$(dirname "$0")"
|
||||||
|
|
||||||
VERSION="${1:-0.4.6}"
|
VERSION="${1:-0.4.8}"
|
||||||
|
|
||||||
swift build -c release
|
swift build -c release
|
||||||
|
|
||||||
@@ -58,7 +58,7 @@ chmod +x scripts/make-icon.sh
|
|||||||
|
|
||||||
if [ -n "$IDENT" ]; then
|
if [ -n "$IDENT" ]; then
|
||||||
security unlock-keychain "$HOME/Library/Keychains/login.keychain-db" 2>/dev/null || true
|
security unlock-keychain "$HOME/Library/Keychains/login.keychain-db" 2>/dev/null || true
|
||||||
codesign --force --options runtime --sign "$IDENT" "$APP"
|
codesign --force --options runtime --timestamp --sign "$IDENT" "$APP"
|
||||||
echo "Built $APP ${VERSION} (signed with Developer ID '$IDENT') — open $APP"
|
echo "Built $APP ${VERSION} (signed with Developer ID '$IDENT') — open $APP"
|
||||||
else
|
else
|
||||||
codesign --force --sign - "$APP"
|
codesign --force --sign - "$APP"
|
||||||
|
|||||||
Reference in New Issue
Block a user