▓█████▄ ▒█████ ██▓███ ▓█████ ██▓███ ▄▄▄ ▓█████▄
▒██▀ ██▌▒██▒ ██▒▓██░ ██▒▓█ ▀ ▓██░ ██▒▒████▄ ▒██▀ ██▌
░██ █▌▒██░ ██▒▓██░ ██▓▒▒███ ▓██░ ██▓▒▒██ ▀█▄ ░██ █▌
░▓█▄ ▌▒██ ██░▒██▄█▓▒ ▒▒▓█ ▄ ▒██▄█▓▒ ▒░██▄▄▄▄██ ░▓█▄ ▌
░▒████▓ ░ ████▓▒░▒██▒ ░ ░░▒████▒▒██▒ ░ ░ ▓█ ▓██▒░▒████▓
▒▒▓ ▒ ░ ▒░▒░▒░ ▒▓▒░ ░ ░░░ ▒░ ░▒▓▒░ ░ ░ ▒▒ ▓▒█░ ▒▒▓ ▒
░ ▒ ▒ ░ ▒ ▒░ ░▒ ░ ░ ░ ░░▒ ░ ▒ ▒▒ ░ ░ ▒ ▒
░ ░ ░ ░ ░ ░ ▒ ░░ ░ ░░ ░ ▒ ░ ░ ░
░ ░ ░ ░ ░ ░ ░ ░
░ ░
DopePad is a tiny GUI notepad for quick notes, todo dumps, random ideas, and all that "I need this saved right now" stuff.
Hit a hotkey, type, done.
It is fast, keyboard-first, and intentionally simple.
- open in a flash (especially with the background daemon)
- write with markup that stays visible, styled in place
- daily note + one-off notes without building a second brain
- also opens normal
.txt/.mdwhen you need a plain file - looks at home on a dark Murasaki setup
- native GTK4 / libadwaita window
- paper-first UI (chrome stays out of the way)
- daily notes and loose notes under
~/.local/share/dopepad/notes/ .dpadfiles with light frontmatter (hidden while you write)- DopeSyntax inline styles — markers stay in the file
- autosave
- note picker (
Ctrl+P) and find in note (Ctrl+F) - single-instance app + optional
--daemonso hotkeys feel instant
Deps (Debian / similar):
sudo apt install build-essential pkg-config \
libgtk-4-dev libadwaita-1-devThen:
./scripts/install.shWhat it does:
- builds a release
dopepad - links it into
~/.local/bin - installs a desktop entry
- sets up PATH in your shell profile if needed
Then just run:
dopepad./scripts/uninstall.shOptional full cleanup (including your notes):
./scripts/uninstall.sh --purge-datadopepad # today's daily note
dopepad --daily # same
dopepad --new # brand new loose note
dopepad something.txt # plain file, saved as-is
dopepad note.dpad # managed note
dopepad --daemon # warm in background (no window)Managed notes live here:
~/.local/share/dopepad/notes/
daily_YYYY-MM-DD.dpad
note_YYYY-MM-DD_HHMMSS.dpad
On disk a managed note looks roughly like this (frontmatter is hidden in the UI):
---
kind: daily
created_at: 2026-07-09T00:00:00-03:00
updated_at: 2026-07-09T00:00:00-03:00
---
# Daily · 2026-07-09
Window titles:
DopePad · Daily · 2026-07-09
DopePad · Note · 2026-07-09 02:14
DopePad · readme.txt
Open any path. If it is not a DopePad note, the buffer is the file.
dopepad ~/Notes/ideas.txt
dopepad README.mdSuggested binds (config lives on your machine; DopePad does not rewrite it for you):
spawn-at-startup "dopepad" "--daemon"
Mod+Alt+N { spawn "dopepad" "--daily"; }
Mod+Shift+N { spawn "dopepad" "--new"; }The daemon pays the GTK tax once at login. After that, hotkeys should feel snappy.
Markers stay in the file. The editor just paints on top.
| you type | you see |
|---|---|
# Title |
big heading |
## Section |
medium heading |
### Sub |
smaller heading |
- item |
bullet |
- [ ] task |
open task |
- [x] task |
done (muted + strike) |
> quote |
thought / quote |
! alert |
callout |
==highlight== |
highlight |
**bold** |
bold |
`code` |
code |
@tag |
tag |
| key | what |
|---|---|
Ctrl+S |
save now |
Ctrl+N |
new note |
Ctrl+D |
daily |
Ctrl+P |
search notes in the vault |
Ctrl+F |
find in this note |
Esc |
close overlay / find |
Ctrl+Q |
quit |
Alt / hover top |
peek header |
Autosave kicks in shortly after you pause typing.
cargo build --release
./scripts/bench-launch.sh --dailyCold process without a daemon is mostly GTK waking up. Keep --daemon on session start if you care about hotkey feel.
cargo fmt
cargo test
cargo build --releaseRust, GTK4, libadwaita, plain TextView / TextBuffer.