Lightweight GTK4/libadwaita Markdown viewer and editor for Linux
Project description
Marka
A lightweight, native Linux Markdown viewer and editor built with GTK4 and libadwaita. Renders Markdown in real time with GitHub-style typography, syntax-highlighted code blocks via Pygments, and automatic light/dark theme support.
[Editor pane] | [Live preview pane]
|
# Hello World | <h1>Hello World</h1> (rendered)
|
**bold** text | <b>bold</b> text (rendered)
Features
- Live split-pane preview with GitHub-style CSS
- Syntax highlighting via GtkSourceView 5 (plain-text fallback included)
- Full CommonMark support: tables, task lists, footnotes, fenced code, strikethrough
- Find in document (Ctrl+F)
- Zoom preview (Ctrl+= / Ctrl+-)
- Print preview (Ctrl+P)
- Export rendered document to HTML
- Drag-and-drop file opening
- Recent files history
- Persistent window geometry and last-opened file across sessions
- Respects system light/dark theme via libadwaita
Installation
pip (recommended for developers)
pip install marka
marka
Ubuntu / Debian (PPA)
sudo add-apt-repository ppa:HemanthGangula/marka
sudo apt update
sudo apt install marka
Flatpak
flatpak install flathub io.github.HemanthGangula.Marka
flatpak run io.github.HemanthGangula.Marka
Snap
sudo snap install marka
marka
Manual / from source
git clone https://github.com/HemanthGangula/marka.git
cd marka
# Install system dependencies (Ubuntu 24.04 Noble)
sudo apt install python3-gi gir1.2-gtk-4.0 gir1.2-adw-1 \
gir1.2-webkit-6.0 gir1.2-gtksource-5
# Install Python dependencies
pip install -r requirements.txt
# Run directly
python3 main.py
# Or install via pip in editable mode
pip install -e .
marka
System Requirements
| Component | Minimum |
|---|---|
| Python | 3.10 or later |
| GTK | 4.6 or later (4.10 recommended) |
| libadwaita | 1.x |
| WebKitGTK | 6.0 |
| GtkSourceView | 5 (optional, for editor syntax highlighting) |
| OS | Linux (X11 or Wayland) |
Keyboard Shortcuts
| Shortcut | Action |
|---|---|
| Ctrl+N | New file |
| Ctrl+O | Open file |
| Ctrl+S | Save |
| Ctrl+Shift+S | Save As |
| Ctrl+W | Close window |
| Ctrl+F | Find in preview |
| Ctrl+= | Zoom in preview |
| Ctrl+- | Zoom out preview |
| Ctrl+0 | Reset zoom |
| Ctrl+P | |
| Ctrl+Shift+E | Export to HTML |
| F11 | Toggle fullscreen |
Running Tests
python3 -m unittest discover -s tests -v
Contributing
Bug reports and pull requests are welcome at https://github.com/HemanthGangula/marka
Please open an issue before submitting large changes.
License
MIT License. Copyright (c) 2026 Hemanth. See the LICENSE file for full text.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file marka-1.0.0.tar.gz.
File metadata
- Download URL: marka-1.0.0.tar.gz
- Upload date:
- Size: 39.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
59b0713c84030d042aff9c87c9caa3cb05db582f7db61863cf18cfee89632cb8
|
|
| MD5 |
20999de5f57df1c1b5a41c94d2b45263
|
|
| BLAKE2b-256 |
0a6eb718b725114f993c2ebd836e5915a3ad725f050d0bfc8eba0446e7fa4e84
|
File details
Details for the file marka-1.0.0-py3-none-any.whl.
File metadata
- Download URL: marka-1.0.0-py3-none-any.whl
- Upload date:
- Size: 30.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
75604c49dd1a6cae71d12a53a44a2f4083d664ee14d7a037931307d531f8da47
|
|
| MD5 |
a8c94bea5961f2e943d4129c7d4b549d
|
|
| BLAKE2b-256 |
85062a768a3806fcbf526687e397c7aa281a19d57345c602e194e67ed823daa3
|