Giter Site home page Giter Site logo

flxzt / rnote Goto Github PK

View Code? Open in Web Editor NEW
6.0K 42.0 205.0 259.76 MB

Sketch and take handwritten notes.

Home Page: https://rnote.flxzt.net

License: GNU General Public License v3.0

Rust 96.88% Shell 0.27% Python 0.34% Meson 2.18% CSS 0.32%
gtk gtk4 rust gtk4-rs notes notes-app wacom-tablet drawing handwriting pdf

rnote's Introduction




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 the 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

rnote's People

Contributors

albanobattistella avatar d0v4hkiin avatar detiam avatar dotlambda avatar doublonmousse avatar flxzt avatar github-actions[bot] avatar iamamirhe avatar kbdharun avatar kianmeng avatar kneemund avatar lesnake04 avatar mat931 avatar mbousq avatar mdonoughe avatar mr-spade avatar nbenitez avatar orhun avatar oscfdezdz avatar phildevprog avatar rickstanley avatar sei0o avatar silvasch avatar teivdk avatar thatonecalculator avatar thesmuks avatar tornaxo7 avatar vistaus avatar weblate avatar y-mx-b avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rnote's Issues

.rnote file preview in file managers

Screenshot from 2022-01-21 14-02-04

It would be nice to be able to see some sort of preview of .rnote files from a file manager. Would help the files be recognizable apart from just their filenames.

Color scheme switcher is confusing

There are grey, white and dark dots. the first two don't appear to be any different, the last one makes the UI dark but not the canvas.

The tooltips say default/prefer light/prefer dark, probably referencing the new color scheme thing, but that doesn't seem to work as expected either:

  • when system prefers light/dark, all 3 modes in the app behave the same
  • when system doesn't prefer anything, white and grey behave the same

So I'm honestly not sure what the intention was with these.

Add option to proportionally resize images

In most software there is an option to hold a button (usually ctrl ) to proportionally resize images on drag (images shoud stay original aspect ratio and not be stretched)

changed files show up duplicated in the workspace browser

Overwriting existing files (e.g. saving) duplicates the item in the listview. The duplicates point to the same, updated file and the actual file is not affected and reloading the list (for example when changing the directory) fixes it.
Possibly the same issue as here, but I can't replicate this behaviour in a seperate crate, so it could be a bug in the usage of the DirectoryLis
Bildschirmfoto vom 2021-10-07 10-15-14
t

Suggestions for Drawing Lines

HI,

while writing text and formulae, drawing lines is something that I do very often. To facilitate that

  • make lines default in the forms section - circles and rectangles are used relatively rarely in a note taking context.

  • by default, lines should snap from the basepoint in 1/2 * 1/3 * 1/4 = 1/24 or 1/2 * 1/2 * 1/4 steps of the 360° of the circle_{*}

  • add the possibility to draw lines with arrow heads, arrows that is,

    • as another form besides lines, rectangles and circles.
    • ideally in an automatic way: drawing a line (shape=line) + drawing the head (shape=free) --> perfect arrow

    Not sure though, if the latter point is easily implementable.

{*} The ratio is, that we want for to be able to draw in every quadrant ( 0° - 90°=360° / 4 ) , then of course 45° = 360° * 1/2 * 1/4.
To add some more flexibility, add 1/3 or 1/2.

Select all shortcut

Adding select all option and shortcut for it would be a great feature to add

Feature Request: Vertical Spacer

A nice feature that is present in both journal and OneNote (i am sure others have it too) is the vertical space button. It allows to push everything further down or up if space is needed.

Resizing image glitch

When attempting to resize an image using my laptops touchscreen the image will glitch to seemingly random sizes before becoming the correct size.
Note that this only happens when a secondary display is connected!
This is on Pop!_OS 21.10 with Rnote 0.2.5 Flatpak

2022-01-18-16.407434636.mp4

Enhancement: Support for smaller screen sizes

I have tried the app on my laptop (15") and the app doesn't fit the screen. Maximise doesn't seem to work and I can resize the height of the application either. The application is fine when I connect my screen (25")

Weird "Draw with mouse" option

When the app starts, it seems like none of the tools do anything if you're not using the app on touch. Turns out, the reason is the "Draw with mouse" option in the secondary menu, which is off by default.

What is the use case for having the mouse do nothing, and is it even important to have an option for that at all?

Full screen mode and Floating Toolbar

This software is very neat and simple, please consider about adding this features.

  1. Full Screen mode for online class
  2. floating bottom toolbar
  3. Add option to change the cursor icon, (like pen cursor)
    Thankyou

Headerbar papercuts

  • The app icon in the top left isn't something that's done anymore. It's especially weird since it doesn't appear to do anything, even though it does appear clickable with the new styling.
  • The position of the panel between tools and menus is weird: it's not really aligned to anything, so it looks odd visually. I'd recommend placing New and Undo/Redo on the left, before the tools.
  • It's not intuitive what "Fit to Format" does - the icon is unusual and there is no immediate feedback after pressing it.

image

Selecting object apiece

Most applications that support vector objects allow to select those objects by clicking on them with a according tool.

Have i overlooked it?

[Design] Linked undo & redo

Going forward, in libadwaita-using projects, the usage of linked css class in a GtkBox holding GtkButtons in the headerbar is discouraged due to different design direction than others using libadwaita.

Please understand this, and change those instances with buttons directly on the headerbar, and a separation to the other controls from the once-linked buttons with a separator in-between those and the rest of the UI up there, with the spacer css class.

[GTK] Hamburger menu renders as garbage

Clicking on the Hamburger menu generates graphical garbage:

HamburgerMenu

Picture taken with a camera because screenshot won't capture this

This on PopOS 21.10 a GNOME-based distro running GNOME 40. I installed Rnote using Flatpak.

Xournal++ File Import/Export

Just discovered your application and I am already loving it!! Keep up the good work. I don't what plans you have for this app but I was just thinking that xournal file import would be a great addition to this!

Exported vector images might have overlapping symbol IDs. Noticeable in PDF pages

There is no routine yet at vector images import to make symbol IDs unique. This is especially noticable when importing PDFs, where the glyphs are inlined with IDs like <symbol overflow="visible" id="glyph{x}-{y}"> .... While this is not an issue while drawing the images inside the app (they are rendered one at a time), when merging the images to one SVG on export or printing, it causes issues where they look like this:
bug

The first page is fine, because it is the first on top in the exported SVG and there the symbol IDs are correct, but on the second page these IDs overlap.

A fix would be to parse imported SVGs and replace the IDs with ones that are sure to be unique.
Maybe there is a library for this, but I did not find one for Rust that has this feature yet.

Windows build info

Before, build tutorial for windows was present on readme.md, can you give few little lines on it

Bug: Duplication offset

When selecting multiple items the selection rectangles have a slight offset from the actual items. Initially when you place the items they seem fine but as soon as you reselect them they go to the positions of the selection rectangles. See video below:

selection-offset.mp4

Bug: Pen strokes not registered

I have tested this both on Xournal++ and rnote and I have noticed that some of the pen strokes in rnote are not registered/ignored. Let me know I can be of any help on this one

Feature request: Add shortcuts for the various tools

Using a drawing tablet (e.g. wacom) I often don´t have a keyboard next to me so I have to leave the pen and grab the mouse to change tools. My drawing tablet has configurable buttons that I can assign to keyboard keys and shortcuts. You could create a shortcut system with default shortcuts (e.g. F1 for pen, F2 for bursh, etc.) to assign tablet buttons to. It would also be nice if users could modify it to their liking. I know I have openned quite a few issues for you.. I am willing to help, but I haven´t used gtk-rs before. If you are willing to help me with any question that arrive while learning it I might be able to implement some of them :)

Enhancement: Explain different pen types better

My tablet has pressure sensitive input which works well in xournalpp, but doesn't seem to work at all in rnote (everything is the same width). I'm assuming this is not yet intended to work and so it is a feature request rather than a bug?

Add the ability to create music sheet pattern.

I'd like to propose a feature request, a music sheet pattern. I'm not sure on the best way to implement this but maybe it could be done by implementing a feature in the settings called "Pattern Space" and Pattern group when the Pattern is set to Lines.

Pattern Space would create a different height between Pattern Groups and Pattern Group would be a number of lines. Pattern Height would still stay as height between the lines in a group or in a page if the Pattern Group is set to 0.

This app is totally different but I'd like to share a link to a proprietary app that the devs of rnote might wanna look into and maybe use it to get some inspiration for rnote. It's called notability:
https://notability.com/

[Improvement] More shortcuts

Currently, ctrl+z (Undo) and ctrl+shift+z (Redo) are missing, having them would be a huge usability improvement.

Also, it's standard for GNOME applications (and some non-GNOME applications) to quit when pressing ctrl+q (close all open instances). ctrl+w is also used for closing tabs or if only one tab is open then closing active window.

ctrl+q example:
q

ctrl+w example:
w

Dynamic titlebar resizing to allow thinner windows

Here is the absolute thinnest that the Rnote window can go on my 1366px-wide display:
Screenshot from 2022-01-21 14-10-08

For my use case, taking notes in class, I'd like to be able to split-screen Rnote with Zoom, which can be pretty greedy and use over half of my screen. Same with Discord.

The solution I'd like to propose is dynamically hiding/transforming different elements in the titlebar to allow the interface to shrink further. I've marked up my general thoughts on the titlebar areas below:

image

I think the biggest and most necessary change is to collapse the tool selection bar into a dropdown when the window size requires it.

Scroll by Dragging without Scrollbar

Hi,

when I'm working on a document with a wacom tablet pen, scrolling a sheet is cumbersome, since hitting the scrollbar is not so easy.

A second option to move the sheet up and down would be to make the grey fields next to sheet itself a dragging target,
that is, once the pen pointer hits the grey field, moving it up and down moves the sheet accordingly.

Enchancement: Allow for the pen to interact with the UI

With the current implementation UI button can be pressed using the pen input. At least that is the situation under Wayland i haven´t actually checked what is happening with X11 just yet but I will update this bug when I do. From my understanding the different between X11 and Wayland is that with X11 the mouse pointer and the pen pointer are one and the same. However, under Wayland these two have separate coordinates. That might just be the source of the bug

Can't change colors with pen

Seems clicking colors does nothing if you've already drawn anything with the pen until you click the window with a pointer. And the other way - if you change the color you can't draw anything until you do a click.

Redo/Undo System is broken

Rnote does undo/redo does not work as expected. When I press Ctrl + Z i expect it to undo the last action however what it currently does is starts undoing sometimes from the beginning, sometimes it undoes the last few actions and them jumps to the beginnning. The behaviour is very erratic and not consistent every time. See videos below:

redo-undo.mp4
redo-undo-2.mp4

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.