Obsidian plugin
Handwriting
pen ink on ordinary Markdown notes. open a note and write. the note stays a .md file.
see it work
try it here first
this is the plugin's own ink code running in this page. if your pen writes here, it writes the same in a note.
no pen? drag with the mouse.
save as SVG is the plugin's own export. same file you get beside your note.
why it exists
Lack of handwriting integration kept Obsidian from becoming my main notebook. back in uni, taking notes for biochem and comp sci in onenote with pen and keyboard seamlessly on my tablet truly made me love learning.
I wish I could've used Obsidian back then to take all my notes. I built this plugin to solve that problem retroactively
for students, educators, engineers, artists, or anyone who writes and types in the same place.
what the pen does
the tip inks. the eraser end erases. the side button lassos: hold it and circle some ink, then drag the selection to move it or press Delete to remove it.
two tools, pen and highlighter. each has a nib size slider and its own palette: eight pen inks, five highlighter colors.
type above your ink and the strokes don't move. the insert space tool is the only thing that shifts them. ink scales with Obsidian's zoom and scrolls with the note, and Ctrl+Z undoes ink and text edits in the order they happened. draw past the last line or far off to the right and the note grows scroll room to reach it.
- pressure sensitivity
- palm rejection
- ink prediction and smoothing
- pinch to zoom
- infinite canvas
- pen toolbar with auto-hide
- lined and grid paper
- handwriting to shape
- insert space
- ink embeds
- export ink as SVG
how it works
writing
when you put pen to screen, you are writing on an overlay drawn over the Obsidian text editor - this overlay is drawn in codemirror 6
the overlay claims pen input only. touch, mouse, typing, selection and caret placement all fall through to Obsidian untouched
the only thing ever written into your markdown is a single handwriting-page-id line in frontmatter which is placed when you start writing
where is ink stored
your ink is one json file per note in /.handwriting/
sidecar is a digital photography term that refers to a small file beside a main file, that holds information about the main file. this is a useful analogy
in this case, the sidecar stores your ink as coordinates - your note is linked to your ink by a single properties line in the properties field of your note. this link + the coordinates tells Obsidian where all the ink is
what this means practically is that no matter what happens to the ink, the text in your note will be safe, as the note itself is not modified (besides its frontmatter).
.handwriting/ is hidden, and about half of all sync tools don't carry hidden folders by default. Obsidian Sync, iCloud and Dropbox don't. if you use one of these, turn on Compatibility with Obsidian Sync in the settings panel to get your ink syncing across devices
how the ink is stored
ink is stored in note-surface coordinates. origin at the top-left of the text column, y absolute down the document. markdown reflows wherever it wants. your ink stays where you put it. editing text will never move ink except in the case of the insert space tool, by design
how the ink is placed
drawing happens on raw pointer events. the line behind the nib is smoothed with math; the last stub to the pen tip is raw so the ink will always reach the tip of the pen
where it runs
Obsidian 1.12.3 or newer. built and tested mostly on a Surface Pro, with some testing on an iPad. please send reports.
two things worth knowing
- iPad: turn off Scribble, or iOS draws its own black ink over your strokes. Settings > Apple Pencil > Scribble.
- Obsidian Sync: it skips hidden folders, so ink won't sync until you turn on Handwriting settings > compatibility with Obsidian sync.
installing
- Settings > Community plugins > browse
- search Handwriting
- install, then enable
or from the directory: community.obsidian.md/plugins/handwriting. for beta builds before they're released, add ellimist-afk/handwriting to BRAT.
longer reading: the manual, and how ink is stored.
coming
- native PDF annotation
- OCR, handwriting to text
- searchable handwriting
- handwriting to math and LaTeX
- audio alongside ink
- ruler and compass on screen
found a bug
open an issue on GitHub and say what happened, which device, and which pen.
a pen trace helps. everything below is a command palette entry, so hit Ctrl+P (Cmd+P on Mac) and type the name.
Diagnostics: begin recording- reproduce the bug.
Diagnostics: show pen trace- press Copy in the window that opens, and paste it into the issue.