All Projects → flxzt → rnote

flxzt / rnote

Licence: GPL-3.0 License
A simple drawing application to create handwritten notes.

Programming Languages

rust
11053 projects
Meson
512 projects

Projects that are alternatives of or similar to rnote

Butterfly
🎨 Powerful, minimalistic, cross-platform, opensource note-taking app
Stars: ✭ 381 (-75.23%)
Mutual labels:  drawing, notes, notes-app
keep-desktop
Google Keep Dark: Desktop application for Windows, Mac and Linux with Dark Theme.
Stars: ✭ 42 (-97.27%)
Mutual labels:  notes, notes-app
Playhouse
A Playground for HTML/CSS/JavaScript
Stars: ✭ 28 (-98.18%)
Mutual labels:  gtk, gtk4
onepile
Playground for the future of private notes and document management
Stars: ✭ 41 (-97.33%)
Mutual labels:  notes, notes-app
warble
Native Linux word-guessing game built in Vala and Gtk for elementary OS
Stars: ✭ 82 (-94.67%)
Mutual labels:  gtk, gtk4
TapeDeck
[WIP] Modern and cross-platform music player with MPD support
Stars: ✭ 22 (-98.57%)
Mutual labels:  gtk, gtk4
inox
Email with notmuch rust
Stars: ✭ 22 (-98.57%)
Mutual labels:  gtk4, gtk4-rs
mdyna-app
React+Redux+Electron Note taking application repository
Stars: ✭ 68 (-95.58%)
Mutual labels:  notes, notes-app
NoteUsingRoom
Note Apps using Room database
Stars: ✭ 18 (-98.83%)
Mutual labels:  notes, notes-app
flawesome
Productivity Tool
Stars: ✭ 56 (-96.36%)
Mutual labels:  notes, notes-app
notey.app
📝 A notes app to keep track of important things
Stars: ✭ 17 (-98.89%)
Mutual labels:  notes, notes-app
calculator
Calculator app designed for elementary OS
Stars: ✭ 73 (-95.25%)
Mutual labels:  gtk, gtk4
notesnook
A fully open source & end-to-end encrypted note taking alternative to Evernote.
Stars: ✭ 5,098 (+231.47%)
Mutual labels:  notes, notes-app
dippi
Calculate display info like DPI and aspect ratio
Stars: ✭ 57 (-96.29%)
Mutual labels:  gtk, gtk4
notes
Simple text editor for your Markdown and LaTeX notes.
Stars: ✭ 24 (-98.44%)
Mutual labels:  notes, notes-app
Notes
😊开源App项目,「记」——摒除杂质,专注创作
Stars: ✭ 30 (-98.05%)
Mutual labels:  notes, notes-app
uwunote
Kinda like Windows 10 Sticky notes but subjectively better - Written in go and GTK3+
Stars: ✭ 16 (-98.96%)
Mutual labels:  notes, notes-app
onboarding
Onboarding app for new users
Stars: ✭ 47 (-96.94%)
Mutual labels:  gtk, gtk4
monte-note
Note taking application with a rich set of editing and management features
Stars: ✭ 63 (-95.9%)
Mutual labels:  notes, notes-app
gtk
🪟 Soothing pastel theme for GTK3
Stars: ✭ 150 (-90.25%)
Mutual labels:  gtk, gtk4




Rnote

A simple drawing application to create handwritten notes.
Written in Rust and GTK4.

Rnote aims to be a simple but functional note taking application for freehand drawing or annotating pictures or documents. It eventually should be able to import / export various media file formats.
One main consideration is that it is vector based, which should make it very flexible in editing and altering the contents.

Disclaimer
This is my first Rust and GTK project and I am learning as I go along. Expect some bugs and crashes. Also, the file format is still unstable and will change between versions!

Installation

Rnote is available as a flatpak on Flathub:


Download on Flathub


Downgrading

Because the file format still is unstable, downgrading to a specific version might be necessary and can be done with:

version command
v0.2.5 sudo flatpak update --commit=2036a51c8118a30eb4ceb2e16ba2f84fa8ca4dc814fb88d9424709380093a6c6 com.github.flxzt.rnote
v0.1.6 sudo flatpak update --commit=ffb9781989704f3eb28910437bb26709357566a977178d5fb4ef1a2926edae8b com.github.flxzt.rnote

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

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

Then the sheets can be exported as an SVG or PDF and can be re-imported into the newest version of Rnote.

Screenshots

If you have drawn something cool in Rnote and want to share it, let me know so I can include it as a screenshot. :)

main_window_dark main_window_light pdf_annotation multiple_pages selection

Images drawn with Rnote

tree

Pitfalls

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

To-Do

  • switch geometry to nalgebra wherever possible. It can operate on f64 and has much more features than graphene.
  • printing & PDF export
  • PDF import ( as vector & bitmap )
  • vector & bitmap picture import
  • implement bezier curve stroke with variable stroke width (see Quadratic bezier offsetting with selective subdivision, Precise offsetting of bezier curves)
  • Textured brush strokes with tweakable parameters
  • Stroke elements drag tool: drag along parts of the selected strokes based on the proximity of a round pen tool
  • parallelizing rendering and actions which affect many strokes.
  • asychronous rendering
  • cancellable rendering
  • strokes rotation
  • (implemented: lines, rectangles, ellipses) drawing rough shapes by porting rough.js to Rust (see ./src/rough-rs)
  • export as bitmap picture
  • implement text fields (Plain, Markdown)
  • implement optional stroke smoothing

Feature Ideas:

  • Stroke Layers
  • History list
    • with the ability to move them up and down the history
  • Stroke trash restorer
    • with a preview of the deleted strokes
  • Stylus buttons configuration to map them to different actions and / or pen types
  • Locked strokes: mode to toggle the mutability of strokes
  • Multiple sheet tabs
  • Share and synchronize sheets with others ( via e.g. the peer-2-peer protocol libp2p ).

File Format

The .rnote file format is a gzipped json file. It is (de)compressed with the flate2 crate and (de)serialized with the Serde crate.

So far the first breaking change in the format happened between v0.1.6 and v0.2.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.

Building, contributing

Build instructions and guidelines how to contribute are outlined in CONTRIBUTING.md

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].