From e5e944475d8c65ca290d869f2f090d2009f0cc42 Mon Sep 17 00:00:00 2001 From: Mario Zechner Date: Fri, 9 Jan 2026 00:18:59 +0100 Subject: [PATCH] Poll macOS system theme every 2 seconds in mac-system-theme extension --- .../examples/extensions/mac-system-theme.ts | 21 +++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/packages/coding-agent/examples/extensions/mac-system-theme.ts b/packages/coding-agent/examples/extensions/mac-system-theme.ts index 9c765712..7b291e36 100644 --- a/packages/coding-agent/examples/extensions/mac-system-theme.ts +++ b/packages/coding-agent/examples/extensions/mac-system-theme.ts @@ -18,8 +18,25 @@ function isDarkMode(): boolean { } export default function (pi: ExtensionAPI) { + let intervalId: ReturnType | null = null; + pi.on("session_start", (_event, ctx) => { - const theme = isDarkMode() ? "dark" : "light"; - ctx.ui.setTheme(theme); + let currentTheme = isDarkMode() ? "dark" : "light"; + ctx.ui.setTheme(currentTheme); + + intervalId = setInterval(() => { + const newTheme = isDarkMode() ? "dark" : "light"; + if (newTheme !== currentTheme) { + currentTheme = newTheme; + ctx.ui.setTheme(currentTheme); + } + }, 2000); + }); + + pi.on("session_shutdown", () => { + if (intervalId) { + clearInterval(intervalId); + intervalId = null; + } }); }