From f483e62231afe527c20c7b9f0149c0927063cfa8 Mon Sep 17 00:00:00 2001 From: Mohamed Boudra Date: Sat, 18 Apr 2026 16:08:43 +0700 Subject: [PATCH] wip(app): keep keyboard shortcuts alive on /settings Chrome gating currently disables shortcuts on non-workspace routes. Temporary pathname check until chromeEnabled is split into separate workspace/global concerns. --- packages/app/src/app/_layout.tsx | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/app/src/app/_layout.tsx b/packages/app/src/app/_layout.tsx index f317da69d..a3cb25a8c 100644 --- a/packages/app/src/app/_layout.tsx +++ b/packages/app/src/app/_layout.tsx @@ -403,6 +403,12 @@ function AppContainer({ const isCompactLayout = useIsCompactFormFactor(); const chromeEnabled = chromeEnabledOverride ?? daemons.length > 0; + const pathname = usePathname(); + // TODO: stop matching pathname here as a branch. `chromeEnabled` should not + // conflate workspace/project-specific chrome (sidebar, mobile gesture) with + // global concerns like keyboard shortcuts. Split those out so settings (and + // other non-workspace routes) don't need a special-case to keep shortcuts alive. + const keyboardShortcutsEnabled = chromeEnabled || pathname.startsWith("/settings"); useEffect(() => { const bp = UnistylesRuntime.breakpoint; @@ -434,7 +440,7 @@ function AppContainer({ }, [isCompactLayout, chromeEnabled, isFocusModeEnabled, agentListOpen, sidebarWidth]); useKeyboardShortcuts({ - enabled: chromeEnabled, + enabled: keyboardShortcutsEnabled, isMobile: isCompactLayout, toggleAgentList, toggleFileExplorer,