apps/desktop/src/electron/ElectronDialog.ts | 51 + apps/desktop/src/ipc/DesktopIpcHandlers.ts | 2 + apps/desktop/src/ipc/channels.ts | 1 + apps/desktop/src/ipc/methods/window.ts | 51 + apps/desktop/src/preload.ts | 1 + apps/desktop/src/window/DesktopApplicationMenu.test.ts | 1 + apps/server/src/keybindings.test.ts | 1 + apps/web/index.html | 384 ++++++- apps/web/src/components/ChatView.tsx | 8 +- apps/web/src/components/CommandPalette.logic.ts | 2 +- apps/web/src/components/CommandPalette.tsx | 33 +- apps/web/src/components/ComposerPromptEditor.tsx | 2 +- apps/web/src/components/DiffPanel.tsx | 92 +- apps/web/src/components/ProjectFavicon.tsx | 2 +- apps/web/src/components/ProjectScriptsControl.tsx | 6 + apps/web/src/components/Sidebar.tsx | 24 +- apps/web/src/components/SidebarStageBackdrop.test.tsx | 3 +- apps/web/src/components/SidebarStageBackdrop.tsx | 12 +- apps/web/src/components/SidebarV2.tsx | 24 +- apps/web/src/components/ThreadTerminalDrawer.tsx | 31 +- apps/web/src/components/chat/ChangedFilesTree.tsx | 1 + apps/web/src/components/chat/ChatComposer.tsx | 18 +- apps/web/src/components/chat/ChatHeader.tsx | 2 +- apps/web/src/components/chat/ComposerCommandMenu.tsx | 18 +- apps/web/src/components/chat/ComposerControl.tsx | 4 +- apps/web/src/components/chat/ComposerPendingUserInputPanel.tsx | 10 +- apps/web/src/components/chat/ComposerPreviewAnnotationCards.tsx | 10 +- apps/web/src/components/chat/ComposerPrimaryActions.tsx | 31 +- apps/web/src/components/chat/ComposerStashMenu.tsx | 12 +- apps/web/src/components/chat/ContextWindowMeter.tsx | 12 +- apps/web/src/components/chat/MessagesTimeline.test.tsx | 2 +- apps/web/src/components/chat/MessagesTimeline.tsx | 66 +- apps/web/src/components/chat/ModelListRow.tsx | 2 +- apps/web/src/components/chat/ModelPickerSidebar.tsx | 2 +- apps/web/src/components/chat/PierreEntryIcon.tsx | 4 +- apps/web/src/components/files/FilePreviewPanel.tsx | 14 +- apps/web/src/components/settings/KeybindingsSettings.logic.test.ts | 1 + apps/web/src/components/settings/ProviderInstanceCard.tsx | 2 +- apps/web/src/components/settings/SettingsFontPreviews.tsx | 29 +- apps/web/src/components/settings/SettingsPanels.tsx | 161 ++- apps/web/src/components/settings/ThemeColorPicker.tsx | 550 ++++++++++ apps/web/src/components/settings/ThemeEditorHost.tsx | 114 +++ apps/web/src/components/settings/ThemeEditorPanel.tsx | 1143 +++++++++++++++++++++ apps/web/src/components/settings/ThemeImportDialog.test.ts | 21 + apps/web/src/components/settings/ThemeImportDialog.tsx | 537 ++++++++++ apps/web/src/components/settings/ThemePreviewCircles.tsx | 224 ++++ apps/web/src/components/settings/ThemeSettings.tsx | 658 ++++++++++++ apps/web/src/components/settings/ThemeWireframe.tsx | 136 +++ apps/web/src/components/settings/settingsSearch.ts | 12 +- apps/web/src/components/settings/themeEditorStore.test.ts | 40 + apps/web/src/components/settings/themeEditorStore.ts | 68 ++ apps/web/src/components/settings/themeInspector.test.ts | 42 + apps/web/src/components/settings/themeInspector.ts | 501 +++++++++ apps/web/src/components/sidebar/SidebarProviderUpdatePill.tsx | 2 +- apps/web/src/components/sidebar/SidebarUpdatePill.tsx | 6 +- apps/web/src/components/ui/alert.tsx | 5 +- apps/web/src/components/ui/command.tsx | 6 +- apps/web/src/components/ui/input.tsx | 2 +- apps/web/src/components/ui/menu.tsx | 2 +- apps/web/src/components/ui/select.tsx | 10 +- apps/web/src/hooks/useCustomThemes.ts | 9 + apps/web/src/hooks/useTheme.test.ts | 19 +- apps/web/src/hooks/useTheme.ts | 429 ++++++-- apps/web/src/index.css | 444 +++++++- apps/web/src/keybindings.test.ts | 23 + apps/web/src/lib/diffRendering.ts | 71 ++ apps/web/src/routes/__root.tsx | 4 + apps/web/src/themeBoot.test.ts | 455 ++++++++ apps/web/src/themePalette.test.ts | 509 +++++++++ apps/web/src/themePalette.ts | 1767 ++++++++++++++++++++++++++++++++ apps/web/src/vscodeThemeImport.test.ts | 282 +++++ apps/web/src/vscodeThemeImport.ts | 449 ++++++++ docs/user/keybindings.md | 6 + packages/contracts/src/ipc.ts | 23 + packages/contracts/src/keybindings.test.ts | 6 + packages/contracts/src/keybindings.ts | 1 + packages/shared/src/keybindings.ts | 1 + 77 files changed, 9326 insertions(+), 383 deletions(-)