Skip to content

Repository files navigation

Jotdown

A tiny Omarchy Quattro overlay for catching a thought before it disappears.

Press SUPER + SHIFT + J, type a note, then press Ctrl + Enter. Jotdown stores notes in ~/Documents/Jotdown/YYYY-MM-DD.md by default, with a local-time label for every entry. A new Markdown file is created automatically each day.

Install

omarchy plugin add https://github.com/mantisdotdev/omarchy-jotdown.git
~/.config/omarchy/plugins/io.github.mantisdotdev.jotdown/install.sh

The setup script enables the plugin, creates the notes folder, installs the keybinding, reloads Hyprland, and validates its configuration. The change to ~/.config/hypr/bindings.lua is one transaction: the installer checks that the configuration directory and the file belong to you and are not a symbolic link, a hard link, or writable by other users; writes a backup under a random name such as bindings.lua.jotdown-backup.<token>; stages the complete new file and replaces the old one atomically; and, if hyprctl configerrors reports an error that was not there before, puts the original back and stops. Hyprland must be running when the installer runs.

SUPER + J is an Omarchy default for toggling the window split, so Jotdown uses SUPER + SHIFT + J and leaves that default intact.

Dependencies

Jotdown requires Omarchy Quattro with omarchy-shell, plus python3, jq, hyprctl, and setsid. The installer checks each dependency before changing your configuration and stops with an error if one is missing.

Remove

Remove Jotdown's managed shortcut first, then remove the plugin:

~/.config/omarchy/plugins/io.github.mantisdotdev.jotdown/uninstall.sh
omarchy plugin remove io.github.mantisdotdev.jotdown

Removal edits bindings.lua through the same transaction as installation, with the same backup and the same restore if Hyprland rejects the result. It does not delete notes in ~/Documents/Jotdown.

Use

  • SUPER + SHIFT + J — open Jotdown
  • Ctrl + Enter — save
  • Esc — close without saving
  • Regular Enter — add a line break
  • Recent — show the five latest entries; the newest can be edited or deleted
  • Open — open today's Markdown file in your Omarchy-selected editor, on the workspace you are looking at

Example output:

# 2026-09-01

**09:42 AM**  
Try the new layout idea.  
**02:18 PM**  
Ask Sam about Friday.

Jotdown adds invisible, length-framed HTML comments as stable entry IDs. They do not appear in rendered Markdown, but ensure that edit/delete always target the right note and that timestamp- or marker-looking text inside a note remains ordinary text.

How the overlay talks to the store

The overlay never puts note text on a command line. New and edited notes are written to the helper's standard input, so they do not show up in process listings or /proc/*/cmdline and are not limited by the kernel's argument size. Everything the helper prints back is rendered as plain text, is capped in size, and every helper run has a 15 second deadline. A helper that overruns it is terminated together with anything it spawned: it runs in its own session (setsid), and a detached reaper sends its whole process group SIGTERM, waits for the group to actually be gone, and sends SIGKILL after two seconds if it is not. The overlay reports the failure immediately rather than waiting on a process that may refuse to exit. Notes are limited to 1 MB and daily files to 16 MB.

The jotdown script in the plugin folder can also be used from a shell: jotdown "text" appends a note, and jotdown --jotdown-command --append reads one from standard input.

Customize

Set JOTDOWN_DIR in the shell environment before starting Omarchy Shell to store notes somewhere else. Jotdown keeps its notes directory private to the current user: new directories are created with 0700, an existing directory is tightened to 0700 on first use, and note files use 0600 permissions. Point JOTDOWN_DIR at a folder dedicated to Jotdown rather than a shared one.

Set JOTDOWN_FILE_NAME to change what the daily file is called. It is a strftime pattern rendered from each day's date; the default is %Y-%m-%d.md. The rendered name must be a plain file name with no slashes and must contain a full date, so that every day gets its own file. Jot %Y-%m-%d.md gives Jot 2026-09-02.md, %d-%m-%Y.md gives 02-09-2026.md, and %Y-%m-%d %a.md gives 2026-09-02 Wed.md. Patterns such as notes.md or %A.md are refused. Changing the pattern does not rename existing files, and the # YYYY-MM-DD heading inside each file stays the same whatever the file is called. Like JOTDOWN_DIR, set it where Omarchy Shell inherits it and restart the shell.

Set JOTDOWN_OPEN_SHORTCUT before running install.sh to choose a different global shortcut, for example JOTDOWN_OPEN_SHORTCUT="SUPER + N". Rerun the installer after changing it; the existing Jotdown binding is updated safely.

To change the open shortcut, edit the Jotdown binding in ~/.config/hypr/bindings.lua, then run hyprctl reload and hyprctl configerrors. To change the save shortcut, edit the key handler and hint in ~/.config/omarchy/plugins/io.github.mantisdotdev.jotdown/Jotdown.qml; plugin updates may replace that file.

Test

python3 -m unittest discover -s tests -v

About

A tiny Omarchy overlay for capturing quick notes into daily Markdown files.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages