Minimal, modern markdown viewer and editor for Linux and Windows. GTK3 + WebKit on Linux. PyQt6 + QtWebEngine on Windows. No Electron, no tray daemon, no account. Starts in under a second.
Reading view · Split view · Editor · Dark theme · Command palette (Ctrl+P)
A single Python script that turns any .md file into a clean, themeable reading view — hitting Ctrl+E flips it into a proper editor with a focused formatting toolbar, a command palette, folder-wide search, an outline sidebar, live split-view preview with scroll-sync, auto-save snapshots, and live math / diagrams.
The chrome stays minimal: three buttons in the header, one toolbar that only appears in edit mode, everything else is keyboard-driven.
- GitHub-flavoured light/dark theme, auto-detected from your system theme
- Pygments syntax highlighting in code blocks
- Live reload when the file changes on disk
- Drag-and-drop any
.mdonto the window
- Full toolbar: New · Save · Save As · Undo · Redo · Cut · Copy · Paste
- Formatting: Bold · Italic · Strikethrough · Heading · Link · Inline code · Quote · Lists · Checklist · Image · HR
- Split view with semantic scroll-sync (preview follows editor cursor)
- Smart paste — images →
./assets/, HTML → markdown, CSV → table - Smart list continuation (Enter in a list auto-continues; empty bullet exits)
- Block move (
Alt+↑/Alt+↓) - Typewriter mode (
Ctrl+Shift+T) — keep the cursor vertically centered - Native undo/redo via GtkSourceView; word count + reading time in the toolbar
- KaTeX math (
$x^2$,$$\int$$,\(…\),\[…\]) - Mermaid diagrams in
```mermaidfences - Transclusion —
![[other-note]]or![[other-note#Section]] - Click-to-toggle task checkboxes in preview — round-trips to source
- Print stylesheet and a custom CSS drop-in (
~/.config/markview/custom.css) - Tables, footnotes, admonitions, definition lists, abbreviations
- Command palette (
Ctrl+P) — fuzzy jump to actions, headings, or files in the folder - Folder full-text search (
Ctrl+Shift+F) — recursive.md, context snippets - Outline sidebar (
Ctrl+Shift+O) — slide-in heading tree - Back / forward (
Alt+←/Alt+→) — history of opened files + cursor lines
Open / New / Save · Toggle edit / split / preview · Outline · Typewriter · Reload · Theme · Folder search · Open from URL · Insert table · All tasks in folder · Backlinks to this file · Check links · Snapshot history · Export PDF / DOCX / HTML / EPUB via pandoc.
- Every save writes a dated copy to
~/.local/state/markview/snapshots/. Latest 30 per document; browse with the palette.
Download the latest Windows installer from GitHub Releases.
The Windows build ships as an .exe installer built with Inno Setup and includes the packaged PyQt6 runtime.
sudo add-apt-repository ppa:mareekkk/canarybuilds
sudo apt update
sudo apt install markviewsudo snap install markviewflatpak install flathub com.canarybuilds.Markview
flatpak run com.canarybuilds.Markviewsudo apt install python3-gi gir1.2-gtk-3.0 gir1.2-webkit2-4.1 \
gir1.2-gtksource-4 python3-markdown python3-pygments
git clone https://github.com/Canary-Builds/markview.git ~/markview
cd ~/markview && ./install.shsudo pacman -S python-gobject gtk3 webkit2gtk-4.1 gtksourceview4 \
python-markdown python-pygmentssudo dnf install python3-gobject gtk3 webkit2gtk4.1 gtksourceview4 \
python3-markdown python3-pygments| Dep | Adds |
|---|---|
pandoc |
PDF / DOCX / HTML / EPUB export from the palette |
python3-html2text |
Higher-quality HTML-clipboard → markdown conversion |
| internet | KaTeX + Mermaid (loaded from a CDN on each render) |
py -3.13 -m pip install -r requirements-win.txt pyinstaller
powershell -ExecutionPolicy Bypass -File .\build_win.ps1This produces:
| Path | Purpose |
|---|---|
dist\markview\markview.exe |
packaged Windows app |
installer_output\markview-<version>-win-setup.exe |
Windows installer |
Linux:
markview # welcome screen
markview notes.md # open a file
markview -V # versionWindows:
.\dist\markview\markview.exe
py .\markview_win.py README.md| Key | Action |
|---|---|
Ctrl+O |
Open file |
Ctrl+N |
New document |
Ctrl+S / Ctrl+Shift+S |
Save / Save As |
Ctrl+E |
Toggle edit mode |
Ctrl+P |
Command palette |
Ctrl+F / Ctrl+Shift+F |
Find in buffer / Search in folder |
Ctrl+Shift+O |
Toggle outline sidebar |
Ctrl+Shift+T |
Toggle typewriter mode |
Ctrl+R |
Reload from disk |
Ctrl+D |
Toggle theme |
Ctrl+Q |
Quit |
Alt+← / Alt+→ |
Back / forward |
Alt+↑ / Alt+↓ |
Move line/selection |
Ctrl+B / I / K / H |
Bold / Italic / Link / Heading |
Ctrl+Z / Ctrl+Shift+Z |
Undo / Redo |
Full reference: docs/wiki/Keyboard-Shortcuts.md.
markview is configuration-free by default. Optional drop-ins:
| Path | Purpose |
|---|---|
~/.config/markview/custom.css |
Appended to the preview stylesheet on every render |
<doc>/assets/ |
Where pasted images land (auto-created) |
~/.local/state/markview/snapshots/ |
Auto-save history |
See Configuration for details.
markview/
├── markview.py # Linux GTK3/WebKit frontend
├── markview_win.py # Windows PyQt6/QtWebEngine frontend
├── markview_core.py # shared markdown/rendering helpers
├── style.css # preview theme (light/dark/print)
├── icon-final.png # master icon (1536×1024 source)
├── icon.png # 512×512 square (installed via install.sh)
├── icon-{16..256}.png # hicolor sizes
├── markview.desktop # desktop entry template
├── install.sh # user-local installer
├── build_win.ps1 # Windows bundle + installer helper
├── installer_win.iss # Inno Setup script
├── requirements-win.txt
├── markview.spec # PyInstaller spec for Windows
├── uninstall.sh
├── CHANGELOG.md
├── ROADMAP.md
├── CONTRIBUTING.md
├── LICENSE
├── .github/ # issue + PR templates, CI
└── docs/wiki/ # wiki pages (mirrored to the GitHub wiki)
Render pipeline: markdown + shared preprocessors (tasks, transclusion) → HTML → native webview frontend. Linux uses GTK3 + WebKit2. Windows uses PyQt6 + QtWebEngine/QWebChannel. See Architecture.
Planned features and the ones intentionally skipped live in ROADMAP.md.
Pull requests welcome — please read CONTRIBUTING.md first. Small, focused PRs against main.
MIT — see LICENSE.
- python-markdown + Pygments for rendering
- GtkSourceView for the editor
- KaTeX and Mermaid for math and diagrams




