[On GitHub](https://github.com/personalizedrefrigerator/joplin-plugin-freehand-drawing) | [On the Joplin Forum](https://discourse.joplinapp.org/t/plugin-js-draw-integration/27114) | [Online Demo](https://personalizedrefrigerator.github.io/js-draw/example/
npm install joplin-plugin-freehand-drawingjoplin-plugin-freehand-drawingOn GitHub | On the Joplin Forum | Online Demo | Installing
A Joplin plugin for creating and editing freehand drawings using js-draw.

Search for "freehand drawing" under the plugins tab in Joplin's settings:
!screenshot of the search bar and results in the plugins tab. Freehand Drawing // create and edit drawings with js-draw is the only visible result.
After installation, an "insert drawing" button should appear in the toolbar:
!A pen icon labeled "insert drawing" is shown in the markdown toolbar, just to the right of the "insert date" button.
Existing drawings can be edited by hovering over the drawing in the markdown preview pane, then clicking "edit".
!screenshot of a drawing in the preview pane and an edit button, beneath the cursor. The edit button is at the bottom-right of the drawing.
Editing an existing drawing: Double-click on the drawing.
Adding a new drawing: Click either the !pen toolbar button or "Insert Drawing" from the Edit menu.
First, select the full resource URL for an image created with this plugin
!screenshot: Resource URL (includes :/) is selected
Next, click the "Insert Image" button in the toolbar.
1. Open Joplin's settings
2. Click on "Keyboard Shortcuts"
3. Search for "Insert Drawing"
4. Click "_Disabled_"
!screenshot: Arrow pointing to "disabled" in the second column of the keyboard shortcuts table
5. Entering a new key combination (e.g. Ctrl-Shift-D).
Pen/mouse-only drawing can be enabled under the "Pan" tool's menu by enabling "Touchscreen panning":
This feature is still in beta and is currently difficult to access. Issue reports are welcome!
1. Open the markdown editor.
2. Select the drawing's ID:
!screenshot: Drawing ID selected
3. Open the Command Pallete
- On Windows and Linux, the keyboard shortcut for this is ctrl-shift-p.
- On MacOS, the keyboard shortcut is cmd-shift-p.
4. Type "insertDrawing" and select the "insert drawing in a new window" option.
!screenshot: Second option in the command palette selected
joplin-plugin-freehand-drawing autosaves every two minutes. The last autosave can be recovered by
1. Switching to the markdown editor
2. pressing Ctrl-Shift-P (Cmd-Shift-P),
3. typing :restore autosave, then
4. clicking "Restore from autosaved drawing"
This should add a copy of the autosaved drawing to the current note.
The procedure to do this is currently very complicated, as there is no GUI for this. (Making this simpler is planned!).
Customizing keyboard shortcuts
First, open Joplin's profile directory ("Help" > "Open profile directory").
Next, open settings.json in a text editor.
Near the end, there should be a line similar to this:
``json`
"plugin-io.github.personalizedrefrigerator.js-draw.keyboard-shortcuts": { }
Shortcuts can be added between the { and the }. For example,
`json`
"plugin-io.github.personalizedrefrigerator.js-draw.keyboard-shortcuts": {
"jsdraw.toolbar.ExitActionWidget.exit": [
"ctrlOrMeta-w",
"alt-q"
],
"jsdraw.toolbar.SaveActionWidget.save": [
"ctrlOrMeta-s",
"ctrlOrMeta-shift-s"
],
"jsdraw.toolbar.PenTool.select-pen-1": [
"CtrlOrMeta-1",
"alt-1"
],
"jsdraw.toolbar.SelectionTool.resizeImageToSelection": [
"ctrlOrMeta-r",
"m"
]
}
The above adds additional shortcuts for exiting, selecting pen style 1, and resizing the visible region to the selection.
Joplin must be restarted for the changes to be applied.
> [!NOTE]
>
> Additional keyboard shortcut IDs can be found in js-draw's source code.
Joplin should automatically purge drawings and other attachments after they have been removed from a note. The time this takes is determined by the "Keep note history for" setting, even if note history is disabled. See this forum post for details.
This plugin uses js-draw to edit/create freehand drawings. Bugs related to js-draw can be reported using its issue tracker.
If you're unsure whether a bug is related to js-draw or this plugin, consider first reporting the bug on this plugin's GitHub repository. If it's more relevant to js-draw` than this plugin, it will be moved by a maintainer.