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,336 @@
|
|
|
1
|
+
# Configuration Guide
|
|
2
|
+
|
|
3
|
+
This guide covers all markupr settings and how to customize them for your workflow.
|
|
4
|
+
|
|
5
|
+
## Table of Contents
|
|
6
|
+
|
|
7
|
+
- [Accessing Settings](#accessing-settings)
|
|
8
|
+
- [General Settings](#general-settings)
|
|
9
|
+
- [Recording Settings](#recording-settings)
|
|
10
|
+
- [Capture Settings](#capture-settings)
|
|
11
|
+
- [Appearance Settings](#appearance-settings)
|
|
12
|
+
- [Hotkey Settings](#hotkey-settings)
|
|
13
|
+
- [Advanced Settings](#advanced-settings)
|
|
14
|
+
- [Configuration File](#configuration-file)
|
|
15
|
+
- [Reset to Defaults](#reset-to-defaults)
|
|
16
|
+
|
|
17
|
+
## Accessing Settings
|
|
18
|
+
|
|
19
|
+
Open the Settings panel using:
|
|
20
|
+
- **Keyboard**: `Cmd+,` (macOS) or `Ctrl+,` (Windows/Linux)
|
|
21
|
+
- **Menu**: markupr > Preferences (macOS) or File > Settings (Windows)
|
|
22
|
+
- **Tray Icon**: Right-click > Settings
|
|
23
|
+
|
|
24
|
+
Settings are saved automatically when changed.
|
|
25
|
+
|
|
26
|
+
## General Settings
|
|
27
|
+
|
|
28
|
+
### Output Directory
|
|
29
|
+
|
|
30
|
+
**Default**: `~/Documents/markupr`
|
|
31
|
+
|
|
32
|
+
Where markupr saves your recording sessions. Each session creates a folder with:
|
|
33
|
+
- `feedback.md` - The Markdown document
|
|
34
|
+
- `screenshots/` - Captured screenshots
|
|
35
|
+
- `metadata.json` - Session metadata
|
|
36
|
+
|
|
37
|
+
To change:
|
|
38
|
+
1. Click the **Browse...** button
|
|
39
|
+
2. Select your preferred directory
|
|
40
|
+
3. The change takes effect immediately
|
|
41
|
+
|
|
42
|
+
**Tips**:
|
|
43
|
+
- Choose a cloud-synced folder (Dropbox, iCloud, etc.) for automatic backup
|
|
44
|
+
- Avoid network drives for best performance
|
|
45
|
+
|
|
46
|
+
### Launch at Login
|
|
47
|
+
|
|
48
|
+
**Default**: Off
|
|
49
|
+
|
|
50
|
+
When enabled, markupr starts automatically when you log in to your computer.
|
|
51
|
+
|
|
52
|
+
**macOS**: Adds markupr to Login Items
|
|
53
|
+
**Windows**: Creates a startup registry entry
|
|
54
|
+
**Linux**: Creates a `.desktop` autostart file
|
|
55
|
+
|
|
56
|
+
### Check for Updates
|
|
57
|
+
|
|
58
|
+
**Default**: On
|
|
59
|
+
|
|
60
|
+
When enabled, markupr checks for updates on launch and notifies you when a new version is available.
|
|
61
|
+
|
|
62
|
+
Updates are never installed automatically - you always have control.
|
|
63
|
+
|
|
64
|
+
## Recording Settings
|
|
65
|
+
|
|
66
|
+
### Countdown Before Recording
|
|
67
|
+
|
|
68
|
+
**Default**: 3 seconds
|
|
69
|
+
**Options**: 0, 3, or 5 seconds
|
|
70
|
+
|
|
71
|
+
A countdown timer before recording begins, giving you time to:
|
|
72
|
+
- Position your window
|
|
73
|
+
- Clear your throat
|
|
74
|
+
- Prepare what to say
|
|
75
|
+
|
|
76
|
+
Set to 0 for immediate recording.
|
|
77
|
+
|
|
78
|
+
### Show Transcription Preview
|
|
79
|
+
|
|
80
|
+
**Default**: On
|
|
81
|
+
|
|
82
|
+
Displays a live transcription overlay during recording, showing:
|
|
83
|
+
- What markupr hears
|
|
84
|
+
- Confidence indicators
|
|
85
|
+
- Last 100 characters of transcription
|
|
86
|
+
|
|
87
|
+
Disable if you find it distracting.
|
|
88
|
+
|
|
89
|
+
### Show Audio Waveform
|
|
90
|
+
|
|
91
|
+
**Default**: On
|
|
92
|
+
|
|
93
|
+
Displays a visual audio level indicator during recording, helping you:
|
|
94
|
+
- Confirm your microphone is working
|
|
95
|
+
- See when voice activity is detected
|
|
96
|
+
- Adjust speaking volume
|
|
97
|
+
|
|
98
|
+
## Capture Settings
|
|
99
|
+
|
|
100
|
+
### Pause Threshold
|
|
101
|
+
|
|
102
|
+
**Default**: 1500ms (1.5 seconds)
|
|
103
|
+
**Range**: 500ms - 3000ms
|
|
104
|
+
|
|
105
|
+
How long you must pause speaking before markupr captures a screenshot.
|
|
106
|
+
|
|
107
|
+
**Lower values (500-1000ms)**:
|
|
108
|
+
- More screenshots captured
|
|
109
|
+
- Good for detailed feedback
|
|
110
|
+
- May capture unintended screenshots
|
|
111
|
+
|
|
112
|
+
**Higher values (2000-3000ms)**:
|
|
113
|
+
- Fewer screenshots captured
|
|
114
|
+
- Good for general overviews
|
|
115
|
+
- Requires deliberate pauses
|
|
116
|
+
|
|
117
|
+
### Minimum Time Between Captures
|
|
118
|
+
|
|
119
|
+
**Default**: 500ms
|
|
120
|
+
**Range**: 300ms - 2000ms
|
|
121
|
+
|
|
122
|
+
The minimum gap between automatic screenshots, preventing:
|
|
123
|
+
- Duplicate screenshots
|
|
124
|
+
- Rapid-fire captures during stuttering
|
|
125
|
+
- Overwhelming screenshot counts
|
|
126
|
+
|
|
127
|
+
### Image Format
|
|
128
|
+
|
|
129
|
+
**Default**: PNG
|
|
130
|
+
**Options**: PNG, JPEG
|
|
131
|
+
|
|
132
|
+
- **PNG**: Lossless quality, larger files, best for text/UI
|
|
133
|
+
- **JPEG**: Smaller files, configurable quality, good for photos
|
|
134
|
+
|
|
135
|
+
### Image Quality (JPEG only)
|
|
136
|
+
|
|
137
|
+
**Default**: 85%
|
|
138
|
+
**Range**: 1-100%
|
|
139
|
+
|
|
140
|
+
Higher values = better quality but larger files.
|
|
141
|
+
|
|
142
|
+
Recommended:
|
|
143
|
+
- **85-95%**: High quality, reasonable file size
|
|
144
|
+
- **70-84%**: Good balance
|
|
145
|
+
- **50-69%**: Smaller files, visible compression
|
|
146
|
+
|
|
147
|
+
### Maximum Image Width
|
|
148
|
+
|
|
149
|
+
**Default**: 1920px
|
|
150
|
+
**Range**: 800px - 2400px
|
|
151
|
+
|
|
152
|
+
Screenshots wider than this are scaled down, which:
|
|
153
|
+
- Reduces file size
|
|
154
|
+
- Maintains readability
|
|
155
|
+
- Works well in most documents
|
|
156
|
+
|
|
157
|
+
For 4K displays, consider increasing to 2400px.
|
|
158
|
+
|
|
159
|
+
## Appearance Settings
|
|
160
|
+
|
|
161
|
+
### Theme
|
|
162
|
+
|
|
163
|
+
**Default**: System
|
|
164
|
+
**Options**: Dark, Light, System
|
|
165
|
+
|
|
166
|
+
- **System**: Matches your operating system theme
|
|
167
|
+
- **Dark**: Always use dark theme
|
|
168
|
+
- **Light**: Always use light theme
|
|
169
|
+
|
|
170
|
+
### Accent Color
|
|
171
|
+
|
|
172
|
+
**Default**: Blue (#3B82F6)
|
|
173
|
+
**Options**: 9 presets + custom color
|
|
174
|
+
|
|
175
|
+
The accent color is used for:
|
|
176
|
+
- Recording indicator
|
|
177
|
+
- Buttons and links
|
|
178
|
+
- Focus states
|
|
179
|
+
- Progress indicators
|
|
180
|
+
|
|
181
|
+
Preset colors:
|
|
182
|
+
- Blue, Purple, Pink, Red, Orange
|
|
183
|
+
- Amber, Emerald, Teal, Cyan
|
|
184
|
+
|
|
185
|
+
Or use the custom color picker for any color.
|
|
186
|
+
|
|
187
|
+
## Hotkey Settings
|
|
188
|
+
|
|
189
|
+
### Toggle Recording
|
|
190
|
+
|
|
191
|
+
**Default**: `CommandOrControl+Shift+F`
|
|
192
|
+
|
|
193
|
+
The primary hotkey to start and stop recording sessions.
|
|
194
|
+
|
|
195
|
+
### Manual Screenshot
|
|
196
|
+
|
|
197
|
+
**Default**: `CommandOrControl+Shift+S`
|
|
198
|
+
|
|
199
|
+
Capture a screenshot immediately, regardless of voice activity.
|
|
200
|
+
|
|
201
|
+
### Customizing Hotkeys
|
|
202
|
+
|
|
203
|
+
1. Click on a hotkey field
|
|
204
|
+
2. Press your desired key combination
|
|
205
|
+
3. If there's a conflict, you'll see a warning
|
|
206
|
+
4. The new hotkey is saved automatically
|
|
207
|
+
|
|
208
|
+
**Supported modifiers**:
|
|
209
|
+
- `Cmd` (macOS) / `Ctrl` (Windows/Linux)
|
|
210
|
+
- `Shift`
|
|
211
|
+
- `Alt` / `Option`
|
|
212
|
+
- `Ctrl` (macOS)
|
|
213
|
+
|
|
214
|
+
**Tips**:
|
|
215
|
+
- Avoid common system shortcuts
|
|
216
|
+
- Test hotkeys in different applications
|
|
217
|
+
- Some applications may capture hotkeys before markupr
|
|
218
|
+
|
|
219
|
+
### Hotkey Conflicts
|
|
220
|
+
|
|
221
|
+
If a hotkey conflicts with another application or system shortcut:
|
|
222
|
+
1. markupr shows a warning
|
|
223
|
+
2. Try a different combination
|
|
224
|
+
3. Consider disabling the conflicting shortcut in the other app
|
|
225
|
+
|
|
226
|
+
## Advanced Settings
|
|
227
|
+
|
|
228
|
+
### OpenAI API Key
|
|
229
|
+
|
|
230
|
+
Your OpenAI API key for transcription. See [Getting Started](GETTING_STARTED.md) for setup instructions.
|
|
231
|
+
|
|
232
|
+
**Security**: The API key is stored securely using:
|
|
233
|
+
- macOS: Keychain
|
|
234
|
+
- Windows: Credential Manager
|
|
235
|
+
- Linux: Secret Service (libsecret)
|
|
236
|
+
|
|
237
|
+
### Debug Mode
|
|
238
|
+
|
|
239
|
+
**Default**: Off
|
|
240
|
+
|
|
241
|
+
When enabled:
|
|
242
|
+
- Verbose logging in DevTools console
|
|
243
|
+
- Additional diagnostic information
|
|
244
|
+
- Performance metrics
|
|
245
|
+
|
|
246
|
+
Useful for troubleshooting. Disable for normal use.
|
|
247
|
+
|
|
248
|
+
### Keep Audio Backups
|
|
249
|
+
|
|
250
|
+
**Default**: Off
|
|
251
|
+
|
|
252
|
+
When enabled, markupr saves the raw audio from each session:
|
|
253
|
+
- Stored as `.wav` files in the session folder
|
|
254
|
+
- Useful if transcription needs correction
|
|
255
|
+
- Increases storage usage
|
|
256
|
+
|
|
257
|
+
## Configuration File
|
|
258
|
+
|
|
259
|
+
markupr stores settings in a JSON file:
|
|
260
|
+
|
|
261
|
+
**macOS**: `~/Library/Application Support/markupr/config.json`
|
|
262
|
+
**Windows**: `%APPDATA%\markupr\config.json`
|
|
263
|
+
**Linux**: `~/.config/markupr/config.json`
|
|
264
|
+
|
|
265
|
+
### Example Configuration
|
|
266
|
+
|
|
267
|
+
```json
|
|
268
|
+
{
|
|
269
|
+
"outputDirectory": "/Users/you/Documents/markupr",
|
|
270
|
+
"launchAtLogin": false,
|
|
271
|
+
"checkForUpdates": true,
|
|
272
|
+
"defaultCountdown": 3,
|
|
273
|
+
"showTranscriptionPreview": true,
|
|
274
|
+
"showAudioWaveform": true,
|
|
275
|
+
"pauseThreshold": 1500,
|
|
276
|
+
"minTimeBetweenCaptures": 500,
|
|
277
|
+
"imageFormat": "png",
|
|
278
|
+
"imageQuality": 85,
|
|
279
|
+
"maxImageWidth": 1920,
|
|
280
|
+
"theme": "system",
|
|
281
|
+
"accentColor": "#3B82F6",
|
|
282
|
+
"hotkeys": {
|
|
283
|
+
"toggleRecording": "CommandOrControl+Shift+F",
|
|
284
|
+
"manualScreenshot": "CommandOrControl+Shift+S"
|
|
285
|
+
},
|
|
286
|
+
"debugMode": false,
|
|
287
|
+
"keepAudioBackups": false
|
|
288
|
+
}
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
**Note**: Editing the config file directly is not recommended. Use the Settings UI instead.
|
|
292
|
+
|
|
293
|
+
## Reset to Defaults
|
|
294
|
+
|
|
295
|
+
### Reset a Single Section
|
|
296
|
+
|
|
297
|
+
Each settings section has a reset button (circular arrow icon) that resets only that section to defaults.
|
|
298
|
+
|
|
299
|
+
### Reset All Settings
|
|
300
|
+
|
|
301
|
+
At the bottom of the Settings panel:
|
|
302
|
+
1. Click **Reset All to Defaults**
|
|
303
|
+
2. Confirm the action
|
|
304
|
+
|
|
305
|
+
This resets all settings but:
|
|
306
|
+
- Does NOT delete your sessions
|
|
307
|
+
- Does NOT remove your API key
|
|
308
|
+
- Does NOT affect your output directory contents
|
|
309
|
+
|
|
310
|
+
### Complete Reset
|
|
311
|
+
|
|
312
|
+
To completely reset markupr:
|
|
313
|
+
|
|
314
|
+
1. Quit markupr
|
|
315
|
+
2. Delete the config directory:
|
|
316
|
+
- macOS: `rm -rf ~/Library/Application\ Support/markupr`
|
|
317
|
+
- Windows: Delete `%APPDATA%\markupr`
|
|
318
|
+
- Linux: `rm -rf ~/.config/markupr`
|
|
319
|
+
3. Relaunch markupr
|
|
320
|
+
|
|
321
|
+
## Import/Export Settings
|
|
322
|
+
|
|
323
|
+
### Export Settings
|
|
324
|
+
|
|
325
|
+
1. Go to Settings > Advanced > Settings Management
|
|
326
|
+
2. Click **Export**
|
|
327
|
+
3. Choose a location to save `markupr-settings.json`
|
|
328
|
+
|
|
329
|
+
### Import Settings
|
|
330
|
+
|
|
331
|
+
1. Go to Settings > Advanced > Settings Management
|
|
332
|
+
2. Click **Import**
|
|
333
|
+
3. Select a previously exported settings file
|
|
334
|
+
4. Settings are applied immediately
|
|
335
|
+
|
|
336
|
+
**Note**: API keys are NOT included in exports for security reasons.
|