A floating scratch pad for Omarchy Quattro. One configurable file, autosaved. The note is stamped with the app you came from, a corner peek comes back when you return to that app, and a second shortcut can swallow the clipboard without opening the overlay.
omarchy plugin add https://github.com/vitally/omarchy-quick-note.git --enableFor a local checkout:
mkdir -p ~/.config/omarchy/plugins/vt.quicknote
cp -a /path/to/vt.quicknote/. ~/.config/omarchy/plugins/vt.quicknote/
omarchy-shell shell rescanPlugins
omarchy plugin enable vt.quicknoteA plugin cannot ship a Hyprland bind. Add your own in
~/.config/hypr/bindings.lua:
o.bind("SUPER + N", "Quick Note", "omarchy-shell -q shell toggle vt.quicknote")
o.bind("SUPER + ALT + N", "Capture to Quick Note", "omarchy-shell -q shell call vt.quicknote capture ''")Check omarchy menu keybindings --print before picking a chord. If it is
already bound, hl.unbind(...) first. SUPER + SHIFT + N is Omarchy's
Editor binding.
- The toggle bind opens the same file every time. If that app already has a section, the caret goes to a new line at the end of it. A heading is added only the first time you jot from that app.
- Typing autosaves 400ms after you pause, and again when the pad is dismissed.
- Escape, Super+W (Omarchy close-window), Super+Q, or Ctrl+W closes it. The overlay is a layer-shell surface, so Hyprland's close-window bind does not see it — those keys are handled inside the pad.
- A click outside the card also dismisses it.
- The capture bind appends the current clipboard as text. It does not open the overlay and does not print the clipboard anywhere else.
- When peek is on, a small card appears in the chosen corner if the focused app already has a stamp in the file. Click it to reopen that section.
- The bottom of the pad has the file path, stamp mode, and peek corner.
Changes write to
~/.config/omarchy/shell.json.
Settings are inline on the plugins[] entry in ~/.config/omarchy/shell.json:
{
"id": "vt.quicknote",
"path": "~/Notes/scratch.md",
"stamp": "app",
"peek": true,
"peekCorner": "bottom-right"
}| Setting | Type | Default | Description |
|---|---|---|---|
path |
string | ~/.local/share/vt.quicknote/note.md |
The one file the pad edits. ~ and $HOME expand. Relative paths are under $HOME. |
stamp |
string | app |
app writes the desktop app name. title also writes the window title (document and tab names). off writes no header. |
peek |
boolean | true |
Show the return peek. Set false or "off" to hide it. |
peekCorner |
string | bottom-right |
bottom-right, bottom-left, top-right, or top-left. Aliases: br, bl, tr, tl. |
The pad uses the current Omarchy theme's popup fill and Hyprland's
active window border (the orange col.active_border in this theme), plus
the menu scrim behind the overlay. Changing theme restyles it with the
rest of the shell.
omarchy plugin enable creates { "id": "vt.quicknote" } if needed. The
pad's footer writes these fields for you; you can still edit them by hand.
A default file created by the plugin is 0600 in a 0700 directory. A path
you pointed at an existing notes vault is not chmod'd.
The overlay stays loaded so peek and capture work without a cold start. It reads the focused monitor's active workspace only when you open the pad, capture, or to decide whether the peek should show. An empty workspace (for example the other monitor with no windows) is treated as no app: no heading, caret at the end of the file.
Each app gets one section. Opening or capturing from Ghostty again continues
that block instead of appending another ## heading. Title mode still
starts a new section when the window title changes.
App identity is the window's appId / initialClass. The stamp label is the
desktop entry name, never a window title, unless you set stamp to title.
Peek matching uses labels already in the file. There is no side database of
focus, titles, or clipboard.
Stamps look like:
## Firefox
the thoughtWith stamp set to title:
## Firefox · Pull Request #4821Older ## 2026-08-19 14:32 Firefox headings are still recognized.
The same file can be your Obsidian daily note or any other editor.
omarchy plugin remove vt.quicknoteThe note file is left in place. Delete it yourself if you want it gone.
node test/model.test.jsThe plugin requires Omarchy Quattro and runs as QML inside the existing
omarchy-shell process. It imports the shell's qs.Commons and qs.Ui
components, plus Quickshell's Hyprland, Wayland, and FileView bindings.
Clipboard capture is a one-shot wl-paste --type text on the capture bind.
There is no clipboard watcher, network call, background service, installer,
remote build, shell hook, or elevated operation.
The note editor is TextEdit.PlainText. Peek labels and excerpts use
Text.PlainText, so crafted markup in a note or desktop name cannot be
auto-detected as rich text or trigger a remote image fetch from
omarchy-shell.
Like all Omarchy plugins, it runs unsandboxed with the user's permissions; review the source before enabling it.