- App Config - Stored in
{APP_DATA}/config.json- Contains notes folder path - Per-Folder Settings - Stored in
{NOTES_FOLDER}/.scratch/settings.json- All other settings
App Config
Stored in platform-specific app data directory:- macOS:
~/Library/Application Support/com.erictli.scratch/config.json - Windows:
%APPDATA%\com.erictli.scratch\config.json - Linux:
~/.local/share/com.erictli.scratch/config.json
AppConfig Schema
Absolute path to the notes folder. Null if not configured (first launch).
Example
Per-Folder Settings
Stored in{NOTES_FOLDER}/.scratch/settings.json. These settings are specific to each notes folder.
Settings Schema
theme
Theme and color customization settings.Theme mode:
"light", "dark", or "system" (follows OS preference)Custom color overrides for light mode. If null, uses default colors.
Custom color overrides for dark mode. If null, uses default colors.
ThemeColors Schema
editorFont
Editor typography settings.Font family preset:
"system-sans"- System sans-serif font"serif"- Serif font (Georgia-based)"monospace"- Monospace font (for code)
Base font size in pixels. Range: 12-24. Default: 16.
Font weight for bold text and headings:
600- Semibold700- Bold (default)800- Extra bold
Line height multiplier. Range: 1.2-2.0. Default: 1.6.
gitEnabled
Whether to show Git status and commit UI in sidebar. If null, defaults to false.
pinnedNoteIds
Array of note IDs to pin to the top of the note list. Pinned notes are sorted by modification date among themselves, then all unpinned notes follow.
textDirection
Text direction for editor:
"ltr"- Left-to-right (default)"rtl"- Right-to-left (for Arabic, Hebrew, etc.)
editorWidth
Editor content width:
"narrow"- ~600px (for focused reading)"normal"- ~750px (default)"wide"- ~900px"full"- 100% width (uses all available space)
defaultNoteName
Template for new note filenames. Supports template tags:
{timestamp}- Unix timestamp (e.g., 1234567890){date}- YYYY-MM-DD{year}- YYYY{month}- MM{day}- DD{time}- HH-MM-SS (dashes for filename safety){counter}- Auto-incrementing number (1, 2, 3, …)
"Note {date}"→"Note 2024-03-15.md""{year}/{month}/{day}"→"2024/03/15.md"(creates nested folders)"Meeting {counter}"→"Meeting 1.md","Meeting 2.md"
interfaceZoom
UI zoom level. Range: 0.5-2.0. Default: 1.0 (100%).Affects entire interface including sidebar, editor, and dialogs.
Default Settings
When a new notes folder is selected, Scratch creates a defaultsettings.json:
null use their documented default values.
Complete Example
Examplesettings.json with custom theme, typography, and Git enabled:
Programmatic Access
Get Settings
Update Settings
update_settings command replaces the entire settings object.
UI Customization
Settings are exposed in the UI:-
Settings Page - Settings → General, Appearance tabs
- Theme mode switcher
- Font family, size, line height, bold weight pickers
- Text direction toggle
- Editor width selector
- Default note name template input
- Git integration toggle
-
Direct JSON Editing - For advanced users
- Open
{NOTES_FOLDER}/.scratch/settings.jsonin a text editor - Edit JSON directly (supports custom colors)
- Restart Scratch to apply changes
- Open
Color Customization
Custom colors are not exposed in the UI to keep the settings simple. Power users can editsettings.json directly:
Example: Custom Purple Theme
Example: Custom Purple Theme
Example: High Contrast Light Theme
Example: High Contrast Light Theme
Migration Notes
v0.4.x → v0.5.x
- Added
defaultNoteNametemplate support - Added
interfaceZoomfor UI scaling - Deprecated: none
v0.3.x → v0.4.x
- Changed
editorFontfrom flat structure to nested object - Added
textDirectionandeditorWidthsettings - Old settings are not migrated automatically
See Also
- Tauri Commands Reference -
get_settings/update_settingsAPI - Customization Guide - User guide for theme and typography
- File Structure - Where settings are stored