Desktop Integration ๐ฅ๏ธ
January 16, 2026 ยท View on GitHub
๐ Languages: Deutsch ยท English
Edit your notes with any Markdown editor on desktop
๐ Overview
Desktop integration allows you to edit notes on PC/Mac:
- ๐ Any Markdown editor works
- ๐ Automatic synchronization via WebDAV
- ๐พ Dual-format: JSON (master) + Markdown (mirror)
- โก Last-Write-Wins conflict resolution
๐ฏ Why Markdown?
Dual-Format Architecture
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Android App โ
โ โ
โ โโโโโโโโโโโโ โโโโโโโโโโโโโโโ โ
โ โ JSON โ โโโ โ Markdown โ โ
โ โ (Master) โ โ (Mirror) โ โ
โ โโโโโโโโโโโโ โโโโโโโโโโโโโโโ โ
โโโโโโโโโโฌโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโ
โ โ
โ โ
WebDAV Server
โ โ
โโโโโโดโโโโโ โโโโโโดโโโโโโโ
โ /notes/ โ โ /notes-md/โ
โ *.json โ โ *.md โ
โโโโโโโโโโโ โโโโโโโโโโโโโ
โ โ
โ โ
โโโโโโดโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโ
โ Desktop Editor โ
โ (VS Code, Typora, etc.) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Advantages
JSON (Master):
- โ Reliable and fast
- โ Structured data (IDs, timestamps)
- โ Primary sync mechanism
- โ Always active
Markdown (Mirror):
- โ Human-readable
- โ Desktop editor compatible
- โ Syntax highlighting
- โ Optionally activatable
๐ Quick Start
1. First Synchronization
Important: Perform a sync FIRST before activating desktop integration!
- Set up app (see QUICKSTART.en.md)
- Test server connection
- Create first note
- Synchronize (pull-to-refresh or auto-sync)
- โ
Server automatically creates
/notes/and/notes-md/folders
2. Activate Desktop Integration
- Settings โ Desktop Integration
- Toggle ON
- Initial export starts - Shows progress (X/Y)
- โ
All existing notes are exported as
.md
3. Mount WebDAV as Network Drive
Windows
1. Open Explorer
2. Right-click on "This PC"
3. "Map network drive"
4. Enter URL: http://YOUR-SERVER:8080/notes-md/
5. Username: noteuser
6. Password: (your WebDAV password)
7. Drive letter: Z:\ (or any)
8. Done!
Access: Z:\ in Explorer
macOS
1. Open Finder
2. Menu "Go" โ "Connect to Server" (โK)
3. Server address: http://YOUR-SERVER:8080/notes-md/
4. Connect
5. Username: noteuser
6. Password: (your WebDAV password)
7. Done!
Access: Finder โ Network โ notes-md
Linux (GNOME)
1. Open Files / Nautilus
2. "Other Locations"
3. "Connect to Server"
4. Server address: dav://YOUR-SERVER:8080/notes-md/
5. Username: noteuser
6. Password: (your WebDAV password)
7. Done!
Access: /run/user/1000/gvfs/dav:host=...
Linux (davfs2 - permanent)
# Installation
sudo apt install davfs2
# Create mount point
sudo mkdir -p /mnt/notes-md
# Mount once
sudo mount -t davfs http://YOUR-SERVER:8080/notes-md/ /mnt/notes-md
# Permanent in /etc/fstab
echo "http://YOUR-SERVER:8080/notes-md/ /mnt/notes-md davfs rw,user,noauto 0 0" | sudo tee -a /etc/fstab
Access: /mnt/notes-md/
๐ Markdown Editors
Recommended Editors
1. VS Code โญ Recommended
Advantages:
- โ Free & open source
- โ Markdown preview (Ctrl+Shift+V)
- โ Syntax highlighting
- โ Git integration
- โ Extensions (spell check, etc.)
Setup:
1. Install VS Code
2. Mount WebDAV drive
3. Open folder: Z:\notes-md\ (Windows) or /mnt/notes-md (Linux)
4. Done! Edit Markdown files
Extensions (optional):
Markdown All in One- Shortcuts & previewMarkdown Preview Enhanced- Better previewCode Spell Checker- Spell checking
2. Typora
Advantages:
- โ WYSIWYG Markdown editor
- โ Minimalist design
- โ Live preview
- โ ๏ธ Paid (~15โฌ)
Setup:
1. Install Typora
2. Mount WebDAV
3. Open folder in Typora
4. Edit notes
3. Notepad++
Advantages:
- โ Lightweight
- โ Fast
- โ Syntax highlighting
- โ ๏ธ No Markdown preview
Setup:
1. Install Notepad++
2. Mount WebDAV
3. Open files directly
4. Obsidian
Advantages:
- โ Second brain philosophy
- โ Graph view for links
- โ Many plugins
- โ ๏ธ Sync conflicts possible (2 masters)
Setup:
1. Install Obsidian
2. Open WebDAV as vault
3. Caution: Obsidian creates own metadata!
โ ๏ธ Not recommended: Can alter frontmatter
๐ Markdown File Format
Structure
Each note is exported as .md file with YAML frontmatter:
---
id: abc-123-def-456
created: 2026-01-05T14:30:22Z
updated: 2026-01-05T14:30:22Z
tags: []
---
# Note Title
Note content here...
Frontmatter Fields
| Field | Type | Description | Required |
|---|---|---|---|
id | UUID | Unique note ID | โ Yes |
created | ISO8601 | Creation date | โ Yes |
updated | ISO8601 | Modification date | โ Yes |
tags | Array | Tags (future) | โ No |
Filenames
Sanitization rules:
Title: "My Shopping List ๐"
โ Filename: "My_Shopping_List.md"
Removed:
- Emojis: ๐ โ removed
- Special chars: / \ : * ? " < > | โ removed
- Multiple spaces โ single space
- Spaces โ underscore _
Examples:
"Meeting Notes 2026" โ "Meeting_Notes_2026.md"
"To-Do: Project" โ "To-Do_Project.md"
"Vacation โ๏ธ" โ "Vacation.md"
๐ Synchronization
Workflow: Android โ Desktop
- Create/edit note in app
- Run sync (auto or manual)
- JSON is uploaded (
/notes/abc-123.json) - Markdown is exported (
/notes-md/Note_Title.md) (only if Desktop Integration ON) - Desktop editor shows changes (after refresh)
Workflow: Desktop โ Android
- Edit Markdown file (in mounted folder)
- Save - File is immediately on server
- In app: Run Markdown import
- Settings โ "Import Markdown Changes"
- Or: Auto-import on every sync (future)
- App adopts changes (if desktop version is newer)
Conflict Resolution: Last-Write-Wins
Rule: Newest version (by updated timestamp) wins
Example:
App version: updated: 2026-01-05 14:00
Desktop version: updated: 2026-01-05 14:30
โ Desktop wins (newer timestamp)
Automatic:
- โ On Markdown import
- โ On JSON sync
- โ ๏ธ No merge conflicts - only complete overwrite
โ๏ธ Settings
Desktop Integration Toggle
Settings โ Desktop Integration
ON (activated):
- โ
New notes โ automatically exported as
.md - โ
Updated notes โ
.mdupdate - โ
Deleted notes โ
.mdremains (future: also delete)
OFF (deactivated):
- โ No Markdown export
- โ JSON sync continues normally
- โ
Existing
.mdfiles remain
Initial Export
What happens on activation:
- All existing notes are scanned
- Progress dialog shows progress (e.g., "23/42")
- Each note is exported as
.md - On errors: Individual note is skipped
- Success message with number of exported notes
Time: ~1-2 seconds per 50 notes
๐ ๏ธ Advanced Usage
Manual Markdown Creation
You can create .md files manually:
---
id: 00000000-0000-0000-0000-000000000001
created: 2026-01-05T12:00:00Z
updated: 2026-01-05T12:00:00Z
---
# New Desktop Note
Content here...
โ ๏ธ Important:
idmust be valid UUID (e.g., with uuidgen.io)- Timestamps in ISO8601 format
- Frontmatter enclosed with
---
Bulk Operations
Edit multiple notes at once:
- Mount WebDAV
- Open all
.mdfiles in VS Code - Find & Replace across all files (Ctrl+Shift+H)
- Save
- In app: "Import Markdown Changes"
Scripting
Example: Sort all notes by date
#!/bin/bash
cd /mnt/notes-md/
# Sort all .md files by update date
for file in *.md; do
updated=$(grep "^updated:" "$file" | cut -d' ' -f2)
echo "$updated $file"
done | sort
โ Troubleshooting
"404 Not Found" when mounting WebDAV
Cause: /notes-md/ folder doesn't exist
Solution:
- Perform first sync - Folder is created automatically
- OR: Create manually via terminal:
curl -X MKCOL -u noteuser:password http://server:8080/notes-md/
Markdown files don't appear
Cause: Desktop integration not activated
Solution:
- Settings โ "Desktop Integration" ON
- Wait for initial export
- Refresh WebDAV folder
Changes from desktop don't appear in app
Cause: Markdown import not executed
Solution:
- Settings โ "Import Markdown Changes"
- OR: Wait for auto-sync (future feature)
"Frontmatter missing" error
Cause: .md file without valid YAML frontmatter
Solution:
- Open file in editor
- Add frontmatter at the beginning:
--- id: NEW-UUID-HERE created: 2026-01-05T12:00:00Z updated: 2026-01-05T12:00:00Z --- - Save and import again
๐ Security & Best Practices
Do's โ
- โ Backup before bulk edits - Create local backup
- โ One editor at a time - Don't edit in app AND desktop in parallel
- โ Wait for sync - Run sync before desktop editing
- โ Respect frontmatter - Don't change manually (unless you know what you're doing)
Don'ts โ
- โ Parallel editing - App and desktop simultaneously โ conflicts
- โ Delete frontmatter - Note can't be imported anymore
- โ Change IDs - Note is recognized as new
- โ Manipulate timestamps - Conflict resolution doesn't work
Recommended Workflow
1. Sync in app (pull-to-refresh)
2. Open desktop
3. Make changes
4. Save
5. In app: "Import Markdown Changes"
6. Verify
7. Run another sync
๐ Comparison: JSON vs Markdown
| Aspect | JSON | Markdown |
|---|---|---|
| Format | Structured | Flowing text |
| Readability (human) | โ ๏ธ Medium | โ Good |
| Readability (machine) | โ Perfect | โ ๏ธ Parsing needed |
| Metadata | Native | Frontmatter |
| Editors | Code editors | All text editors |
| Sync speed | โ Fast | โ ๏ธ Slower |
| Reliability | โ 100% | โ ๏ธ Frontmatter errors possible |
| Mobile-first | โ Yes | โ No |
| Desktop-first | โ No | โ Yes |
Conclusion: Using both formats = Best experience on both platforms!
๐ฎ Future Features
Planned for v1.3.0+:
- โณ Auto-Markdown-import - Automatically on every sync
- โณ Bidirectional sync - Without manual import
- โณ Markdown preview - In the app
- โณ Conflict UI - On simultaneous changes
- โณ Tags in frontmatter - Synchronized with app
- โณ Attachments - Images/files in Markdown
๐ See also:
- QUICKSTART.en.md - App setup
- FEATURES.en.md - Complete feature list
- BACKUP.en.md - Backup & restore
Last update: v1.2.1 (2026-01-05)