markupr 2.1.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/commands/review-feedback.md +47 -0
- package/.eslintrc.json +35 -0
- package/.github/CODEOWNERS +16 -0
- package/.github/FUNDING.yml +1 -0
- package/.github/ISSUE_TEMPLATE/bug_report.md +56 -0
- package/.github/ISSUE_TEMPLATE/feature_request.md +54 -0
- package/.github/PULL_REQUEST_TEMPLATE.md +89 -0
- package/.github/dependabot.yml +70 -0
- package/.github/workflows/ci.yml +184 -0
- package/.github/workflows/deploy-landing.yml +134 -0
- package/.github/workflows/nightly.yml +288 -0
- package/.github/workflows/release.yml +318 -0
- package/CHANGELOG.md +127 -0
- package/CLAUDE.md +137 -0
- package/CODE_OF_CONDUCT.md +9 -0
- package/CONTRIBUTING.md +390 -0
- package/LICENSE +21 -0
- package/PRODUCT_VISION.md +277 -0
- package/README.md +517 -0
- package/SECURITY.md +51 -0
- package/SIGNING_INSTRUCTIONS.md +284 -0
- package/assets/DMG_BACKGROUND_INSTRUCTIONS.md +130 -0
- package/assets/svg-source/dmg-background.svg +70 -0
- package/assets/svg-source/icon.svg +20 -0
- package/assets/svg-source/tray-icon-processing.svg +7 -0
- package/assets/svg-source/tray-icon-recording.svg +7 -0
- package/assets/svg-source/tray-icon.svg +6 -0
- package/assets/tray-complete.png +0 -0
- package/assets/tray-complete@2x.png +0 -0
- package/assets/tray-completeTemplate.png +0 -0
- package/assets/tray-completeTemplate@2x.png +0 -0
- package/assets/tray-error.png +0 -0
- package/assets/tray-error@2x.png +0 -0
- package/assets/tray-errorTemplate.png +0 -0
- package/assets/tray-errorTemplate@2x.png +0 -0
- package/assets/tray-icon-processing.png +0 -0
- package/assets/tray-icon-processing@2x.png +0 -0
- package/assets/tray-icon-processingTemplate.png +0 -0
- package/assets/tray-icon-processingTemplate@2x.png +0 -0
- package/assets/tray-icon-recording.png +0 -0
- package/assets/tray-icon-recording@2x.png +0 -0
- package/assets/tray-icon-recordingTemplate.png +0 -0
- package/assets/tray-icon-recordingTemplate@2x.png +0 -0
- package/assets/tray-icon.png +0 -0
- package/assets/tray-icon@2x.png +0 -0
- package/assets/tray-iconTemplate.png +0 -0
- package/assets/tray-iconTemplate@2x.png +0 -0
- package/assets/tray-idle.png +0 -0
- package/assets/tray-idle@2x.png +0 -0
- package/assets/tray-idleTemplate.png +0 -0
- package/assets/tray-idleTemplate@2x.png +0 -0
- package/assets/tray-processing-0.png +0 -0
- package/assets/tray-processing-0@2x.png +0 -0
- package/assets/tray-processing-0Template.png +0 -0
- package/assets/tray-processing-0Template@2x.png +0 -0
- package/assets/tray-processing-1.png +0 -0
- package/assets/tray-processing-1@2x.png +0 -0
- package/assets/tray-processing-1Template.png +0 -0
- package/assets/tray-processing-1Template@2x.png +0 -0
- package/assets/tray-processing-2.png +0 -0
- package/assets/tray-processing-2@2x.png +0 -0
- package/assets/tray-processing-2Template.png +0 -0
- package/assets/tray-processing-2Template@2x.png +0 -0
- package/assets/tray-processing-3.png +0 -0
- package/assets/tray-processing-3@2x.png +0 -0
- package/assets/tray-processing-3Template.png +0 -0
- package/assets/tray-processing-3Template@2x.png +0 -0
- package/assets/tray-processing.png +0 -0
- package/assets/tray-processing@2x.png +0 -0
- package/assets/tray-processingTemplate.png +0 -0
- package/assets/tray-processingTemplate@2x.png +0 -0
- package/assets/tray-recording.png +0 -0
- package/assets/tray-recording@2x.png +0 -0
- package/assets/tray-recordingTemplate.png +0 -0
- package/assets/tray-recordingTemplate@2x.png +0 -0
- package/build/DMG_BACKGROUND_SPEC.md +50 -0
- package/build/dmg-background.png +0 -0
- package/build/dmg-background@2x.png +0 -0
- package/build/entitlements.mac.inherit.plist +27 -0
- package/build/entitlements.mac.plist +41 -0
- package/build/favicon-16.png +0 -0
- package/build/favicon-180.png +0 -0
- package/build/favicon-192.png +0 -0
- package/build/favicon-32.png +0 -0
- package/build/favicon-48.png +0 -0
- package/build/favicon-512.png +0 -0
- package/build/favicon-64.png +0 -0
- package/build/icon-128.png +0 -0
- package/build/icon-16.png +0 -0
- package/build/icon-24.png +0 -0
- package/build/icon-256.png +0 -0
- package/build/icon-32.png +0 -0
- package/build/icon-48.png +0 -0
- package/build/icon-64.png +0 -0
- package/build/icon.icns +0 -0
- package/build/icon.ico +0 -0
- package/build/icon.iconset/icon_128x128.png +0 -0
- package/build/icon.iconset/icon_128x128@2x.png +0 -0
- package/build/icon.iconset/icon_16x16.png +0 -0
- package/build/icon.iconset/icon_16x16@2x.png +0 -0
- package/build/icon.iconset/icon_256x256.png +0 -0
- package/build/icon.iconset/icon_256x256@2x.png +0 -0
- package/build/icon.iconset/icon_32x32.png +0 -0
- package/build/icon.iconset/icon_32x32@2x.png +0 -0
- package/build/icon.iconset/icon_512x512.png +0 -0
- package/build/icon.iconset/icon_512x512@2x.png +0 -0
- package/build/icon.png +0 -0
- package/build/installer-header.bmp +0 -0
- package/build/installer-header.png +0 -0
- package/build/installer-sidebar.bmp +0 -0
- package/build/installer-sidebar.png +0 -0
- package/build/installer.nsh +45 -0
- package/build/overlay-processing.png +0 -0
- package/build/overlay-recording.png +0 -0
- package/build/toolbar-record.png +0 -0
- package/build/toolbar-screenshot.png +0 -0
- package/build/toolbar-settings.png +0 -0
- package/build/toolbar-stop.png +0 -0
- package/dist/main/index.mjs +12612 -0
- package/dist/preload/index.mjs +907 -0
- package/dist/renderer/assets/index-CCmUjl9K.js +19495 -0
- package/dist/renderer/assets/index-CUqz_Gs6.css +2270 -0
- package/dist/renderer/index.html +27 -0
- package/docs/AI_AGENT_QUICKSTART.md +42 -0
- package/docs/AI_PIPELINE_DESIGN.md +595 -0
- package/docs/API.md +514 -0
- package/docs/ARCHITECTURE.md +460 -0
- package/docs/CONFIGURATION.md +336 -0
- package/docs/DEVELOPMENT.md +508 -0
- package/docs/EXPORT_FORMATS.md +451 -0
- package/docs/GETTING_STARTED.md +236 -0
- package/docs/KEYBOARD_SHORTCUTS.md +334 -0
- package/docs/TROUBLESHOOTING.md +418 -0
- package/docs/landing/index.html +672 -0
- package/docs/landing/script.js +342 -0
- package/docs/landing/styles.css +1543 -0
- package/electron-builder.yml +140 -0
- package/electron.vite.config.ts +63 -0
- package/package.json +108 -0
- package/railway.json +12 -0
- package/scripts/build.mjs +51 -0
- package/scripts/generate-icons.mjs +314 -0
- package/scripts/generate-installer-images.cjs +253 -0
- package/scripts/generate-tray-icons.mjs +258 -0
- package/scripts/notarize.cjs +180 -0
- package/scripts/one-click-clean-test.sh +147 -0
- package/scripts/postinstall.mjs +36 -0
- package/scripts/setup-markupr.sh +55 -0
- package/setup +17 -0
- package/site/index.html +1835 -0
- package/site/package.json +11 -0
- package/site/railway.json +12 -0
- package/site/server.js +31 -0
- package/src/main/AutoUpdater.ts +392 -0
- package/src/main/CrashRecovery.ts +655 -0
- package/src/main/ErrorHandler.ts +703 -0
- package/src/main/HotkeyManager.ts +399 -0
- package/src/main/MenuManager.ts +529 -0
- package/src/main/PermissionManager.ts +420 -0
- package/src/main/SessionController.ts +1465 -0
- package/src/main/TrayManager.ts +540 -0
- package/src/main/ai/AIPipelineManager.ts +199 -0
- package/src/main/ai/ClaudeAnalyzer.ts +339 -0
- package/src/main/ai/ImageOptimizer.ts +176 -0
- package/src/main/ai/StructuredMarkdownBuilder.ts +379 -0
- package/src/main/ai/index.ts +16 -0
- package/src/main/ai/types.ts +258 -0
- package/src/main/analysis/ClarificationGenerator.ts +385 -0
- package/src/main/analysis/FeedbackAnalyzer.ts +531 -0
- package/src/main/analysis/index.ts +19 -0
- package/src/main/audio/AudioCapture.ts +978 -0
- package/src/main/audio/audioUtils.ts +100 -0
- package/src/main/audio/index.ts +20 -0
- package/src/main/capture/index.ts +1 -0
- package/src/main/index.ts +1693 -0
- package/src/main/ipc/captureHandlers.ts +272 -0
- package/src/main/ipc/index.ts +45 -0
- package/src/main/ipc/outputHandlers.ts +302 -0
- package/src/main/ipc/sessionHandlers.ts +56 -0
- package/src/main/ipc/settingsHandlers.ts +471 -0
- package/src/main/ipc/types.ts +56 -0
- package/src/main/ipc/windowHandlers.ts +277 -0
- package/src/main/output/ClipboardService.ts +369 -0
- package/src/main/output/ExportService.ts +539 -0
- package/src/main/output/FileManager.ts +416 -0
- package/src/main/output/MarkdownGenerator.ts +791 -0
- package/src/main/output/MarkdownPatcher.ts +299 -0
- package/src/main/output/index.ts +186 -0
- package/src/main/output/sessionAdapter.ts +207 -0
- package/src/main/output/templates/html-template.ts +553 -0
- package/src/main/pipeline/FrameExtractor.ts +330 -0
- package/src/main/pipeline/PostProcessor.ts +399 -0
- package/src/main/pipeline/TranscriptAnalyzer.ts +226 -0
- package/src/main/pipeline/index.ts +36 -0
- package/src/main/platform/WindowsTaskbar.ts +600 -0
- package/src/main/platform/index.ts +16 -0
- package/src/main/settings/SettingsManager.ts +730 -0
- package/src/main/settings/index.ts +19 -0
- package/src/main/transcription/ModelDownloadManager.ts +494 -0
- package/src/main/transcription/TierManager.ts +219 -0
- package/src/main/transcription/TranscriptionRecoveryService.ts +340 -0
- package/src/main/transcription/WhisperService.ts +748 -0
- package/src/main/transcription/index.ts +56 -0
- package/src/main/transcription/types.ts +135 -0
- package/src/main/windows/PopoverManager.ts +284 -0
- package/src/main/windows/TaskbarIntegration.ts +452 -0
- package/src/main/windows/index.ts +23 -0
- package/src/preload/index.ts +1047 -0
- package/src/renderer/App.tsx +515 -0
- package/src/renderer/AppWrapper.tsx +28 -0
- package/src/renderer/assets/logo-dark.svg +7 -0
- package/src/renderer/assets/logo.svg +7 -0
- package/src/renderer/audio/AudioCaptureRenderer.ts +454 -0
- package/src/renderer/capture/ScreenRecordingRenderer.ts +492 -0
- package/src/renderer/components/AnnotationOverlay.tsx +836 -0
- package/src/renderer/components/AudioWaveform.tsx +811 -0
- package/src/renderer/components/ClarificationQuestions.tsx +656 -0
- package/src/renderer/components/CountdownTimer.tsx +495 -0
- package/src/renderer/components/CrashRecoveryDialog.tsx +632 -0
- package/src/renderer/components/DonateButton.tsx +127 -0
- package/src/renderer/components/ErrorBoundary.tsx +308 -0
- package/src/renderer/components/ExportDialog.tsx +872 -0
- package/src/renderer/components/HotkeyHint.tsx +261 -0
- package/src/renderer/components/KeyboardShortcuts.tsx +787 -0
- package/src/renderer/components/ModelDownloadDialog.tsx +844 -0
- package/src/renderer/components/Onboarding.tsx +1830 -0
- package/src/renderer/components/ProcessingOverlay.tsx +157 -0
- package/src/renderer/components/RecordingOverlay.tsx +423 -0
- package/src/renderer/components/SessionHistory.tsx +1746 -0
- package/src/renderer/components/SessionReview.tsx +1321 -0
- package/src/renderer/components/SettingsPanel.tsx +217 -0
- package/src/renderer/components/Skeleton.tsx +347 -0
- package/src/renderer/components/StatusIndicator.tsx +86 -0
- package/src/renderer/components/ThemeProvider.tsx +429 -0
- package/src/renderer/components/Tooltip.tsx +370 -0
- package/src/renderer/components/TranscriptionPreview.tsx +183 -0
- package/src/renderer/components/TranscriptionTierSelector.tsx +640 -0
- package/src/renderer/components/UpdateNotification.tsx +377 -0
- package/src/renderer/components/WindowSelector.tsx +947 -0
- package/src/renderer/components/index.ts +99 -0
- package/src/renderer/components/primitives/ApiKeyInput.tsx +98 -0
- package/src/renderer/components/primitives/ColorPicker.tsx +65 -0
- package/src/renderer/components/primitives/DangerButton.tsx +45 -0
- package/src/renderer/components/primitives/DirectoryPicker.tsx +41 -0
- package/src/renderer/components/primitives/Dropdown.tsx +34 -0
- package/src/renderer/components/primitives/KeyRecorder.tsx +117 -0
- package/src/renderer/components/primitives/SettingsSection.tsx +32 -0
- package/src/renderer/components/primitives/Slider.tsx +43 -0
- package/src/renderer/components/primitives/Toggle.tsx +36 -0
- package/src/renderer/components/primitives/index.ts +10 -0
- package/src/renderer/components/settings/AdvancedTab.tsx +174 -0
- package/src/renderer/components/settings/AppearanceTab.tsx +77 -0
- package/src/renderer/components/settings/GeneralTab.tsx +40 -0
- package/src/renderer/components/settings/HotkeysTab.tsx +79 -0
- package/src/renderer/components/settings/RecordingTab.tsx +84 -0
- package/src/renderer/components/settings/index.ts +9 -0
- package/src/renderer/components/settings/settingsStyles.ts +673 -0
- package/src/renderer/components/settings/tabConfig.tsx +85 -0
- package/src/renderer/components/settings/useSettingsPanel.ts +447 -0
- package/src/renderer/contexts/ProcessingContext.tsx +227 -0
- package/src/renderer/contexts/RecordingContext.tsx +683 -0
- package/src/renderer/contexts/UIContext.tsx +326 -0
- package/src/renderer/contexts/index.ts +24 -0
- package/src/renderer/donateMessages.ts +69 -0
- package/src/renderer/hooks/index.ts +75 -0
- package/src/renderer/hooks/useAnimation.tsx +544 -0
- package/src/renderer/hooks/useTheme.ts +313 -0
- package/src/renderer/index.html +26 -0
- package/src/renderer/main.tsx +52 -0
- package/src/renderer/styles/animations.css +1093 -0
- package/src/renderer/styles/app-shell.css +662 -0
- package/src/renderer/styles/globals.css +515 -0
- package/src/renderer/styles/theme.ts +578 -0
- package/src/renderer/types/electron.d.ts +385 -0
- package/src/shared/hotkeys.ts +283 -0
- package/src/shared/types.ts +809 -0
- package/tests/clipboard.test.ts +228 -0
- package/tests/e2e/criticalPaths.test.ts +594 -0
- package/tests/feedbackAnalyzer.test.ts +303 -0
- package/tests/integration/sessionFlow.test.ts +583 -0
- package/tests/markdownGenerator.test.ts +418 -0
- package/tests/output.test.ts +96 -0
- package/tests/setup.ts +486 -0
- package/tests/unit/appIntegration.test.ts +676 -0
- package/tests/unit/appViewState.test.ts +281 -0
- package/tests/unit/audioIpcChannels.test.ts +17 -0
- package/tests/unit/exportService.test.ts +492 -0
- package/tests/unit/hotkeys.test.ts +92 -0
- package/tests/unit/navigationPreload.test.ts +94 -0
- package/tests/unit/onboardingFlow.test.ts +345 -0
- package/tests/unit/permissionManager.test.ts +175 -0
- package/tests/unit/permissionManagerExpanded.test.ts +296 -0
- package/tests/unit/screenRecordingRenderer.test.ts +368 -0
- package/tests/unit/sessionController.test.ts +515 -0
- package/tests/unit/tierManager.test.ts +61 -0
- package/tests/unit/tierManagerExpanded.test.ts +142 -0
- package/tests/unit/transcriptAnalyzer.test.ts +64 -0
- package/tsconfig.json +25 -0
- package/vitest.config.ts +46 -0
|
@@ -0,0 +1,334 @@
|
|
|
1
|
+
# Keyboard Shortcuts Reference
|
|
2
|
+
|
|
3
|
+
markupr uses keyboard shortcuts for efficient workflows. This guide covers all available shortcuts and how to customize them.
|
|
4
|
+
|
|
5
|
+
## Table of Contents
|
|
6
|
+
|
|
7
|
+
- [Quick Reference](#quick-reference)
|
|
8
|
+
- [Recording Shortcuts](#recording-shortcuts)
|
|
9
|
+
- [Navigation Shortcuts](#navigation-shortcuts)
|
|
10
|
+
- [Editing Shortcuts](#editing-shortcuts)
|
|
11
|
+
- [Annotation Shortcuts](#annotation-shortcuts)
|
|
12
|
+
- [Window Shortcuts](#window-shortcuts)
|
|
13
|
+
- [Customization](#customization)
|
|
14
|
+
- [Platform Differences](#platform-differences)
|
|
15
|
+
- [Troubleshooting](#troubleshooting)
|
|
16
|
+
|
|
17
|
+
## Quick Reference
|
|
18
|
+
|
|
19
|
+
### Global Hotkeys (work from any application)
|
|
20
|
+
|
|
21
|
+
| Action | macOS | Windows/Linux |
|
|
22
|
+
|--------|-------|---------------|
|
|
23
|
+
| Start/Stop Recording | `Cmd+Shift+F` | `Ctrl+Shift+F` |
|
|
24
|
+
| Manual Screenshot | `Cmd+Shift+S` | `Ctrl+Shift+S` |
|
|
25
|
+
|
|
26
|
+
### In-App Shortcuts
|
|
27
|
+
|
|
28
|
+
| Action | macOS | Windows/Linux |
|
|
29
|
+
|--------|-------|---------------|
|
|
30
|
+
| Settings | `Cmd+,` | `Ctrl+,` |
|
|
31
|
+
| Keyboard Shortcuts Panel | `Cmd+/` | `Ctrl+/` |
|
|
32
|
+
| Close Dialog | `Escape` | `Escape` |
|
|
33
|
+
| Quit | `Cmd+Q` | `Alt+F4` |
|
|
34
|
+
|
|
35
|
+
## Recording Shortcuts
|
|
36
|
+
|
|
37
|
+
### Start/Stop Recording
|
|
38
|
+
**Default**: `Cmd+Shift+F` (macOS) / `Ctrl+Shift+F` (Windows)
|
|
39
|
+
|
|
40
|
+
This is the primary shortcut that:
|
|
41
|
+
- Starts a new recording session when idle
|
|
42
|
+
- Shows the window selector on first press
|
|
43
|
+
- Stops recording and saves when recording
|
|
44
|
+
|
|
45
|
+
**Customizable**: Yes (Settings > Hotkeys)
|
|
46
|
+
|
|
47
|
+
### Manual Screenshot
|
|
48
|
+
**Default**: `Cmd+Shift+S` (macOS) / `Ctrl+Shift+S` (Windows)
|
|
49
|
+
|
|
50
|
+
Captures a screenshot immediately during recording, bypassing the voice pause detection. Useful for:
|
|
51
|
+
- Capturing specific moments
|
|
52
|
+
- Screenshots during continuous speech
|
|
53
|
+
- Precise timing control
|
|
54
|
+
|
|
55
|
+
**Customizable**: Yes (Settings > Hotkeys)
|
|
56
|
+
|
|
57
|
+
### Pause/Resume Recording
|
|
58
|
+
**Default**: `Cmd+Shift+P` (macOS) / `Ctrl+Shift+P` (Windows)
|
|
59
|
+
|
|
60
|
+
Temporarily pauses the recording session:
|
|
61
|
+
- Audio capture continues (for recovery buffer)
|
|
62
|
+
- Screenshots are not captured
|
|
63
|
+
- Transcription is paused
|
|
64
|
+
|
|
65
|
+
Press again to resume recording.
|
|
66
|
+
|
|
67
|
+
**Customizable**: Not currently
|
|
68
|
+
|
|
69
|
+
## Navigation Shortcuts
|
|
70
|
+
|
|
71
|
+
### Open Settings
|
|
72
|
+
**Shortcut**: `Cmd+,` (macOS) / `Ctrl+,` (Windows)
|
|
73
|
+
|
|
74
|
+
Opens the Settings panel.
|
|
75
|
+
|
|
76
|
+
### Session History
|
|
77
|
+
**Shortcut**: `Cmd+H` (macOS) / `Ctrl+H` (Windows)
|
|
78
|
+
|
|
79
|
+
Opens the Session History browser to view past recordings.
|
|
80
|
+
|
|
81
|
+
### Keyboard Shortcuts Panel
|
|
82
|
+
**Shortcut**: `Cmd+/` (macOS) / `Ctrl+/` (Windows)
|
|
83
|
+
|
|
84
|
+
Opens this keyboard shortcuts reference panel within the app.
|
|
85
|
+
|
|
86
|
+
### Close Dialog/Panel
|
|
87
|
+
**Shortcut**: `Escape`
|
|
88
|
+
|
|
89
|
+
Closes the current dialog, panel, or modal:
|
|
90
|
+
- Settings panel
|
|
91
|
+
- Window selector
|
|
92
|
+
- Session review
|
|
93
|
+
- Export dialog
|
|
94
|
+
- Any modal
|
|
95
|
+
|
|
96
|
+
### Minimize Window
|
|
97
|
+
**Shortcut**: `Cmd+M` (macOS)
|
|
98
|
+
|
|
99
|
+
Minimizes the markupr window to the dock.
|
|
100
|
+
|
|
101
|
+
### Quit Application
|
|
102
|
+
**Shortcut**: `Cmd+Q` (macOS) / `Alt+F4` (Windows)
|
|
103
|
+
|
|
104
|
+
Completely quits markupr:
|
|
105
|
+
- Stops any active recording
|
|
106
|
+
- Saves session state for crash recovery
|
|
107
|
+
- Removes tray icon
|
|
108
|
+
|
|
109
|
+
## Editing Shortcuts
|
|
110
|
+
|
|
111
|
+
These shortcuts work in the Session Review panel.
|
|
112
|
+
|
|
113
|
+
### Delete Selected Item
|
|
114
|
+
**Shortcut**: `Backspace` (macOS) / `Delete` (Windows)
|
|
115
|
+
|
|
116
|
+
Deletes the currently selected feedback item.
|
|
117
|
+
|
|
118
|
+
### Edit Item
|
|
119
|
+
**Shortcut**: `Enter` or `Return`
|
|
120
|
+
|
|
121
|
+
Opens the selected item for inline editing of:
|
|
122
|
+
- Transcription text
|
|
123
|
+
- Annotations
|
|
124
|
+
|
|
125
|
+
### Move Item Up
|
|
126
|
+
**Shortcut**: `Cmd+Up` (macOS) / `Ctrl+Up` (Windows)
|
|
127
|
+
|
|
128
|
+
Moves the selected item up in the list, changing its order in the export.
|
|
129
|
+
|
|
130
|
+
### Move Item Down
|
|
131
|
+
**Shortcut**: `Cmd+Down` (macOS) / `Ctrl+Down` (Windows)
|
|
132
|
+
|
|
133
|
+
Moves the selected item down in the list.
|
|
134
|
+
|
|
135
|
+
### Undo
|
|
136
|
+
**Shortcut**: `Cmd+Z` (macOS) / `Ctrl+Z` (Windows)
|
|
137
|
+
|
|
138
|
+
Undoes the last action:
|
|
139
|
+
- Deletion
|
|
140
|
+
- Reorder
|
|
141
|
+
- Text edit
|
|
142
|
+
- Annotation
|
|
143
|
+
|
|
144
|
+
### Redo
|
|
145
|
+
**Shortcut**: `Cmd+Shift+Z` (macOS) / `Ctrl+Shift+Z` or `Ctrl+Y` (Windows)
|
|
146
|
+
|
|
147
|
+
Redoes the last undone action.
|
|
148
|
+
|
|
149
|
+
### Select All
|
|
150
|
+
**Shortcut**: `Cmd+A` (macOS) / `Ctrl+A` (Windows)
|
|
151
|
+
|
|
152
|
+
Selects all feedback items in the current session.
|
|
153
|
+
|
|
154
|
+
## Annotation Shortcuts
|
|
155
|
+
|
|
156
|
+
These shortcuts work when an item is selected for annotation.
|
|
157
|
+
|
|
158
|
+
### Tool Selection
|
|
159
|
+
|
|
160
|
+
| Tool | Shortcut | Description |
|
|
161
|
+
|------|----------|-------------|
|
|
162
|
+
| Arrow | `1` | Draw arrows to highlight areas |
|
|
163
|
+
| Circle | `2` | Draw circles around elements |
|
|
164
|
+
| Rectangle | `3` | Draw rectangles to box areas |
|
|
165
|
+
| Freehand | `4` | Draw freeform lines |
|
|
166
|
+
| Text | `5` | Add text labels |
|
|
167
|
+
|
|
168
|
+
### Clear All Annotations
|
|
169
|
+
**Shortcut**: `Cmd+Backspace` (macOS) / `Ctrl+Backspace` (Windows)
|
|
170
|
+
|
|
171
|
+
Removes all annotations from the current screenshot.
|
|
172
|
+
|
|
173
|
+
### Annotation Colors
|
|
174
|
+
While annotating:
|
|
175
|
+
- `Shift+1` through `Shift+5`: Quick color selection
|
|
176
|
+
- Or use the color picker in the annotation toolbar
|
|
177
|
+
|
|
178
|
+
## Window Shortcuts
|
|
179
|
+
|
|
180
|
+
### Minimize
|
|
181
|
+
**Shortcut**: `Cmd+M` (macOS)
|
|
182
|
+
|
|
183
|
+
Minimizes to the dock.
|
|
184
|
+
|
|
185
|
+
### Hide Application
|
|
186
|
+
**Shortcut**: `Cmd+H` (macOS)
|
|
187
|
+
|
|
188
|
+
Hides all markupr windows (app stays running in tray).
|
|
189
|
+
|
|
190
|
+
### Close Window
|
|
191
|
+
**Shortcut**: `Cmd+W` (macOS) / `Ctrl+W` (Windows)
|
|
192
|
+
|
|
193
|
+
Closes the current window (app stays running in tray on macOS).
|
|
194
|
+
|
|
195
|
+
## Customization
|
|
196
|
+
|
|
197
|
+
### How to Customize Hotkeys
|
|
198
|
+
|
|
199
|
+
1. Open Settings (`Cmd+,` or `Ctrl+,`)
|
|
200
|
+
2. Navigate to the **Hotkeys** tab
|
|
201
|
+
3. Click on the shortcut field you want to change
|
|
202
|
+
4. Press your desired key combination
|
|
203
|
+
5. The shortcut saves automatically
|
|
204
|
+
|
|
205
|
+
### Recording a New Shortcut
|
|
206
|
+
|
|
207
|
+
When the shortcut field is active:
|
|
208
|
+
1. Press your modifier keys (Cmd, Shift, Alt, Ctrl)
|
|
209
|
+
2. Press the letter or function key
|
|
210
|
+
3. The combination is displayed
|
|
211
|
+
4. Press Escape to cancel
|
|
212
|
+
|
|
213
|
+
### Conflict Detection
|
|
214
|
+
|
|
215
|
+
markupr automatically detects conflicts:
|
|
216
|
+
- **Internal conflicts**: Another markupr shortcut uses the same keys
|
|
217
|
+
- **System conflicts**: Known system shortcuts (may not catch all)
|
|
218
|
+
|
|
219
|
+
If a conflict is detected:
|
|
220
|
+
- A warning message appears
|
|
221
|
+
- You can still save the shortcut
|
|
222
|
+
- The conflicting shortcut will not work
|
|
223
|
+
|
|
224
|
+
### Supported Key Combinations
|
|
225
|
+
|
|
226
|
+
**Modifiers**:
|
|
227
|
+
- `Cmd` / `Command` (macOS)
|
|
228
|
+
- `Ctrl` / `Control` (Windows/Linux)
|
|
229
|
+
- `Shift`
|
|
230
|
+
- `Alt` / `Option`
|
|
231
|
+
|
|
232
|
+
**Keys**:
|
|
233
|
+
- Letters: A-Z
|
|
234
|
+
- Numbers: 0-9
|
|
235
|
+
- Function keys: F1-F12
|
|
236
|
+
- Special: Backspace, Delete, Enter, Escape, Tab
|
|
237
|
+
- Arrows: Up, Down, Left, Right
|
|
238
|
+
|
|
239
|
+
**Recommended patterns**:
|
|
240
|
+
- `Cmd/Ctrl + Shift + Letter` - Most reliable
|
|
241
|
+
- `Cmd/Ctrl + Alt + Letter` - Good alternative
|
|
242
|
+
- Avoid using just `Cmd/Ctrl + Letter` (conflicts with common shortcuts)
|
|
243
|
+
|
|
244
|
+
## Platform Differences
|
|
245
|
+
|
|
246
|
+
### macOS
|
|
247
|
+
|
|
248
|
+
| Key | Symbol |
|
|
249
|
+
|-----|--------|
|
|
250
|
+
| Command | ⌘ |
|
|
251
|
+
| Shift | ⇧ |
|
|
252
|
+
| Option/Alt | ⌥ |
|
|
253
|
+
| Control | ⌃ |
|
|
254
|
+
| Return | ⏎ |
|
|
255
|
+
| Delete | ⌫ |
|
|
256
|
+
|
|
257
|
+
### Windows/Linux
|
|
258
|
+
|
|
259
|
+
Uses text labels instead of symbols:
|
|
260
|
+
- `Ctrl` instead of ⌃
|
|
261
|
+
- `Shift` instead of ⇧
|
|
262
|
+
- `Alt` instead of ⌥
|
|
263
|
+
|
|
264
|
+
### Key Differences
|
|
265
|
+
|
|
266
|
+
| Action | macOS | Windows |
|
|
267
|
+
|--------|-------|---------|
|
|
268
|
+
| Quit App | `Cmd+Q` | `Alt+F4` |
|
|
269
|
+
| Delete | `Backspace` or `Delete` | `Delete` |
|
|
270
|
+
| Redo | `Cmd+Shift+Z` | `Ctrl+Y` |
|
|
271
|
+
| Settings | `Cmd+,` | `Ctrl+,` |
|
|
272
|
+
|
|
273
|
+
## Troubleshooting
|
|
274
|
+
|
|
275
|
+
### Shortcuts Not Working
|
|
276
|
+
|
|
277
|
+
**Check global shortcut registration**:
|
|
278
|
+
1. Look for the tray icon indicator
|
|
279
|
+
2. If no icon, markupr may not have registered hotkeys
|
|
280
|
+
3. Restart markupr
|
|
281
|
+
|
|
282
|
+
**Check permissions (macOS)**:
|
|
283
|
+
1. System Preferences > Security & Privacy > Accessibility
|
|
284
|
+
2. Ensure markupr is checked
|
|
285
|
+
3. Restart markupr if you made changes
|
|
286
|
+
|
|
287
|
+
**Check for conflicts**:
|
|
288
|
+
1. Another app may be capturing the shortcut first
|
|
289
|
+
2. Try changing to a different shortcut
|
|
290
|
+
3. Common conflicts: screenshot tools, window managers
|
|
291
|
+
|
|
292
|
+
### Shortcuts Work in Some Apps But Not Others
|
|
293
|
+
|
|
294
|
+
Some applications capture keyboard input before system hotkeys:
|
|
295
|
+
- Full-screen games
|
|
296
|
+
- Virtual machines
|
|
297
|
+
- Some IDEs (VS Code, IntelliJ)
|
|
298
|
+
|
|
299
|
+
**Solutions**:
|
|
300
|
+
- Use a different shortcut
|
|
301
|
+
- Exit full-screen mode
|
|
302
|
+
- Check app-specific shortcut settings
|
|
303
|
+
|
|
304
|
+
### Resetting Shortcuts
|
|
305
|
+
|
|
306
|
+
To reset all shortcuts to defaults:
|
|
307
|
+
1. Open Settings > Hotkeys
|
|
308
|
+
2. Click the reset icon (circular arrow) in the section header
|
|
309
|
+
3. Confirm the reset
|
|
310
|
+
|
|
311
|
+
Or reset individual shortcuts by:
|
|
312
|
+
1. Click the shortcut field
|
|
313
|
+
2. Press the default key combination
|
|
314
|
+
3. Save
|
|
315
|
+
|
|
316
|
+
### Hotkey Not Registering
|
|
317
|
+
|
|
318
|
+
If a hotkey doesn't appear after pressing keys:
|
|
319
|
+
- Make sure you're pressing at least one modifier key
|
|
320
|
+
- Some keys cannot be used as hotkeys (Fn, media keys)
|
|
321
|
+
- Try pressing keys more slowly
|
|
322
|
+
|
|
323
|
+
### Finding Conflicting Applications
|
|
324
|
+
|
|
325
|
+
To identify what's capturing your shortcut:
|
|
326
|
+
1. Quit applications one by one
|
|
327
|
+
2. Test the shortcut after each
|
|
328
|
+
3. The conflict is with the last-quit app
|
|
329
|
+
|
|
330
|
+
Common culprits:
|
|
331
|
+
- Screenshot tools (Snagit, CleanShot)
|
|
332
|
+
- Clipboard managers (Alfred, Paste)
|
|
333
|
+
- Window managers (Magnet, Rectangle)
|
|
334
|
+
- System utilities (BetterTouchTool)
|