/rnote

Sketch and take handwritten notes.

Primary LanguageRustGNU General Public License v3.0GPL-3.0




CI Donate using Liberapay

Rnote

Sketch and take handwritten notes.

Rnote is an open-source vector-based drawing app for sketching, handwritten notes and to annotate documents and pictures. It is targeted at students, teachers and those who own a drawing tablet and provides features like Pdf and picture import and export, an infinite canvas and an adaptive UI for big and small screens.

Written in Rust and GTK4.

Features

  • Adaptive UI focused on stylus input
  • Pressure-sensitive stylus input with different and configurable stroke styles
  • Create many different shapes with the shape tool
  • Move, rotate, resize and modify existing content with the selection tool
  • Different document expansion layouts ( fixed pages, continuous vertical, infinite in every direction, .. )
  • Customizable background colors, patterns, sizes
  • Customizable page format
  • (Optional) pen sounds
  • Reconfigurable stylus button shortcuts
  • An integrated workspace browser for quick access to related files
  • Drag & Drop, clipboard support
  • Pdf, Bitmap and Svg image import
  • Documents can be exported to Svg, Pdf and Xopp. Document pages and selections to Svg, Png and Jpeg.
  • Save and load the documents in the native .rnote file format
  • Tabs to work on multiple documents at the same time
  • Autosave, printing

Disclaimer

The file format is still unstable. It might change and break compatibility between versions.

Website

Rnote has a project website: rnote.flxzt.net

Installation

Linux

Download the official flatpak on Flathub here.

Download on Flathub

MacOS

Thanks to @dehesselle the app is available on MacOS as an app bundle.
Check out the repository, the latest release can be downloaded here.

Download MacOS app bundle

Windows

Download the Windows installer from the latest release which can be found here.

Download Windows installer

Install using Winget:

winget install flxzt.rnote

Downgrading

Because the file format still is unstable, downgrading to a specific version might be necessary.

List all available past versions on flathub:

flatpak remote-info --log flathub com.github.flxzt.rnote

Pick the commit from the desired version and downgrade with:

sudo flatpak update --commit=<commit-hash> com.github.flxzt.rnote 

After downgrading, the flatpak version can be pinned or unpinned with:

$ flatpak mask com.github.flxzt.rnote
$ flatpak mask --remove com.github.flxzt.rnote

To update to the latest version again, unpin and run flatpak update.

Screenshots

overview
selection
typewriter
focus-mode
workspaces
document-settings
action-shortcuts

Pitfalls & Known Issues

  • Drag & Drop not working -
    Make sure Rnote has permissions to the locations you are dragging files from. Can be granted in Flatseal (a Flatpak permissions manager)

  • Odd location for current file -
    When the directory displayed in the header title is something like /run/user/1000/../, rnote does not have permissions to access the directory. Again, granting them in Flatseal fixes this issue.

  • Stylus buttons move canvas / are not functional -
    Make sure that the xf86-input-wacom, drivers on X11 and libinput on Wayland and libwacom are installed and loaded.

  • While hovering with the stylus, other input events are blocked in some regions of the screen -
    Supposed to be palm rejection, but might be undesirable. If there is a left- / righthanded system tablet setting, make sure it is set correctly. Rnote can't disable this unfortunately. ( discussed in issue #329 )

  • One of the stylus buttons shortcut mapping does not work as intended -
    On some devices one stylus button is mapped to a dedicated "Eraser" mode (which is the back-side on other styli). The buttons in the shortcuts settings could then be inconsistent ( the secondary / upper button is actually the primary / lower button , or reverse ). To change the tool that is mapped to this "Eraser" mode, do the following:

    • Hover over the canvas, and press and hold the button that that is suspected to be mapped to the "Eraser" mode
    • Switch to the desired pen style while keeping the button pressed
    • When releasing the pressed button, it should switch back to the previous pen style
    • The pen style in the "Eraser" mode should now be remembered

Translations

Translation status

A great way to contribute to the project without writing code is adding a new or start maintaining an existing translation language. The translations files are located in crates/rnote-ui/po/.

Creating translations for new languages or updating existing ones can be done in multiple ways:

  • take the rnote.pot file and generate a new .po translation file from it, for example with "Poedit". Add the new translation language to LINGUAS and submit a PR with the changed files.
  • use weblate for an easy way to translate in the browser without having to deal with git.

Fonts

The following fonts are bundled with the application:

  • Grape Nuts: Grape Nuts is a simple handwritten casual font.
  • OpenDyslexic-Regular: OpenDyslexic is a typeface designed against some common symptoms of dyslexia.
  • TT2020Base-Regular: TT2020 is an advanced, open source, hyperrealistic, multilingual typewriter font for a new decade.
  • Virgil: The font that powers Excalidraw.

File Format

The .rnote file format is a gzipped json file.

So far breaking changes in the format happened in versions:

  • v0.2.0
  • v0.3.0
  • v0.4.0
  • v0.5.0

To be able to open and export older files that are incompatible with the newest version, look under Installation /Downgrading to install older versions of Rnote.

License

Rnote is available under GPL-3.0-or-later. See the LICENSE file for more info.

Copyright (C) 2023  The Rnote Authors

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <https://www.gnu.org/licenses/>.

Credits

  • A huge thanks to the contributors, translators and to all that donated. You are the ones that help keep the project going!
  • Freesound is the source for the pen sounds. The individual sounds are credited in sounds/Licenses.md
  • Rough.js provides the algorithms for implementation of Rnote's rough shapes.
  • Pizarra is an innovative drawing app with advanced shaping and featuring an infinite zoom. It is a great inspiration of the architecture of Rnote. Go check it out!

Community

If you have any questions or want to start a general discussion, open a topic in the Github Discussions section.

There are also two Matrix chat rooms:

Drawings Created With Rnote

If you have drawn something cool in Rnote and want to share it, submit a PR to add it here. :)

Pikachu Love Suits Nature's cat

Building

Build instructions for Linux are documented in BUILDING.md and for other platforms here