Rnote
A vector-based drawing and handwriting app for GNOME, with pressure-sensitive stylus input, infinite canvas, PDF annotation, and Xournal++ import.
Rnote is a vector-based drawing and note-taking application built with GTK4
and Rust, designed primarily for stylus input on GNOME desktops. It targets
students, researchers, and digital artists who want a native Linux experience
for handwritten notes and annotated PDFs. The project has grown to over 11k
GitHub stars and is actively maintained, making it one of the most polished
Rust-native GUI applications available.
Features
- Pressure-sensitive stylus input — configurable stroke styles respond to pen pressure for natural handwriting
- Flexible document layouts — choose between fixed pages, continuous vertical scroll, or a truly infinite canvas
- Rich import support — import PDF, bitmap images, and SVG files into any document
- Versatile export — export documents to SVG, PDF, PNG, JPEG, and the
Xournal++
.xoppformat - Native
.rnoteformat — documents are stored as gzipped JSON, keeping files small and inspectable - Multi-document tabs — work on several documents at once in a tabbed interface
- Autosave and printing — never lose work; print directly from the app
- Drag & drop and clipboard — paste images and files directly onto the canvas
- Customizable backgrounds — choose colors, grid/dotted/ruled patterns, and page sizes
- Integrated workspace browser — browse and open recent files without leaving the app
- Optional pen sounds — audible feedback when drawing strokes
Installation
Flatpak from Flathub is the recommended install method on Linux, as Rnote is a Meson/Cargo hybrid desktop application and is not published as a standalone crate on crates.io.
# All Linux distributions (Flatpak)
flatpak install flathub com.github.flxzt.rnote# macOS (Homebrew)
brew install --cask rnote# Windows (winget)
winget install flxzt.rnote# Arch Linux (AUR)
yay -S rnote# Nix
nix-env -iA nixpkgs.rnote
For Debian/Ubuntu and Fedora, the Flatpak above is the easiest path. If you prefer a native package, pre-built binaries for each release are available on the releases page.
To build from source, you need Rust (via rustup) and Meson:
git clone https://github.com/flxzt/rnote.git
cd rnote
meson setup _build --prefix=/usr
ninja -C _build
sudo ninja -C _build installUsage
Rnote is a graphical application — launch it from your application menu or run:
# Launch via Flatpak
flatpak run com.github.flxzt.rnote
# Launch native install
rnoteOpening and annotating a PDF
- Open Rnote and create a new document (File → New).
- Drag a PDF file onto the canvas, or use File → Import to place it.
- Select a pen tool from the toolbar and annotate directly over the PDF pages.
- Export the annotated result via File → Export → PDF.
Exporting to Xournal++ format
# From within the app: File → Export → Xournal++ (.xopp)
# The resulting file can be opened in Xournal++ on any platform.Keyboard shortcuts
| Action | Shortcut |
|---|---|
| New document | Ctrl+N |
| Open document | Ctrl+O |
| Save | Ctrl+S |
| Export | Ctrl+Shift+E |
| Undo | Ctrl+Z |
| Redo | Ctrl+Shift+Z |
| Toggle sidebar | F9 |
| Full screen | F11 |
Rnote vs Xournal++
| Feature | Rnote | Xournal++ |
|---|---|---|
| Written in | Rust + GTK4 | C++ + GTK3 |
| Native Wayland | ✅ | ✅ |
| Infinite canvas | ✅ | ❌ |
| Vector strokes | ✅ | ❌ |
.xopp import | ✅ | ✅ (native) |
| PDF annotation | ✅ | ✅ |
| Flatpak | ✅ | ✅ |
| Active development | ✅ | ✅ |
Rnote stores strokes as vectors, meaning they scale without quality loss and the file format remains compact. Xournal++ is the more established tool with a larger plugin ecosystem, but Rnote is the better choice for users who prefer a modern GTK4 interface and native Wayland support.