export interface ShortcutEventLike { key: string; metaKey: boolean; ctrlKey: boolean; shiftKey: boolean; altKey: boolean; } function isMacPlatform(platform: string): boolean { return /mac|iphone|ipad|ipod/i.test(platform); } export function isTerminalToggleShortcut( event: ShortcutEventLike, platform = navigator.platform, ): boolean { const key = event.key.toLowerCase(); if (key !== "j") return false; if (event.shiftKey || event.altKey) return false; if (isMacPlatform(platform)) { return event.metaKey && !event.ctrlKey; } return event.ctrlKey && !event.metaKey; } export function isTerminalClearShortcut( event: ShortcutEventLike, platform = navigator.platform, ): boolean { const key = event.key.toLowerCase(); if (key === "l" && event.ctrlKey && !event.metaKey && !event.altKey && !event.shiftKey) { return true; } return ( isMacPlatform(platform) && key === "k" && event.metaKey && !event.ctrlKey && !event.altKey && !event.shiftKey ); }