I made Heynote entirely for my own use case. For many years, I always had an Emacs instance running with the scratch buffer open, even long after I had abandoned Emacs as my programming editor in favor of more recent IDE:s.
The simplicity of having just one big scratch buffer appeals to me, but I still want to separate the different things I jot down somehow (without using tabs or similar). Previously, my solution was to insert a bunch of blank lines between the notes, but hitting C-A would still select the entire buffer. That's why I came up with the concept of "blocks", which turned out really well for my use cases.
I decided to release Heynote, thinking it might be useful to others.
My feature request to add to your pile (possibly a lonely one, since maybe it's just unique to how my brain works):
I really want a scratch pad like this to have UX that supports "inverted" order. Meaning, new blocks get added to the top of the page instead of the bottom. The blocks naturally flow in descending order of creation rather than ascending. The scratch pad always opens at the top of the page. Over time, blocks thus end up "decaying" toward the bottom, with the most relevant at the top.
It just fits better with how my brain works.
I also +1 the sentiment given elsewhere in this thread to bias toward ignoring the vast majority of these feature requests and preserve the simplicitly of what you've built. That includes mine!
I get the idea of the "inverted order". I wonder if it would be enough to make it configurable so that C-Enter inserts a new block before the current one + Heynote sets the cursor at the beginning of the buffer at startup (instead of last which is the current behavior)?
(Sorry if this is how it already works, I’m on my phone right now, so I can’t download it, but I’m very interested in the block idea. I like that concept a lot for a scratch pad. I’m definitely saving this for later.)
My two cents on block insertion: Personally, I would love if Cmd+Enter inserts a new block at the very top
For inserting a new block in sequence, I feel like Cmd+Shift+Enter (splitting the current block) might already be enough - but I obviously haven't used heynote for long enough to have a very informed opinion on this :)
Maybe there's some way to make the behavior configurable?
The perfect UX would be to add a new buffer at the top, but with enough padding to fill the window so that you can't see the movement of previous blocks while you're typing.
(Maybe this is already kinda how it works - I haven't downloaded the app yet, but I'm excited to try it, because it looks great!)
Uhm... They don't move. They stay the same distance, relative to your line. As you add more lines, they'll disappear below the fold.
Heynote Github Repo: https://github.com/heyman/heynote
A few bits of feedback for potential improvements or clarifications...
- I couldn't find the shortcut to change the language until I hovered over the status bar element for it. It should have a menu item with the keyboard shortcut on it.
- Toggling light/dark mode doesn't live in the status bar in any other app I know, probably best to put it in settings.
- Doesn't respect the system light/dark mode, it should by default (but perhaps with an app specific override as some people like that).
- Check for update doesn't live in the status bar either in any other app I've used, this could be in settings.
- If there's not enough stuff to put in a status bar, maybe drop the status bar? It feels like things have been scraped together to justify having it.
- The green branding is ok, but it's quite a strong personality for an app to have. Do you want the app to have a strong personality? (Nothing else about it suggests so). Perhaps consider a more neutral palette that fits in with macOS more, or perhaps several choices for accent colour including a neutral option.
- 427MB is huge. Thankfully it's not particularly memory hungry at least with small documents, but damn that's a big bundle for what it is. Why is it bundling ffmpeg? Does it really need GLES? Is a base Electron framework really >300MB?
- Options for a keymap, but after deleting the initial content I've lost the actual keymap! Would be great to have a help reference in the app, or at least a docs page on the website that the help menu links to.
- Would be great to be able to change the font.
- I don't understand the saving model. Where is the data saved? Can I control this? Is saving necessary? If not, how often is the data persisted? Can I put it in cloud storage so it syncs across machines, or if it does this already, can I opt-out of that?
- Not personally a fan of putting the name of the app in the icon. Most apps don't, I'd suggest something more subtle.
Noted. Will fix!
> Doesn't respect the system light/dark mode, it should by default (but perhaps with an app specific override as some people like that)
The light/dark toggle has three states. Light/Dark/Whatever the system is set to (default). If it's set to the third mode, it should respect the system mode. Otherwise it's a bug!
> The green branding is ok, but it's quite a strong personality for an app to have. Do you want the app to have a strong personality?
I do like the design (though I'm sure it could be improved ofcourse).
> - 427MB is huge
Yes, unfortunately that comes with Electron.
> Would be great to have a help reference in the app, or at least a docs page on the website that the help menu links to.
Yeah, goo point, will fix!
> Would be great to be able to change the font.
Maybe :)
> Where is the data saved?
The whole buffer is stored in a file called buffer.txt located in the user data directory (varies depending on platform, on Mac it's ~/Library/Application Support/Heynote, on Linux ~/.config/Heynote). It's saved as soon as you edit with a small debounce.
The data location is currently not configurable, and Heynote currently doesn't support reloading changes from the disk (except on startup), so at the moment it wouldn't work well to synchronize through a file syncing service if you were running Heynote on multiple machines. This is something I'd like to fix though.
1. It looks beautiful and useful. Very nice work! 2. I love the math sections. 3. I was shocked how large the download was. 4. It's chewing enough memory between the GUI and the (3!) helper processes that I will probably continue to use BBEdit for this kind of thing.
I think it will be useful to a lot of people... I like it and could see myself using it sometimes even if it feels too heavy to keep it running all the time.
However, it would never have been possible for me to make Heynote for all of Mac, Windows and Linux, on my spare time and within a reasonable timeframe, without Electron.
Also, the CPU usage overhead for Heynote is minimal. It's one of the apps I use the most, and it's never among the programs that have used the most CPU. Yes, 200+ MB of RAM seems quite excessive in theory, but in practice it's less than 1% of the total RAM memory of my laptop (24 GB).
I'm confused - browsers already do this for you - From what I can tell you aren't using any specific APIs necessitating electron?
You also could easily have a live demo since it's a client side app.
> Yes, 200+ MB of RAM seems quite excessive in theory, but in practice it's less than 1% of the total RAM memory of my laptop (24 GB).
You should consider that people would be adding this to their workflow. So it's not not 200MB/Total RAM but instead it's 200MB/Remaining memory
Mine has 32GB Total total but less then 2GB free (and the only reason it's free is because it was swapped), which would make this ~10% of my free memory. This means when I run webpack or other things like that it swaps even worse.
FWIW, we also have an Electron app, in part because the integration with native APIs (which we use) is fairly full-featured with Electron. But if I was greenfield starting an app today I'd probably try Tauri. For your app it looks like you're not trying to do too much outside the WebView so might be worth checking out.
I've built a block editor using Qt C++ and QML that is vastly more performant[2].
Feature requests: - arch package
- would really like the results of the math to be in buffer.txt and in Ctrl+a and copy.
- changing font and color theme(I like the Nord one right now though!) Please keep it minimally colored as it is now so that changing color is just a simple matter of configuring a handful of colors as opposed to custom css. That would make it too complicated.
- support for images and media in markdown blocks would be nice to whatever extent possible. I would love it if you could copy the way vscode markdown works. Ctrl+v an image in the editor and it inserts the markdown for it and saves the image to a file. Markdown preview would be nice but I understand if you think that's out of scope.
- timestamp for blocks. especially would be nice if you could store createdAt updatedAt in the line with the infinity symbols in buffer.txt to make it easily extractable using grep and cut.
- saw that you mentioned downthread that you're working on reloading the file so that we can back it up with git or whatever. Would love that!
- is mobile possible? Through Cordova or something
Thanks for making this!
Adding the results to lines that are copied from Math blocks should be doable, and I like that idea! I agree that it would also be nice with the results in buffer.txt, but because of implementation details it's harder to implement I think.
> changing font and color theme
At the moment, I'm leaning towards keeping the number of configurable settings down and not add have font color theme settings.
> timestamp for blocks. especially would be nice if you could store createdAt updatedAt in the line with the infinity symbols in buffer.txt to make it easily extractable using grep and cut.
yes, this is on the TODO
> saw that you mentioned downthread that you're working on reloading the file so that we can back it up with git or whatever. Would love that!
Yes, this too :)
> is mobile possible? Through Cordova or something
Probably not :/
Alright, if you ever lean the other way a tad bit, please allow configuration of fonts, I can try to contribute that feature next week. I don't mind fixed colors nearly as much.
>> is mobile possible? Through Cordova or something
> Probably not :/
Understandable. Check my comment (sibling to my parent comment) for a suggestion for the PWA you mentioned though!
Saw you mentioned below that you were planning to add a pwa + local storage version. In that case you can disregard my mobile request, and replace it with a download button on mobile so we can sync it to our desktop through git or drive or something.
This would enable using fancy CSS for some notes.
I know this is expanding the scope and complexity and probably opposite to what you're trying to do, but one thing that would be cool is to have different tabs. In my current workflow, I have a notepad for "working memory" which Heynote will easily replace. I also have a separate one to track the things I worked on each day. I need to have a record of who I charged for what incase I get audited. I could totally see having a block for each day - and I wouldn't want that intermingled with the other data.
Oh I would love it if you could render markdown as formatted html a la Typora
I haven't used heynote yet (in a train rn), so you may've that already in place, but:
I suggest implementing bookmarks with fuzzy search. Press ctrl+b a prompt comes up, type the thing, press enter and get your file scrolled to that section (markdown title)
Maybe a block 'tagging' mechanism? Let me 'stash' a block and label it with tags... then later on I can 'restore' stashed blocks by searching for tags. Or open a new window easily containing every block that shares a particular tag?
Seems to me that this would be a pretty good general document format for a lot of use cases.
Then each tab would be an opportunity to apply a new set of filter on top of the same document.
I've started using Obsidian with a new note for each day and separating "blocks" with a Markdown horizontal rule (`---`) to achieve something similar, but this is much cleaner.
The strength of such an approach is making capture extremely easy -- new block, start writing, no thinking about where this goes and how to fit it into pre-existing structure. I find that if I'm trying to do that, then by the time I find where my idea goes, I've lost the idea.
The downside, of course, is finding things again. The ability to tag or title a block and search by tag or title would be great. More ambitiously, it would be cool to experiment with incorporating LLMs and embeddings to automatically tag, summarize, categorize, cluster etc. your blocks.
There's a lot of different directions one could take this, but I'll echo the sentiment of others to refrain from adding too many features and losing the original appeal of simplicity. :)
Also: How do you handle performance when the buffer gets very large?
open source doesn't mean source code is there. open source has a specific definition. There is a list of acceptable open source licenses, as defined by OSI. similarly there is a list of acceptable free software licenses, as defined by FSF. Broadly, the two lists are the same. Commons Clause is definitely not open source.
⌘ + L Change block language
The phrase block language didn't trigger my "change the type of block" thinking. I might slightly rephrase like:
⌘ + L Change block language (Math, Markdown, etc.)
Otherwise, I think this is a great "scratches an itch" type project. Congrats!
So a collapse button on every block would be nice.
I love this. Thank you.
It can be difficult to figure out why some lines are interpreted ok and while others fail.
How to convert between fahrenheit and celsius?
Math.js (https://mathjs.org/) powers the Math blocks, so what's supported by Math.js should be supported by Heynote, with the addition of currency conversions (exchange rates are updated daily).
> How to convert between fahrenheit and celsius?
This should work:
10 celsius to fahrenheitI see lots of comments about Electron (per usual here haha) and I just thought I’d shout out Tauri if you hadn’t run across it. It’s basically Electron-but-in-Rust and uses the system webview instead of Chromium, so bundle size and memory usage is reduced a bunch.
I took a look at the code and it looks like you haven’t got a ton of Electron-side code so if you felt like playing with Rust it might not be too hard to swap. I have a video editing app that I started building with Electron and then switched to Tauri midway and it’s been pretty nice.
I hope it’s clear this isn’t a request and please feel free to disregard this comment entirely :)
I wish there was a way to build a stripped-down Electron, like a configurator where you could uncheck things you don't need. Printing support? WebGPU? WebRTC? Video playback? PDF reader? Straight to jail. It would be lovely. I'd love to see what would happen to the bundle size.
There's a lot of functionality you can access from JS without needing to get into Rust, but on the Rust side Tauri has this notion of "commands" for calling Rust from the UI.
You can write a Rust function and annotate it with #[tauri::command], and register it, and then you can call it from the JS side with invoke('your_command_name', args). Those commands can be async too, so you can do blocking work on the Rust side and the UI won't freeze.
You can inject State variables into those commands, which get injected at call time and are effectively global to the Rust side. I would say the State stuff is a bit unergonomic in that you run up against needing to share them between threads, so everything inside them needs to be Arc<Mutex<>> and writing those wrappers was boilerplatey.
I wish the JS <-> Rust calling overhead were lower. It serializes everything to JSON and back, so I try to avoid too many calls, and try to avoid sending lots of data between them.
One request (which I would happily pay for): make it so that you can run the code blocks and generate an output. I routinely crack open the browser console to test out some JS and it would be great to be able to do this right alongside my other notes.
Make sure to also look at org roam, it is more specifically why I won't personally have a need for Heynote any time soon, but it could maybe be inspiring for you going forward.
Essentially, it’s an environment for writing+outlining+task tracking+time management. It’s incredibly useful — you should definitely try it since you’ve used Emacs.
Nice and simple, as a tool like this should be.
A few questions after playing for a few minutes:
* Where are the notes stored?
* Can I delete a block easily?
* After creating an additional cursor (great extra feature btw) how do I stop creating them, and/or remove one I've created?
The whole buffer is stored in a file called buffer.txt located in the user data directory (varies depending on platform, on Mac it's ~/Library/Application Support/Heynote, on Linux ~/.config/Heynote).
> Can I delete a block easily?
I do that by pressing: C-A Backspace Backspace.
> After creating an additional cursor (great extra feature btw) how do I stop creating them, and/or remove one I've created?
Pressing ESC (or C-G in Emacs mode) should remove all extra cursors.
∞∞∞text
content of note 1
∞∞∞text-a
note 2
-a denotes that the block language is in autodetect mode and
might change
∞∞∞css
.some-class {
etc...Great way to make a list. Start with a number, make your list, then use the additional cursor to add in a checkbox.
love seeing stuff like this on HN like the good old days.
Any plans to add vi keybindings support by any chance?
now I wonder if I can get or write a vim plugin to do something similar... that would also have the advantage of being in a terminal so it can live in a persistent tmux session and be accessible remotely...
My ideal text editor is one that has syntax highlighting, scratchpad, markdown support, block based editing, ability to link between documents and vim keybindings. No cloud login, AI assistant, cross-device sync, or other bloat.
I try to avoid using electron apps for lightweight tasks, but Heynote looks like its worth a try.
Maybe you'll like my next note-taking app[1]. It has a block editor based on Qt C++ so it's very performant. It supports Markdown out of the box, will have advanced media support like Kanban, images, columns, etc.
Source: I've worked for multiple companies with very niche software that only works on certain OSes.
Looks quite neat though.
I'll also fix the "⌥" in the editor. Thanks!
* https://soulver.app Granddad of them all, Mac-only, proprietary, expensive
* https://numi.app Mac-only, proprietary, semi-expensive. Has a Github and claims to be MIT-licensed but I don't see how you could build a working application with what's in the repo.
* https://calca.io Windows- and Mac-only, proprietary, not expensive, nice docs.
* https://notepadcalculator.com Web-based, not open source, hosted but uses local storage. You can optionally create an account to sign in and have your notes saved in plaintext on his server.
* https://github.com/bbodi/notecalc3 Web-based, open source, self-hostable. But it seems to save your document in the URL string itself, which means the URL gets updated with almost every keystroke. Worth it for quick calculations and very small notes, I guess.
* https://numpad.io Web-based, hosted, not open source. Also stores entire doc in URL, but doesn't update the URL bar the whole time you're typing.
* https://numbr.dev/ Web-based, hosted. Has a Github but is not open source and the repo does not have all the bits needed to self-host it. Stores entire doc in URL.
* https://github.com/metakirby5/codi.vim Vim/NeoVim plugin that is less like a "smart notepad" and more like Jupyter but with results printed on the right side of the screen instead of in a cell below. Supports lots of programming languages.
Myself I have ended up with mostly using Soulver and TextMate. TM is not really the same thing but it has nice built in text manipulation for more advanced things like "diff selection with clipboard", regex and "sorta and remove duplicates". The thing it lacks is on the scratchpad/autosaving... So I just abuse the window restoration feature and never close or save any documents but have 50 textmate windows :-)
Why does a scratch pad need to phone home?
For the paranoid it should be simple to fork Heynote and disable currencies and auto updates.
If not, what are you thinking of?
But good point, I totally forgot about BBEdit
> Finally, if you remove the canvas background or set it to the same as the app background color
Will look into that. Thanks!
> On Macos a menubar item would be nice to pop the app up
Hm, not sure what this means, sorry :)?
EDIT: Now I googled "macos menubar" and see what you mean :). I'll look into it!
* On Linux, clicking the main "Download / Linux AppImage" button results in Windows .exe download instead of an .appimage. Clicking on the down arrow and selecting Linux does work, however.
* The opening sentence of the description includes "it's" instead of the more correct "its".
And thanks for the grammar correction - I always keep doing that error (it's instead of its).
"It's" = Contraction of "it is"
"Its" = possessive (but the origin long ago was also a contraction, that is a grammatical rabbit hole)
So "its" here is not just *more correct*, it is *correct*. The use of the contraction here is not *less correct*, it is *incorrect*. --Cheers!
One thing that often trips me up is that links and code formatting cannot coexist:
[`method_name`](https://github.com/example/example/blob/main/src/foo.rs)
Would be rendered by most Markdown engines as a link with fixed-width text. Do the same thing in Slack and text will be fixed-width, but won't be a link.There's a partial summary of the differences here: https://www.markdownguide.org/tools/slack/
Try to send a link with a title including square brackets, and contemplate the disaster that gets interpreted from it:
[Unmarshal(data []byte, v any)](https://github.com/golang/go/blob/go1.21.0/src/encoding/json/decode.go#L97)
(spoiler: it just thinks that the link title is "Unmarshal(data [" and somehow inserts links into the rest of the words.)Not what you asked for, but slightly related: You can set a global hotkey that shows/hides Heynote.
The hotkey is very responsive. Nice!
what about different applications requiring different Electron versions?
With a similar mindset and an Emacs background, I wanted a scratch-like experience on iOS, so I built one https://xenodium.com/scratch-a-minimal-scratch-area. Seems to work for others too https://irreal.org/blog/?p=11202
While there's a new built-in iOS journaling app, I'm building one to save to plain text (and no lock-in). https://xenodium.com/an-ios-journaling-app-powered-by-org-pl...
This blocks thing reminds me of Toad for SQL which I used extensively years ago, where you could execute queries based on the position of the cursor, great feature.
Any plans to change font and such things? Any general roadmap?
There's a roadmap in my head and some tickets in my private Trello, but I should probably create Github issues for those.
There are a couple of main things that I want to add (file syncing support, timestamp metadata to blocks) and some general improvements. However I want to keep its simplicity, and I currently see Heynote as kind of complete when it comes to new concepts. Currently, I don't think I'm going to add tabs, and I'm not planning to make it into a "real" editor by adding the ability to open and save files.
This project definitely hits on one of those things just about every dev probably has a slightly different approach to and nobody has really targeted a solution towards so kudos on that.
I don't want your app to check for updates, I'll decide if and when I'd like to update it.
It also sucks that you haven't provided an option to disable update checks.
Since I am on linux and your app is distributed as an .AppImage - the binary gets random name on each run, so I can't set a permanent network rule to forbid it connecting to the internet - instead I get prompted every time.
Also, although blocks feature is nice - I still would like to be able to use tabs as well.
Also, I'd like to know where that info is getting stored on FileSystem: it is nice that the app saves it on the go, but I still would like to be able to work with the files directly.
It makes HTTP requests to fetch current exchange rates (for currency conversion) and to check for updates.
> I don't want your app to check for updates, I'll decide if and when I'd like to update it.
It still requires user interaction to actually apply the update.
> I'd like to know where that info is getting stored on FileSystem
See https://github.com/heyman/heynote?tab=readme-ov-file#where-i...
It shouldn't be hard to fork it and disable currencies and auto updates. However, it sounds like Heynote might not be a good fit for you :).
Do you mean that the blocks should be collapsable? If so, blocks should be collapsable by clicking the small arrow to the right of the first line number. For some reason it seems that Markdown blocks aren't collapsable though - I'm going to investigate why.
I do find myself wanting more features, but of course the beauty of this is how simple it is, so you definitely need to strongly resist the urge to add and add as people suggest ways to 'improve' it. Apply the old 'every feature starts with -100 points' mindset (attributable to Anders Hjelsberg, I think?).
But that said, I'm going to give you some feature requests anyway :D
The thing I feel like I most immediately want from a tool like this is something close to the common SQL notebook behavior where you can select a few lines of text and hit F5 to run just the selection. Obviously only makes sense in language blocks which have a script engine associated. But the ability to write a chunk of JS or Python or shell and instantly execute it might be powerful. Where does it run, what happens to the output, etc? All good questions. No idea.
I'd love to see markdown blocks get formatted in place (still monospaced, just some bold and italic and stuff) - probably whenever the cursor is not focused in the block... though the potential shift in line wrap that would cause might be annoying. Maybe just have an edit/display toggle on markdown blocks to flip them into formatted mode. Additionally, making markdown-formatted tables elastically align in place while editing them would be a huge quality of life boost....
... Which (since formatting markdown tables correctly amounts to the same thing) makes me think this could be an opportunity to implement a classic 'elastic tabstops' plain text mode... the fact that the tab key only increases line indent is... an interesting choice that reduces the need to indulge any tabs vs spaces discussions - though obviously it's possible to paste in text that contains tabs even if you can't type them. Coming up with something better to do with inline tabs than just 'snap to next multiple of tab width' is tricky, but I would suggest maybe enabling 'elastic tab' rules: https://nickgravgaard.com/elastic-tabstops/ - because this is a place that's meant to handle copy/pasted text and stuff natively typed in, NOT a place that is expected to open and correctly format files.
Definitely! I'm happy that you preface the feature requests with this comment :).
I've thought about the possibility of some kind of evaluation of code blocks, but at the moment I'm not planning to add it. Mainly because of the questions you posed :).
Heynote currently gets most of its Markdown features (basically everything except the checkboxes) "for free" from CodeMirror's Markdown mode (https://github.com/codemirror/lang-markdown).
Regarding tab size, I realize that it's something that I'm going to have to add settings for. Up until now, me and a few friends have been the only users of Heynote, and it seems like none of us favors tabs before spaces (or at least no one has asked me to fix it).
1. It seems like the save delay is a bit too long. If you reload the page within like 1s of writing, what you just wrote disappears. Maybe make that faster and/or include a confirmation that there's unsaved changes if you try to close so you don't lose changes.
2. I was expecting some of the other languages to evaluate too (specifically JS). Maybe I missed something, but it seems like just the Math blocks are evaluable? Does it work with JS too?
Some things I love: 1. Block concept! 2. It's a scratchpad, there's no files to save. I'd love to use this as a dev journal.
This is now fixed by making sure the buffer is flushed on reload / exit. Should be released in a beta version in a couple of minutes. Turn on the beta channel in Heynote's settings if you want to update to it right away.
2. Only Match blocks evaluate, and it's likely to stay that way.
Also it would be awesome to have some metadata on each block that is toggle-able (or just inserts as text) so I can have the current date/time added or shown.
Ctrl-D (CMD-D on Mac) does this (currently not limited to the current block though, but that is something I'd like to change).
> Also it would be awesome to have some metadata on each block that is toggle-able (or just inserts as text) so I can have the current date/time added or shown.
Yeah, I've been thinking of adding timestamp (of last edit) as metadata for each block
I’m not sure whether blocks would be better than just separate files, which can be created quickly using Cmd+N.
However, the lack of syntax highlighting in iA writer has been less than ideal, so I’m definitely trying this out!
- resizing the window creates white borders when the content of the window hasn’t been updated yet to reflect the new window size. these are a bit jarring / look non-native.
- I try to keep electron apps to a minimum, as I’ve had only bad experiences with them so far (Discord, Warp, Unity Hub) and they take up a lot of resources.
- While writing code, it does not keep indentation when entering a closing bracket.
These are more nitpicks, but I love the concept :) Great work!
One issue I noticed while doing a calculation: "belt_pitch = 5/8 in" evaluates to "0.625 in^-1". To get the behavior I expected, I had to add parenthesis around the fraction. Maybe this could be fixed by adjusting precedence rules?
I've found myself using Sublime Text in a similar manner (because it's crash-proof without saving to a named file).
I do use multiple buffers though (often ending up with too many and culling them like I do browser tabs).
pbpaste >> ~/Scratchfile
You can probably hook that up to Alfred or whatever to have a hotkey for it.
Please add a donation button to allow us to thank you for your work
Please send that donation to some organization that help people in greater need than me, on my behalf instead :).
The side benefit from using Apple Notes is that it is constantly and reliably syncing to my phone. So, I can always refer to stuff on the go.
however, something like f(x)= sin(x)/x, f(0) returns NaN.
Are there any plans to support derivatives, integration and summation?
- vi bindings
- show me where the file is so I can move it around, sync it across machines, back it up, etc.
- the inverse order stuff
It's really really good. thank you.
I used to use the scratch buffer in Emacs all the time, and it is something I missed from emacs. I go between using Obsidian and Trillium for notes, but I'm going to try using Heynote for a scratchpad / quick notes type of thing and copy things from it if it's worth saving.
Maybe a feature request would be the ability to export a block? I wouldn't want it to be complicated so maybe just something like "Export block to command" and then the command could be a customizable curl command or some other command that copies stdin to another app.
But I tend to create a file per week, with notes about what I have to do / have done, etc. by day within the weekly file.
Having one big file for a project that lasts months (or years) would be unworkable.
I'd like to see the ability to create and open whatever files I want, rather than just saving a single pre-determined file.
Good job, though - thanks!
- It would be great to have the options of having tabs so that I could group my notes into a Math specific tab, or raw notes, code, etc.
- Another option to the above tabs would be to sort the blocks by type (grouping all the Math at the top for example).
- Having the ability to then save each block into a separate file.
So it should support the syntax available in this Math Notepad: https://mathnotepad.com
Oh my God, where has this program been my entire life? I've been hackily using a Python interpreter to do back of napkin math and trying to keep track of units etc in my head (and making frequent use of the up arrow key when I need to save a result from a previous equation). This program would have been a game changer if I'd discovered it a few months earlier before I finished my university physics course. It probably still will be next semester. I'm sincerely blown away by the automatic unit conversion. Each variable has a unit, and when I divide joules by meters I get newtons. This is fantastic and I cannot believe it is free, much less open source!
Do you have a donation link?
Point being: This still fits my needs perfectly well as a general scratchpad! I usually have dozens of separate text files spread around the place, this should be a good fit to replace.
Suggestions: - Make it clear that things are auto-saving - Option to save a block to file - Option to change the background color of alternating blocks; whether that's just allowing two colors - dark and light to alternate - or on an individual basis - Allow titling of blocks and some sort of table of contents - I can see this eventually having dozens that I'd like to reference and quick jump to
To do the separation, I've a keybinding to insert current timestamp, and but me on a new line:
`nnoremap <leader>t :r! date "+\%F \%T"<CR>I#<space><esc>o`
Any plans on adding support for tabs/multiple files? I usually have different files for different types of notes (todos, project notes, tmp file for random things, etc).
I see you have a "blocks" concept which seems roughly equivalent to a top level foldable bullet in org mode. Are blocks nestable? Otherwise what is the recommended way to organize a multi-block set of notes? Typical example for me might be tackling a larger problem/feature (top level block) and then having sub blocks/bullets for each part of the problem which are also foldable. I usually don't go more than a few levels deep but could get by with just 2 if need be.
Where are the currency conversion ratios pulled from? I guess that requires 'net access?
Possible to add a right-click menu (say to collapse blocks and so forth)?
There seems to only be one fold point for a given block? (The markdown one for instance) --- it would be nice if the first and second line were always possible collapse/folding points.
Perhaps menu commands for collapse all/show all?
Just want to give a nod and say thanks for the craft and care.
& +1 I downloaded the scratchpad. Looks useful.
What really amazed me was the Command-Tab icon. My brain registers what it is faster than all the other icons.
But maybe it's just the font. Is there a way to change which font is used?
I've actually been working on my own project to combine Python+SQL+Markdwown+Rich Text into one reactive executable document. If any of you are interested here is a link: https://github.com/Zero-True/zero-true.
I was able to toggle language using `⌥ + Shift + F` once before, but that does not seem to be working anymore.
It would be awesome if this was a native or Tauri / Wails app, moving away from Electron would really de-bloat the application and set it apart from say using another VScode extension etc... I already have far too many chrome instances running due to Electron.
Is there any chance of Heynote supporting Clojure syntax one day?
edit: now I get it. Suggestion, change the explanation of CTRL+L to "Change syntax highlight language for the current block"
1. Can we create multiple tabs with split view? 2. Display stats like word, character count in the status bar. 3. Export options for the notes.
Thanks
What do you use to design your websites (Heynote and Locust)? Are you working off a template?
Have you tried emacs org-mode with code blocks? One can even execute them. (I never tried myself)
Have you considered any other emacs-based options?
Can you add a feature to back up this to git?
Please add inverted add and syncing to iCloud Drive.
Heynote is next level.
Is there an option to rearrange blocks using drag-and-drop or a keyboard shortcut?
maybe you could add a "Math adder/Math averager" block languages?
C# syntax support would be welcomed.
Exemple 1:
g = 9.81 m/s^2
time = 60s
Then "g*time" shows "588.6 m / s"
Exemple 2:
energy = 14 J
distance = 5m
"energy/distance" shows "2.8 N"
Wow.
EDIT: I just found out that behind the scenes it's using maths.js. This library does this natively. Input "14J/5m" into maths.js and you get "2.8 N" as output. Glad I discovered this library.
(Now I want to add blocks in reverse chronological order to my todo app)
Aside: This may (or not) have issues with hey.com people.
Vim would be a great addition.