mirror of
https://github.com/tiennm99/serena.git
synced 2026-10-13 02:14:49 +00:00
Fix: macOS tray manager showed a Dock icon
The tray manager creates the shared NSApplication so that pystray can attach its status item to it, but it never sets an activation policy. The default is NSApplicationActivationPolicyRegular, which makes the process a regular app: a Python icon appears in the Dock and in the app switcher even though the tray manager has no windows. Set NSApplicationActivationPolicyAccessory instead, which is the policy intended for menu-bar-only agents. Only the status item remains visible. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
dd12fa032f
commit
89c83efc4f
2 files changed
+7
-2
No files matched your search
@@ -55,6 +55,8 @@ Status of the `main` branch. Changes prior to the next official version change w
|
||||
|
||||
* Dashboard:
|
||||
- Fix: Serena PyPI version check triggered by callback on main thread could delay agent startup #1774
|
||||
- Fix: on macOS, the `tray_manager` interface put an icon in the Dock and in the app switcher
|
||||
(should only use menu bar icon)
|
||||
|
||||
* Hooks:
|
||||
- Add `serena-hooks --client=grok`, including Grok-native PreToolUse allow/deny output.
|
||||
|
||||
@@ -1195,9 +1195,12 @@ class SerenaDashboardTrayManager:
|
||||
# set up tray icon with a dynamic menu (callable returns items on each open)
|
||||
kwargs: dict[str, Any] = {}
|
||||
if sys.platform == "darwin":
|
||||
from AppKit import NSApplication
|
||||
from AppKit import NSApplication, NSApplicationActivationPolicyAccessory
|
||||
|
||||
kwargs["darwin_nsapplication"] = NSApplication.sharedApplication()
|
||||
nsapp = NSApplication.sharedApplication()
|
||||
# run as an accessory app so that only the menu bar icon is shown (no Dock icon)
|
||||
nsapp.setActivationPolicy_(NSApplicationActivationPolicyAccessory)
|
||||
kwargs["darwin_nsapplication"] = nsapp
|
||||
|
||||
self._tray_icon = pystray.Icon(
|
||||
"serena_tray_manager",
|
||||
|
||||
Reference in new issue
Block a user