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:
parent
22080eb997
commit
2b0d81796b
12
app.py
12
app.py
@ -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()
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -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"
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user