diff --git a/src/frontend/src/features/rooms/livekit/prefabs/VideoConference.tsx b/src/frontend/src/features/rooms/livekit/prefabs/VideoConference.tsx index ba409daa..47da7730 100644 --- a/src/frontend/src/features/rooms/livekit/prefabs/VideoConference.tsx +++ b/src/frontend/src/features/rooms/livekit/prefabs/VideoConference.tsx @@ -31,6 +31,9 @@ import { RecordingProvider } from '@/features/recording' import { ScreenShareErrorModal } from '../components/ScreenShareErrorModal' import { useConnectionObserver } from '../hooks/useConnectionObserver' import { useNoiseReduction } from '../hooks/useNoiseReduction' +import { useRegisterKeyboardShortcut } from '@/features/shortcuts/useRegisterKeyboardShortcut' +import { settingsStore } from '@/stores/settings' +import { SettingsDialogExtendedKey } from '@/features/settings/type' import { useVideoResolutionSubscription } from '../hooks/useVideoResolutionSubscription' import { SettingsDialogProvider } from '@/features/settings/components/SettingsDialogProvider' import { useSubtitles } from '@/features/subtitle/hooks/useSubtitles' @@ -111,6 +114,14 @@ export function VideoConference({ ...props }: VideoConferenceProps) { useConnectionObserver() useVideoResolutionSubscription() + useRegisterKeyboardShortcut({ + id: 'open-shortcuts', + handler: useCallback(() => { + settingsStore.defaultSelectedTab = SettingsDialogExtendedKey.SHORTCUTS + settingsStore.areSettingsOpen = true + }, []), + }) + const tracks = useTracks( [ { source: Track.Source.Camera, withPlaceholder: true }, diff --git a/src/frontend/src/features/shortcuts/catalog.ts b/src/frontend/src/features/shortcuts/catalog.ts index 9be21492..4f508b16 100644 --- a/src/frontend/src/features/shortcuts/catalog.ts +++ b/src/frontend/src/features/shortcuts/catalog.ts @@ -5,6 +5,7 @@ import { Shortcut } from './types' export type ShortcutCategory = 'navigation' | 'media' | 'interaction' export type ShortcutId = + | 'open-shortcuts' | 'focus-toolbar' | 'toggle-microphone' | 'toggle-camera' @@ -29,6 +30,11 @@ export type ShortcutDescriptor = { } export const shortcutCatalog: ShortcutDescriptor[] = [ + { + id: 'open-shortcuts', + category: 'navigation', + shortcut: { key: '/', ctrlKey: true, shiftKey: true }, + }, { id: 'focus-toolbar', category: 'navigation', diff --git a/src/frontend/src/features/shortcuts/useKeyboardShortcuts.ts b/src/frontend/src/features/shortcuts/useKeyboardShortcuts.ts index bd034a2e..918fa953 100644 --- a/src/frontend/src/features/shortcuts/useKeyboardShortcuts.ts +++ b/src/frontend/src/features/shortcuts/useKeyboardShortcuts.ts @@ -19,7 +19,10 @@ export const useKeyboardShortcuts = () => { shiftKey, altKey, }) - const shortcut = shortcutsSnap.shortcuts.get(shortcutKey) + let shortcut = shortcutsSnap.shortcuts.get(shortcutKey) + if (!shortcut && shortcutKey === 'ctrl+shift+?') { + shortcut = shortcutsSnap.shortcuts.get('ctrl+shift+/') + } if (!shortcut) return e.preventDefault() await shortcut() diff --git a/src/frontend/src/locales/de/rooms.json b/src/frontend/src/locales/de/rooms.json index 70ff94cd..6452bd2c 100644 --- a/src/frontend/src/locales/de/rooms.json +++ b/src/frontend/src/locales/de/rooms.json @@ -590,7 +590,7 @@ }, "participantTileFocus": { "containerLabel": "Optionen für {{name}}", - "toolbarHint": "F2: zur Symbolleiste unten.", + "toolbarHint": "Ctrl+Shift+/: Direkt auf die Tastenkürzel zugreifen.", "pin": { "enable": "Anheften", "disable": "Lösen" diff --git a/src/frontend/src/locales/en/rooms.json b/src/frontend/src/locales/en/rooms.json index 390cdb9b..a2a79ee8 100644 --- a/src/frontend/src/locales/en/rooms.json +++ b/src/frontend/src/locales/en/rooms.json @@ -590,7 +590,7 @@ }, "participantTileFocus": { "containerLabel": "Options for {{name}}", - "toolbarHint": "F2: go to the bottom toolbar.", + "toolbarHint": "Ctrl+Shift+/: access shortcuts directly.", "pin": { "enable": "Pin", "disable": "Unpin" diff --git a/src/frontend/src/locales/fr/rooms.json b/src/frontend/src/locales/fr/rooms.json index f8bbc3bd..95c4f514 100644 --- a/src/frontend/src/locales/fr/rooms.json +++ b/src/frontend/src/locales/fr/rooms.json @@ -590,7 +590,7 @@ }, "participantTileFocus": { "containerLabel": "Options pour {{name}}", - "toolbarHint": "F2 : raccourci barre d'outils en bas.", + "toolbarHint": "Ctrl+Shift+/ : accéder directement aux raccourcis.", "pin": { "enable": "Épingler", "disable": "Annuler l'épinglage" diff --git a/src/frontend/src/locales/nl/rooms.json b/src/frontend/src/locales/nl/rooms.json index c635f1dd..bbc612e9 100644 --- a/src/frontend/src/locales/nl/rooms.json +++ b/src/frontend/src/locales/nl/rooms.json @@ -590,7 +590,7 @@ }, "participantTileFocus": { "containerLabel": "Opties voor {{name}}", - "toolbarHint": "F2: naar de werkbalk onderaan.", + "toolbarHint": "Ctrl+Shift+/: direct toegang tot de sneltoetsen.", "pin": { "enable": "Pinnen", "disable": "Losmaken"