Keyboard Shortcuts
Learn about keyboard shortcuts in Scriptix.
Custom Keyboard Shortcuts
Scriptix allows you to create custom keyboard shortcuts for the transcript editor.
Accessing Keymap Settings
Navigation:
- Navigate to Profile page
- Scroll to Keymap Settings section
- View existing shortcuts or add new ones
View Existing Shortcuts
Keymap Display:
- Card-based grid layout
- Each card shows:
- Title: "Keymap user setting transcript editor"
- "Custom" badge
- Key combination (e.g., "Ctrl + f")
- Function value
- Delete button
Add Custom Shortcut
Steps:
- Click Add Keymap button
- Create modal opens
- Fill in details:
- Key: Key combination for shortcut
- Value: Function name or identifier
- Click Create button
- Shortcut saved and appears in grid
Key Input:
- Focus on key input field
- Press desired key combination
- System records keys automatically
- Maximum 3 keys supported
- Keys joined with " + " separator
Key Capture:
- Listens for keydown and keyup events
- Supports modifier keys (Ctrl, Shift, Alt, Meta)
- Example combinations:
- Single key: f
- Modifier + Key: Ctrl + f
- Multiple modifiers: Ctrl + Shift + f
Clear Combination:
- Click "Clear combination" link to reset
- Appears when keys are pressed
- Clears recorded keys
Delete Custom Shortcut
Delete Process:
- Click Delete button on shortcut card
- No confirmation modal (immediate deletion)
- Loading toast: "Deleting custom key..."
- Success toast: "Custom key deleted"
- Card removed from grid
Shortcut Storage
Data Format:
- Key: KEYMAP_INPUT_KEY constant
- Value: JSON stringified object with key and value
- Stored as user preference
- Retrieved via user preferences API
Example Structure:
{
"key": "Ctrl + f",
"value": "search"
}
Browser Keyboard Shortcuts
Standard Browser Shortcuts
Scriptix is a web application, so standard browser shortcuts apply:
Text Editing (Universal):
Ctrl/Cmd + C- CopyCtrl/Cmd + V- PasteCtrl/Cmd + X- CutCtrl/Cmd + Z- UndoCtrl/Cmd + YorCtrl/Cmd + Shift + Z- RedoCtrl/Cmd + A- Select allCtrl/Cmd + F- Find in page
Browser Navigation:
Ctrl/Cmd + S- Save page (may trigger browser save dialog)Escape- Close modal/dialog (standard HTML behavior)Tab- Navigate to next elementShift + Tab- Navigate to previous elementEnter- Activate button/link
Platform Differences:
- Mac uses
Cmd(⌘) key - Windows/Linux uses
Ctrlkey - Mac uses
Option(⌥) key - Windows/Linux uses
Altkey
Accessibility
Keyboard Navigation:
- Tab to navigate between elements
- Enter to activate buttons
- Space to toggle checkboxes
- Arrow keys for dropdowns and lists
- Escape to close modals
Theme Toggle
The application includes a theme toggle for light and dark mode:
- Theme preference saved to localStorage
- Applies across all pages
- Persists across sessions
Customization
Creating Custom Shortcuts
To create effective custom shortcuts:
Choose Memorable Keys:
- Use logical key combinations
- Avoid browser conflicts
- Consider commonly used functions
- Document your shortcuts
Avoid Conflicts:
- Don't override browser shortcuts (Ctrl+T, Ctrl+W, etc.)
- Avoid system shortcuts
- Test shortcuts after creating
- Clear and recreate if issues occur
Examples:
Function: Play/Pause
Key: Ctrl + Space
Value: playPause
Function: Insert Timestamp
Key: Ctrl + T
Value: insertTimestamp
Function: Next Speaker
Key: Ctrl + N
Value: nextSpeaker
Best Practices
Start Simple:
- Create 3-5 essential shortcuts first
- Test each one after creating
- Add more as needed
- Delete unused shortcuts
Organization:
- Use consistent key patterns
- Group related functions
- Document your shortcuts externally
- Share shortcuts with team if helpful
Implementation Notes
Keymap Component
The keymap functionality is implemented in the Profile page:
- Component: Keymap (keymap-functions.tsx)
- User preferences API integration
- Card-based UI for display
- Modal for creation
- No confirmation on delete
Key Capture System
Technical Details:
- Event listeners on window for keydown/keyup
- Set data structure to prevent duplicate keys
- Maximum 3 keys enforced (removes oldest if 4th pressed)
- Combination set on keyup event
- preventDefault() on keydown to prevent browser defaults
Storage
User Preferences:
- Stored per user
- API endpoint: user preferences
- Key identifier: KEYMAP_INPUT_KEY
- Value: JSON string of
{key, value}object
Limitations
What's Not Supported
Global Shortcuts:
- Custom shortcuts are user-specific
- Not organization-wide
- Each user creates their own
Pre-Defined Shortcuts:
- No built-in predefined shortcuts documented
- System relies on custom user configuration
- Browser standard shortcuts apply
Shortcut Conflicts:
- No automatic conflict detection
- User responsible for avoiding conflicts
- May interfere with browser/system shortcuts
Future Enhancements
The custom keyboard shortcut system provides a foundation for:
- Transcript editor control
- Caption editor control
- Workspace navigation
- Other application functions
As the platform evolves, more keyboard shortcut integrations may be added to the editors and workspace.
Create your shortcuts! Customize keyboard controls in Profile → Keymap Settings.
Next Steps
- Best Practices - Optimize workflow
- Transcript Editor Guide - Learn the editor
- Caption Editor Guide - Master captions
- Troubleshooting - Fix issues