fix: icône de barre de menu absente sur macOS Tahoe

setActivationPolicy_(Accessory) appelé avant rumps.run() empêche la
création du NSStatusItem sur Tahoe (vérifié par test A/B). Retiré :
LSUIElement dans l'Info.plist suffit pour masquer l'icône Dock.
Le lanceur redirige aussi stdout/stderr vers ~/Library/Logs/Zonza.log.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Ralph Mayola 2026-06-13 00:14:15 +02:00
parent 22080eb997
commit 2b0d81796b
2 changed files with 6 additions and 8 deletions

12
app.py
View File

@ -3,13 +3,12 @@
Possède la boucle d'événements Cocoa. Enregistre la hotkey globale, gère l'état du menu, Possède la boucle d'événements Cocoa. Enregistre la hotkey globale, gère l'état du menu,
lance le warmup du modèle en fond, et instancie le contrôleur + la fenêtre de pulsation. lance le warmup du modèle en fond, et instancie le contrôleur + la fenêtre de pulsation.
La politique d'activation est forcée en « accessory » : Zonza vit dans la barre de menu, Zonza vit dans la barre de menu, jamais dans le Dock : c'est le LSUIElement de
jamais dans le Dock même quand la fenêtre de pulsation Cocoa s'affiche. l'Info.plist (posé par build_app.sh) qui s'en charge.
""" """
import threading import threading
import rumps import rumps
from AppKit import NSApplication, NSApplicationActivationPolicyAccessory
from PyObjCTools import AppHelper from PyObjCTools import AppHelper
from pynput import keyboard from pynput import keyboard
@ -76,10 +75,9 @@ class ZonzaApp(rumps.App):
def main(): def main():
validate_config(CONFIG) validate_config(CONFIG)
# barre de menu uniquement, jamais d'icône Dock — même en lançant depuis les sources # PAS de setActivationPolicy_ ici : sur macOS Tahoe, forcer la politique avant
NSApplication.sharedApplication().setActivationPolicy_( # run() empêche rumps de créer l'icône de barre de menu. Le LSUIElement de
NSApplicationActivationPolicyAccessory # l'Info.plist suffit à masquer l'icône Dock pour l'app installée.
)
ZonzaApp().run() ZonzaApp().run()

View File

@ -33,7 +33,7 @@ mkdir -p "$CONTENTS/MacOS" "$CONTENTS/Resources"
cat > "$CONTENTS/MacOS/zonza" <<LAUNCHER cat > "$CONTENTS/MacOS/zonza" <<LAUNCHER
#!/bin/bash #!/bin/bash
cd "$HERE" cd "$HERE"
exec "$PYBIN" "$HERE/app.py" exec "$PYBIN" "$HERE/app.py" >> "\$HOME/Library/Logs/Zonza.log" 2>&1
LAUNCHER LAUNCHER
chmod +x "$CONTENTS/MacOS/zonza" chmod +x "$CONTENTS/MacOS/zonza"