Jonatan Heyman 94f5534611 Revamp key bindings
This is a work in progress revamp of the key binding system. It implements a system, built on top of CodeMirror's key binding system, for defining key bindings. 

The system uses a dumb "KeyShortcut" -> "Command" mapping with a set of default keys (which will be different if Heynote's Emacs mode is used) that can be overridden by user key bindings.

The key bindings are *displayed* in the Settings, and it's possible to set user defined key bindings in Heynote's config file, but it's not yet possible to define custom key bindings in the UI.

Previously we Heynote on a bunch of default key bindings from CodeMirror (some of which was not "block aware"). This is no longer the case, and because of this, it's quite likely that there are key bindings that was previously working that is now missing (if so, these can easily be added later).
2025-04-19 13:37:23 +02:00
2024-12-09 12:37:05 +01:00
2024-01-25 23:09:30 +01:00
2025-04-08 13:35:06 +02:00
2025-04-19 13:37:23 +02:00
2025-01-04 14:01:55 +01:00
2023-01-17 00:53:15 +01:00
2025-04-19 13:37:23 +02:00
2025-04-19 13:37:23 +02:00
2023-03-14 14:12:04 +01:00
2025-04-08 13:35:06 +02:00
2025-04-08 13:35:06 +02:00
2025-04-08 14:05:50 +02:00

Heynote

GitHub release (latest SemVer) Build Status

General Information

Heynote is a dedicated scratchpad for developers. It functions as a large persistent text buffer where you can write down anything you like. Works great for that Slack message you don't want to accidentally send, a JSON response from an API you're working with, notes from a meeting, your daily to-do list, etc.

The Heynote buffer is divided into blocks, and each block can have its own Language set (e.g. JavaScript, JSON, Markdown, etc.). This gives you syntax highlighting and lets you auto-format that JSON response.

Available for Mac, Windows, and Linux.

Features

  • Persistent text buffer

  • Block-based

  • Syntax highlighting:

    C++, C#, Clojure, CSS, Erlang, Dart, Go, Groovy, HTML, Java, JavaScript, JSX, Kotlin, TypeScript, TOML, TSX, JSON, Lezer, Markdown, PHP, Python, Ruby, Rust, Scala, Shell, SQL, Swift, Vue, XML, YAML

  • Language auto-detection

  • Auto-formatting

  • Math/Calculator mode

  • Currency conversion

  • Multi-cursor editing

  • Dark & Light themes

  • Option to set a global hotkey to show/hide the app

  • Default or Emacs-like key bindings

Documentation

Documentation is available on the Heynote website.

Development

To develop Heynote you need Node.js and you should (hopefully) just need to check out the code and then run:

> npm install
> npm run dev

Run Tests

To run the tests:

> npm run test

To run the tests in the Playwright UI:

> npm run test:ui

Contributions

I'm happy to merge contributions that fit my vision for the app. Bug fixes are always welcome.

FAQ

Where is the buffer data stored?

See the documentation.

Can you make a mobile app?

No, at the moment this is out of scope, sorry.

What are the default keyboard shortcuts?

See the documentation.

Thanks!

Heynote is built upon CodeMirror, Vue, Electron, Math.js, Prettier and other great open-source projects.

Description
Languages
JavaScript 61.1%
Vue 30.1%
TypeScript 6%
Sass 0.9%
HTML 0.7%
Other 1.2%