diff --git a/apps/app/src/app/globals.css b/apps/app/src/app/globals.css index 1e522a2b..af1f2f93 100644 --- a/apps/app/src/app/globals.css +++ b/apps/app/src/app/globals.css @@ -1177,12 +1177,12 @@ } /* Custom scrollbar for dark themes */ -:is(.dark, .retro, .dracula, .nord, .monokai, .tokyonight, .solarized, .gruvbox, .catppuccin, .onedark, .synthwave) ::-webkit-scrollbar { +:is(.dark, .retro, .dracula, .nord, .monokai, .tokyonight, .solarized, .gruvbox, .catppuccin, .onedark, .synthwave, .red) ::-webkit-scrollbar { width: 8px; height: 8px; } -:is(.dark, .retro, .dracula, .nord, .monokai, .tokyonight, .solarized, .gruvbox, .catppuccin, .onedark, .synthwave) ::-webkit-scrollbar-track { +:is(.dark, .retro, .dracula, .nord, .monokai, .tokyonight, .solarized, .gruvbox, .catppuccin, .onedark, .synthwave, .red) ::-webkit-scrollbar-track { background: var(--muted); } @@ -1204,6 +1204,20 @@ background: var(--background); } +/* Red theme scrollbar */ +.red ::-webkit-scrollbar-thumb { + background: oklch(0.35 0.15 25); + border-radius: 4px; +} + +.red ::-webkit-scrollbar-thumb:hover { + background: oklch(0.45 0.18 25); +} + +.red ::-webkit-scrollbar-track { + background: oklch(0.15 0.05 25); +} + /* Always visible scrollbar for file diffs and code blocks */ .scrollbar-visible { overflow-y: auto !important; diff --git a/apps/app/src/components/views/terminal-view/terminal-panel.tsx b/apps/app/src/components/views/terminal-view/terminal-panel.tsx index f0283e66..fee8ecf3 100644 --- a/apps/app/src/components/views/terminal-view/terminal-panel.tsx +++ b/apps/app/src/components/views/terminal-view/terminal-panel.tsx @@ -193,8 +193,11 @@ export function TerminalPanel({ const now = Date.now(); const canTrigger = now - lastShortcutTimeRef.current > SHORTCUT_COOLDOWN_MS; + // Use event.code for keyboard-layout-independent key detection + const code = event.code; + // Alt+D - Split right - if (event.altKey && !event.shiftKey && !event.ctrlKey && !event.metaKey && event.key.toLowerCase() === 'd') { + if (event.altKey && !event.shiftKey && !event.ctrlKey && !event.metaKey && code === 'KeyD') { event.preventDefault(); if (canTrigger) { lastShortcutTimeRef.current = now; @@ -203,8 +206,8 @@ export function TerminalPanel({ return false; } - // Alt+Shift+D - Split down - if (event.altKey && event.shiftKey && !event.ctrlKey && !event.metaKey && event.key.toLowerCase() === 'd') { + // Alt+S - Split down + if (event.altKey && !event.shiftKey && !event.ctrlKey && !event.metaKey && code === 'KeyS') { event.preventDefault(); if (canTrigger) { lastShortcutTimeRef.current = now; @@ -214,7 +217,7 @@ export function TerminalPanel({ } // Alt+W - Close terminal - if (event.altKey && !event.shiftKey && !event.ctrlKey && !event.metaKey && event.key.toLowerCase() === 'w') { + if (event.altKey && !event.shiftKey && !event.ctrlKey && !event.metaKey && code === 'KeyW') { event.preventDefault(); if (canTrigger) { lastShortcutTimeRef.current = now; diff --git a/apps/app/src/config/terminal-themes.ts b/apps/app/src/config/terminal-themes.ts index 8cef0d77..c10cea5c 100644 --- a/apps/app/src/config/terminal-themes.ts +++ b/apps/app/src/config/terminal-themes.ts @@ -334,26 +334,26 @@ const synthwaveTheme: TerminalTheme = { // Red theme - Dark theme with red accents const redTheme: TerminalTheme = { background: "#1a0a0a", - foreground: "#e0d0d0", + foreground: "#c8b0b0", cursor: "#ff4444", cursorAccent: "#1a0a0a", selectionBackground: "#5a2020", black: "#2a1010", red: "#ff4444", - green: "#88cc88", - yellow: "#ffcc66", - blue: "#7799cc", - magenta: "#cc6699", - cyan: "#66aaaa", - white: "#e0d0d0", + green: "#6a9a6a", + yellow: "#ccaa55", + blue: "#6688aa", + magenta: "#aa5588", + cyan: "#558888", + white: "#b0a0a0", brightBlack: "#6a4040", brightRed: "#ff6666", - brightGreen: "#aaddaa", - brightYellow: "#ffdd88", - brightBlue: "#99bbdd", - brightMagenta: "#dd88bb", - brightCyan: "#88cccc", - brightWhite: "#fff0f0", + brightGreen: "#88bb88", + brightYellow: "#ddbb66", + brightBlue: "#88aacc", + brightMagenta: "#cc77aa", + brightCyan: "#77aaaa", + brightWhite: "#d0c0c0", }; // Theme mapping diff --git a/apps/app/src/store/app-store.ts b/apps/app/src/store/app-store.ts index 58079315..4976aa07 100644 --- a/apps/app/src/store/app-store.ts +++ b/apps/app/src/store/app-store.ts @@ -199,7 +199,7 @@ export const DEFAULT_KEYBOARD_SHORTCUTS: KeyboardShortcuts = { // Terminal shortcuts (only active in terminal view) // Using Alt modifier to avoid conflicts with both terminal signals AND browser shortcuts splitTerminalRight: "Alt+D", - splitTerminalDown: "Alt+Shift+D", + splitTerminalDown: "Alt+S", closeTerminal: "Alt+W", };