[HN Gopher] Rnote - A note-taking application for drawing tablet...
___________________________________________________________________
Rnote - A note-taking application for drawing tablets, written in
Rust and GTK4
Author : maydemir
Score : 189 points
Date : 2022-01-21 16:00 UTC (7 hours ago)
(HTM) web link (github.com)
(TXT) w3m dump (github.com)
| tra3 wrote:
| I see lots of note taking/personal knowledge info management apps
| being announced and criticized on HN, but I think it's great that
| we are exploring the space.
|
| Eventually, things will probably whittle down to a handful of
| successful options, a la survival of the fittest.
|
| I wonder if there's an example of a software category that went
| through something like that?
| DarylZero wrote:
| > Eventually, things will probably whittle down to a handful of
| successful options, a la survival of the fittest.
|
| Doubt it. Most people aren't trying out a lot of these things.
|
| There's always going to be more people who come up with their
| own ideas of how to take notes, making new note-taking
| applications.
|
| They will reinvent each others' ideas again and again, maybe
| some _ideas_ will somehow persist and become pervasive, but
| always there will be new note-taking apps with every
| generation.
| georgesequeira wrote:
| I think that task/project management is also starting to go
| through that with Clubhouse, Linear, Height,
| Notion/Coda/Knowledge-bases (trying to solve it). I would not
| be surprised to hear that there are a couple in "Stealth" as
| well.
| smasher164 wrote:
| I'm still looking for an Apple Notes-equivalent that I can
| comfortably use on Linux. It's been the hardest part about
| switching away from MacOS. A cross-platform app that launches
| instantly, syncs notes, has search functionality, and works on
| mobile is something I think we're missing.
| hikilopei wrote:
| dmd wrote:
| Is this sarcasm? I honestly can't tell. This space is utterly
| saturated already.
| smasher164 wrote:
| It's not sarcasm. I've looked pretty hard for the right app
| and haven't found one that meets all of those requirements.
| If it's that saturated, then what would you suggest?
| nonesuchluck wrote:
| I use Automattic's Simplenote. I pin the web app in a
| Firefox tab, avoiding the Electron app. The Android and
| iOS apps are both great tho. Live sync is perfect, you
| can publish read-only links to notes (like pastebin), and
| it has basic Markdown support but basically no other
| frills.
| smasher164 wrote:
| I've been using iCloud notes by pinning a tab, but the
| search is pretty slow. Does Simplenote fare better here?
| nonesuchluck wrote:
| Has live search, it's as quick as you can type.
| dkarl wrote:
| > I think it's great that we are exploring the space
|
| I am 100% agreed on this. I have used Evernote for many years
| and really hate the curse of commercial software that forces
| them to constantly fiddle and break things that their customers
| have come to rely on. Nevertheless, despite not loving it, I
| touch Evernote multiple times per hour almost every hour
| throughout my work day. I need a mobile app and quick sync
| between different apps, and that will be hard for an open-
| source effort or a one-person startup to achieve. I wonder if
| an open-source app could be built on top of a paid commercial
| sync service; I would gladly pay for that.
| armoredkitten wrote:
| I switched from Evernote to Joplin a year or two ago, and it
| has been a great experience. Joplin is much more markdown-
| centric, so it doesn't fully replace all of Evernote's
| features, but it does have good support for multiple
| organizational schemes, including notebooks (i.e., folders)
| and tags, which I appreciate. They have both mobile and
| desktop apps, and even a CLI. And it's built to sync over any
| number of cloud services, including Dropbox, Google Drive, or
| Nextcloud.
|
| Anyway, I recommend checking it out to see if it meets your
| use case. It's been a while, but I believe it has the ability
| to import from Evernote, or at least read from whatever
| export format Evernote provides, something like that.
| floatboth wrote:
| Way to bury the lede -- "simple note taking app" usually makes
| people think of the usual text notes. This is a handwritten notes
| app for drawing tablets, like a more modern xournalpp. Nice!
| agumonkey wrote:
| yeah, it's far more featured that OP makes it sound like.
|
| Kudos to him, may other be inspired :)
| fartcannon wrote:
| Yes, 'simple' really undersells what's being offered here.
| Simple as in ease of use, perhaps, but it looks like it does
| quite a bit. Thanks!
| dang wrote:
| Ok, we've unearthed the lede in the title above. Thanks!
|
| (Submitted title was "Rnote - A simple note taking application
| written in Rust and GTK4")
| alpaca128 wrote:
| I was positively surprised as well. This looks more like
| OneNote than your average mini text editor. As a Linux user
| with a graphic tablet I love to see progress in that area.
| chana_masala wrote:
| Which tablet do you use?
| zerr wrote:
| Can anyone briefly describe or point to the relevant resource -
| how GUI toolkits in Rust are done without the proper OO? E.g. how
| do you model and implement Object > EventHandler > Window >
| Control > RadioButton hierarchy?
| gpm wrote:
| I mean, for gtk in particular, I think they just implemented
| everything necessary to make rust understand and interact with
| gobjects "proper OO" hierarchy, which gtk is built on top of.
| Rust isn't natively OO, but neither is C...
|
| There are some examples of OO rust in the documentation here
| for instance: https://gtk-rs.org/gtk-rs-
| core/stable/latest/docs/glib/subcl...
|
| Or you can look at the repository linked in this HN submission
| as a practical example...
|
| ---
|
| Outside of the OO-gtk world, there's been quite a bit of
| experimentation with non-OO gui systems in rust, but I don't
| think there's a settled "best design" yet. Many designs look
| something like the following
|
| - model: rust struct describing your data
|
| - view: function mapping your data to widgets, widgets
| understanding how to layout, render, and issue commands
|
| - commands: events in view generate simple command structs
|
| - update fn: iterates over commands, updating model
|
| With the framework passing input to widgets, and taking
| commands from the widget and passing them to the update fn, and
| then calling view to update widgets. Potentially intelligently
| to avoid redundant work (e.g. not re-rendering widgets that
| haven't changed).
|
| The bigger constraint driving this than "not-OO" is "not
| mutably aliasing data". You probably don't want to try and have
| your update functions take a mutable reference to your model,
| because you will end up fighting the borrow checker. (On the
| other hand, I think egui does manage to pass mutable references
| to the model to callbacks, so maybe this is just a reflection
| of the rust gui's I've personally experimented with)
|
| So in a slightly imaginary reasonably representative gui
| framework, I might have struct Model {
| chickens_can_fly: bool } enum Command {
| ToggleChickensCanFly } fn view(model:
| &Model) -> impl Widget { CheckBox {
| checked: model.chickens_can_fly, on_change: ||
| Command::ToggleChickensCanFly } }
| fn update(model: &mut Model, command: Command) {
| match command { Command::ToggleChickensCanFly
| => model.chickens_can_fly =
| !model.chickens_can_fly } }
| gattr wrote:
| In my small project ([1], Rust + GTK3) I pass the program
| state wrapped in Rc<RefCell> to my update functions
| (closures-as-event-handlers) and so far it's been OK (after
| all they're executed sequentially from the main thread only).
| One just needs to remember not to hold the borrow when
| displaying a message box (as in GTK it enters a new message
| loop recursively).
|
| [1] https://github.com/GreatAttractor/vidoxide
| Vinnl wrote:
| It was also on OMG!Ubuntu recently, in case people are
| interested: https://www.omgubuntu.co.uk/2022/01/rnote-frehand-
| notetaking...
| curt15 wrote:
| I just gave it a spin. It's very easy on the eye and it works
| beautifully with my Wacom tablet. A promising application.
| beepbooptheory wrote:
| Looks cool but leave Lena out of it!
|
| I'm truly sorry
| 1_player wrote:
| Do not try and initiate a flame war on a totally innocent
| thread. It is not appreciated and against the site guidelines.
| Move along.
|
| https://news.ycombinator.com/newsguidelines.html
| stareatgoats wrote:
| "Please respond to the strongest plausible interpretation of
| what someone says, not a weaker one that's easier to
| criticize. Assume good faith."
|
| https://news.ycombinator.com/newsguidelines.html
| beepbooptheory wrote:
| Oh wow I'm sorry, had no idea it was controversial in that
| way! Truly not trying to initiate anything... Thought just
| some people didn't know the story, which is why she is still
| used.
|
| I just did my own PR about it anyway so no worries.
| tamasnet wrote:
| Thanks for mentioning it, I learned something today.
| stareatgoats wrote:
| For the record, I find little wrong with this comment as it was
| originally posted. People might not be aware of the story
| behind that image, and that Lena Forsen herself doesn't wish
| her photo to be used like this any more [0]. I can't for the
| life of me understand how this can remotely be interpreted as a
| flame bait.
|
| [0] https://pursuit.unimelb.edu.au/articles/it-s-time-to-
| retire-...
| jturpin wrote:
| The article doesn't give any statement from her about the use
| of her photos in computer science, is there another quote
| somewhere?
| littlestymaar wrote:
| See the documentary _Losing Lena_ [1]:
|
| [1]: https://www.losinglena.com/
| nani8ot wrote:
| There already is an open issue about this.
| https://github.com/flxzt/rnote/issues/37
| sebow wrote:
| [Sorry in advance if this is a little off-topic]
|
| Gtk4 has a lot of potential to be disruptive if the tooling
| becomes at least competitive to what other frameworks have (qt,
| flutter,etc). For now it's a serious choice (or the only choice)
| if you develop for linux.There are cases where this is desirable
| and if you have a product that has multiple 'native' versions and
| that's good, but most often than not that's not the case.
| -Language bindings(this is where gtk is overlooked and has a
| solid position, being written in a low-level language it already
| satisfies one segment of developers and through bindings the
| other half)
|
| And either:
|
| -A decent designer tool (glade and cambalanche exist - they're
| better than nothing, sadly would say they're not production-
| ready)
|
| -Or some (possibly community-driven, which can be the case since
| gtk is open) extensions for couple major IDEs/editors: think
| emacs,vscode,intellij-based.This is where gtk is way behind
| flutter/qt and i think they can gain the most since a lot of
| developers rely (for good or worse) on editor extensions.
|
| And i'm willing to guarantee that gtk will be often be picked as
| a solid alternative.Again, this is not bashing against gtk4,
| because it's free and my talk is worth nothing compared to
| contributors, but these are just my 2 cents.
| floatboth wrote:
| > not production-ready
|
| Glade is very mature, people use it extensively for serious
| software:
|
| https://blog.horizon-eda.org/misc/2021/01/29/glade.html
|
| Cambalanche is a fresh start, with gtk4 in mind, of course it's
| not production ready yet. But I'm really excited about it, the
| architecture is cool (probably the best use of the broadway
| backend ever)
| littlestymaar wrote:
| Isn't Glade obsolete? I'm pretty sure I've read a blog post
| from GTK folks telling people to stop using it.
|
| Edit: Ok, it's the first link in your link, which is a
| rebuttal to this exact blog post.
| 1024core wrote:
| 2026 headline: Google disbands blockchain unit as head departs...
| ToruiDev wrote:
| Wrong Submission;)
|
| You probably wanted to comment on
| https://news.ycombinator.com/item?id=30023169
| homarp wrote:
| more like https://news.ycombinator.com/item?id=30025097 :)
| ToruiDev wrote:
| Ah, failing to correct someone but making a similar
| response... a problem as old as time.
| littlestymaar wrote:
| Muphry's law!
|
| https://en.m.wikipedia.org/wiki/Muphry%27s_law
| esarbe wrote:
| Very pretty!
|
| Is it using libadwaita?
| tlamponi wrote:
| > Is it using libadwaita?
|
| It seem so:
| https://github.com/flxzt/rnote/blob/main/Cargo.toml#L39
|
| But it's not using any official published crate FWICT, but
| downloads a source tar ball directly from the GNOME servers:
| https://github.com/flxzt/rnote/blob/ba02e999ffebb52a9f3b2b3f...
|
| A bit weird, but maybe there's just no ergonomic and/or stable
| crate for it yet.
| [deleted]
| petepete wrote:
| Just taken it for a spin, really intuitive and worked
| beautifully! I love that it has 'rough' shapes built in, I'm
| already a huge Excalidraw user and fan and having a native
| alternative is exciting.
| CornCobs wrote:
| One thing I think is really nice about excalidraw is that the
| excalidraw file format is simply json - this makes my
| notes/drawings/diagrams greppable!
| poxwole wrote:
| Please distribute it via distro repository
| krastanov wrote:
| Could you elaborate why? I love debian and its repositories,
| but for self-contained statically-compiled apps that are not a
| realistic target of attack, I strongly prefer Flatpak for its
| compartmentalization and ease of universal distribution.
| jonnycomputer wrote:
| Just fyi, the the name made me think this was a R markdown
| notebook app. I'm guessing R is for Rust?
| [deleted]
| SamBam wrote:
| Very nice-looking app.
|
| Question: Why is Rust important in this, important enough to be
| in the name of the app (presumably the "R"), not just the HN
| submission title (which has its own reasons for including
| "Rust")? That seems very insider-baseball for the average user.
| petee wrote:
| I appreciate the mention if only because a bunch of projects
| look cool by description, but when you dig in you find out they
| have some silly stack of tech required.
|
| At least I know its rust, and won't be surprised by needing to
| compile it
| Jim_Heckler wrote:
| To be fair, the closest "competitor" is Xournal++, named such
| in part because its a c++ remake of Xournal, so there's sort of
| a precedent I guess.
| littlestymaar wrote:
| For the average user indeed, but for the average _rust
| developer_ hanging around on HN, having examples of how a full-
| featured GUI app that use GTK4 is something really valuable!
|
| I have no interest in note-taking apps and I'm never gonna
| _use_ this one, but I 'm eager to read the code.
| simion314 wrote:
| >I have no interest in note-taking apps and I'm never gonna
| use this one, but I'm eager to read the code.
|
| Probably you should subscribe to some Rust specific reddits
| or forums ? Otherwise it means we should see on first page 10
| different TODO apps in 5 different languages with 10
| different toolkits. There should be something relatively
| interesting about the app IMO.
| nu11ptr wrote:
| Agreed - I have a personal project that needs a GUI. Still
| debating which to use but right now GTK4 is likely my top
| pick due it's binding maturity. Having a codebase to look at,
| esp. one that has obviously taken great care in it's design,
| is extremely valuable.
| smoldesu wrote:
| Looks neat, but I have no intention of installing Libadwaita onto
| any of my systems. I hope the people who will enjoy this though,
| Rust/GTK programs seem to have huge potential in my experience
| writing them.
|
| Edit: Side note, why does the CSD switch sides from left to
| right? If I was a user, that would annoy the hell out of me,
| especially if I was using a drawing tablet...
| kk6mrp wrote:
| > I have no intention of installing Libadwaita onto any of my
| systems
|
| Out of curiosity why is this?
| smoldesu wrote:
| GNOME middleware has no place on my system. GTK4 breaks font
| rendering which is already eye-searing enough, but libadwaita
| is woefully incomplete and barely functions without sandboxed
| life-support propping it up. It also violates the native LAF
| of my system, introduces compositing issues on any system
| that isn't running a GNOME 40/Wayland combo, consumes too
| many resources and frankly has no reason to exist given the
| modern state of GTK programming. Since I'm a GTK dev, I
| choose to abstain by staying on GTK3, which has none of the
| aforementioned issues.
| kk6mrp wrote:
| Ok, interesting. I am running Sway on Wayland and have one
| application that depends on libadwaita. Looking it over, I
| can see what you're talking about. Thank you for sharing!
| longstation wrote:
| Very cool! Glad to see more Rust + GTK apps. Did you use Cairo
| for drawing notes?
___________________________________________________________________
(page generated 2022-01-21 23:00 UTC)