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:
2026-06-13 00:14:15 +02:00
co-authored by Claude Fable 5
parent 22080eb997
commit 2b0d81796b
2 changed files with 6 additions and 8 deletions
+5 -7
View File
@@ -3,13 +3,12 @@
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.
La politique d'activation est forcée en « accessory » : Zonza vit dans la barre de menu,
jamais dans le Dock — même quand la fenêtre de pulsation Cocoa s'affiche.
Zonza vit dans la barre de menu, jamais dans le Dock : c'est le LSUIElement de
l'Info.plist (posé par build_app.sh) qui s'en charge.
"""
import threading
import rumps
from AppKit import NSApplication, NSApplicationActivationPolicyAccessory
from PyObjCTools import AppHelper
from pynput import keyboard
@@ -76,10 +75,9 @@ class ZonzaApp(rumps.App):
def main():
validate_config(CONFIG)
# barre de menu uniquement, jamais d'icône Dock — même en lançant depuis les sources
NSApplication.sharedApplication().setActivationPolicy_(
NSApplicationActivationPolicyAccessory
)
# PAS de setActivationPolicy_ ici : sur macOS Tahoe, forcer la politique avant
# run() empêche rumps de créer l'icône de barre de menu. Le LSUIElement de
# l'Info.plist suffit à masquer l'icône Dock pour l'app installée.
ZonzaApp().run()