fix: change split-down shortcut to Alt+S to avoid system conflict

- Change split-down from Alt+Shift+D to Alt+S (Alt+Shift is Windows
  keyboard layout switch shortcut)
- Use event.code for keyboard-layout-independent key detection
- Add red theme to dark theme scrollbar selectors
- Add red-themed scrollbar styling with dark red colors
- Tone down white/bright colors in red terminal theme

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
SuperComboGamer
2025-12-13 01:54:04 -05:00
parent 951010b64d
commit cbca6fa6e4
4 changed files with 37 additions and 20 deletions

View File

@@ -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;

View File

@@ -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;

View File

@@ -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

View File

@@ -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",
};