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.
omarchy plugin add https://github.com/mantisdotdev/omarchy-jotdown.git
~/.config/omarchy/plugins/io.github.mantisdotdev.jotdown/install.shThe 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.
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 Jotdown's managed shortcut first, then remove the plugin:
~/.config/omarchy/plugins/io.github.mantisdotdev.jotdown/uninstall.sh
omarchy plugin remove io.github.mantisdotdev.jotdownRemoval 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.
SUPER + SHIFT + J— open JotdownCtrl + Enter— saveEsc— close without saving- Regular
Enter— add a line break Recent— show the five latest entries; the newest can be edited or deletedOpen— 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.
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.
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.
python3 -m unittest discover -s tests -v