avtarasov2102k downloadsStylus/S Pen gestures for Excalidraw: open an insert menu by tap or side button, tap objects for quick actions, and copy, paste or connect shapes.
Companion plugin for Obsidian Excalidraw that makes drawing with a stylus (Samsung S Pen) faster.
It is a standalone plugin — it does not fork Excalidraw; it calls Excalidraw's public
window.ExcalidrawAutomate API. Copy/paste and duplicate use that API directly (no system clipboard).
The finger is never intercepted, so touch drawing and navigation keep working. Requires the Excalidraw
plugin to be installed and enabled.
Русское описание ниже. / Russian description follows.
Плагин-компаньон для Obsidian Excalidraw. Делает рисование пером (Samsung S Pen) удобнее:
Это отдельный плагин — он НЕ форкает Excalidraw, а вызывает его публичный window.ExcalidrawAutomate.
Основное меню вставки (Текст, Стикер, Фигуры, Заметка/изображение) открывается двумя способами:
Ещё жесты боковой кнопкой при парении:
Копирование/вставка идут через API Excalidraw (внутренний буфер плагина + updateScene, с новыми
id и сохранением связей) — надёжно, без системного буфера. Те же действия доступны командами
«Копировать выделенное (стилус)» / «Вставить (стилус)» (можно повесить на хоткей). Касание пера к
экрану с движением — обычное рисование Excalidraw. Палец не перехватывается совсем.
Тап пером по фигуре → меню действий над фигурой: стрелка к объекту… (затем тапните целевой объект — стрелка свяжет оба), стикер на объект, дублировать, удалить. Тап по выделению из нескольких объектов → меню над всем набором: дублировать / удалить. Стрелки/линии в распознавании тапа не участвуют (большой прямоугольник габаритов). Подпись делается стикером (текст в рамке) — обычный «голый» текст на этом устройстве Excalidraw не сохраняется. Меню действий по тапу отключается в настройках; при этом тап по любому месту открывает основное меню.
Артефактная точка, которую карандаш может оставить, удаляется автоматически (отключается в настройках).
На Samsung боковая кнопка не приходит как buttons=2/buttons=3, но всплывает иначе (подтверждено
через Debug-оверлей):
pointermove с buttons=1
(обычное парение даёт buttons=0);contextmenu с pointerType="pen".Жест penbutton ловит оба пути (с антидребезгом, чтобы не сработать дважды) и гасит родное
контекстное меню. BLE-кнопка «Air actions» (двойной клик) вебу недоступна — идёт через
Bluetooth-HID мимо WebView, в DOM не приходит; используйте короткое нажатие кнопки.
Если на вашем устройстве кнопка не всплывает нигде — есть мост: команда «Открыть меню вставки (стилус)» (повесьте горячую клавишу в Настройки → Горячие клавиши), а автоматизатор (Tasker/MacroDroid) ловит нажатие S Pen-кнопки и шлёт эту клавишу.
cd excalidraw-stylus-menu
npm install
npm run build # → main.js
Как плагин устроен внутри (для разработки) — см. ARCHITECTURE.md.
Скопируйте main.js, manifest.json, styles.css в папку вашего хранилища:
<vault>/.obsidian/plugins/excalidraw-stylus-menu/
Включите плагин в Настройки → Сторонние плагины. На телефон попадёт через Obsidian Sync / git / облако (та же папка) или BRAT.
startObjectId/endObjectId) зависит от версии Excalidraw и может не сработать —
тогда стрелка просто рисуется по центрам.