diff --git a/src/browser/App.tsx b/src/browser/App.tsx
index 77d9ac718f..7de592e5e2 100644
--- a/src/browser/App.tsx
+++ b/src/browser/App.tsx
@@ -462,6 +462,9 @@ function AppInner() {
} else if (matchesKeybind(e, KEYBINDS.TOGGLE_SIDEBAR)) {
e.preventDefault();
setSidebarCollapsed((prev) => !prev);
+ } else if (matchesKeybind(e, KEYBINDS.OPEN_SETTINGS)) {
+ e.preventDefault();
+ openSettings();
}
};
@@ -473,6 +476,7 @@ function AppInner() {
isCommandPaletteOpen,
closeCommandPalette,
openCommandPalette,
+ openSettings,
]);
// Handle workspace fork switch event
diff --git a/src/browser/components/SettingsButton.tsx b/src/browser/components/SettingsButton.tsx
index 71b92bbb9e..0cc61a20f6 100644
--- a/src/browser/components/SettingsButton.tsx
+++ b/src/browser/components/SettingsButton.tsx
@@ -1,6 +1,7 @@
import { Settings } from "lucide-react";
import { useSettings } from "@/browser/contexts/SettingsContext";
import { TooltipWrapper, Tooltip } from "./Tooltip";
+import { formatKeybind, KEYBINDS } from "@/browser/utils/ui/keybinds";
export function SettingsButton() {
const { open } = useSettings();
@@ -16,7 +17,7 @@ export function SettingsButton() {
>
- Settings
+ Settings ({formatKeybind(KEYBINDS.OPEN_SETTINGS)})
);
}
diff --git a/src/browser/utils/ui/keybinds.ts b/src/browser/utils/ui/keybinds.ts
index 1884390f23..0a85f645b4 100644
--- a/src/browser/utils/ui/keybinds.ts
+++ b/src/browser/utils/ui/keybinds.ts
@@ -281,4 +281,8 @@ export const KEYBINDS = {
/** Toggle hunk expand/collapse in Code Review panel */
TOGGLE_HUNK_COLLAPSE: { key: " " },
+
+ /** Open settings modal */
+ // macOS: Cmd+, Win/Linux: Ctrl+,
+ OPEN_SETTINGS: { key: ",", ctrl: true },
} as const;