[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)