-
-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
enhancementNew feature or requestNew feature or requestpriority:highHigh priorityHigh priorityscope:productDesktop app (apps/desktop)Desktop app (apps/desktop)
Description
Summary
Implement the settings infrastructure and core settings (Editor + General).
Reference: Inkdrop settings UI
Tasks
Phase 0: Schema Foundation
- Create
stores/settings/schema.ts(types + defaults + version) - Create
stores/settings/settingsStore.ts(persist + migrate) - Export selectors for each section
Phase 1: MVP
- Build reusable components:
SettingRow,Toggle,Select,NumberInput - Implement
EditorSection.tsx - Wire editor settings to CodeMirror
- Implement
GeneralSection.tsx(default notebook, open folder) - Update sidebar with new sections
Architecture
3-layer separation:
- Schema - Data model with versioning (
SETTINGS_VERSION = 1) - Store - Zustand persist with migrate function
- UI - Reusable components consuming store
Editor Settings
| Setting | Type | Default |
|---|---|---|
| Line Numbers | checkbox | false |
| Highlight Active Line | checkbox | false |
| Line Wrapping | checkbox | true |
| Inline Image Widgets | checkbox | true |
| Scroll Past End | checkbox | true |
| Font Size | number | 14 |
| Font Family | text | system-ui, monospace |
| Line Height | number | 1.6 |
| Tab Size | number | 2 |
| Indent with Tabs | checkbox | false |
General Settings
| Setting | Type | Default |
|---|---|---|
| Default Notebook | dropdown | Inbox |
| Open Data Folder | button | - |
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or requestpriority:highHigh priorityHigh priorityscope:productDesktop app (apps/desktop)Desktop app (apps/desktop)