Native Windows sticky-note app in C. Each window holds multiple notes as tabs,
editing Markdown .md files with live preview. Windows and tab order are
restored on launch.
Requires MinGW-w64 (gcc + windres) and GNU Make.
make app # builds quicknote.exe
make test # builds and runs the headless unit tests
make clean
The app icon ("qN") is built from assets/quicknote.ico via assets/app.rc.
Stored under %APPDATA%\quickNote\:
notes\<id>.md— one Markdown file per note; the leading# <title>H1 is the note name, the rest is the bodypreferences.json— schema v2: awindowsarray (geometry, ordered tab note-ids, active index) and anotesarray (name, id)
Run quicknote.exe. A tray icon appears in the notification area.
Each window holds one or more notes as tabs in a Windows-Terminal-style strip across the title bar:
+/ Ctrl+N — add a new tab (new note) to the current window- Alt+N — open a new window (with one new note)
- Drag a tab — reorder tabs within the window
- ✕ (tab close button) / middle-click — close a tab; the note stays on disk. Closing the last tab closes the window.
- Ctrl+R — rename the active tab/note (press Enter to confirm, Escape to cancel)
- Ctrl+Shift+D — delete the active note permanently (confirms first)
- Title-bar X — close the window. Its notes stay on disk and remain reopenable from the tray, but the closed window is not restored. On launch the app reopens whichever windows were open when you last Quit (or a fresh window if none)
The tray menu lists open note names. New Note opens a new window. Clicking a listed note focuses its window and activates that tab; if the window was closed, it reopens. Quit saves state and exits.
Markdown is rendered live as you type (headings, bold, italic,
strikethrough, code, bullet/numbered lists). Delimiters are hidden
(**bold** displays as just bold) but kept in the .md file, so note files
stay plain Markdown on disk.
A formatting sidebar (left edge) toggles styles on the selection:
| Button | Action | Shortcut |
|---|---|---|
| B | Bold **…** |
Ctrl+B |
| I | Italic *…* |
Ctrl+I |
Strikethrough ~~…~~ |
Ctrl+Shift+X | |
| • | Bullet list - |
Ctrl+Shift+8 |
| 1. | Numbered list N. |
Ctrl+Shift+7 |
Each button toggles: applying again on already-formatted text removes it.
Win32 + RichEdit, md4c (markdown), cJSON (state). Third-party sources
vendored under third_party/.