Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 8 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,14 @@

All notable changes to Sketchover. The release workflow takes the notes for each version from this file.

## [0.3.1]
## [0.4.0]

### Added
- Every canvas key can be changed: Settings → *Canvas keys* → click a key and press the new one. A key already in use moves to the new action; reset one key or all of them. The cheat sheet and toolbar tooltips show your keys.
- Choose the double-tap key for click-through in Settings: `Alt`, `Ctrl`, `Shift`, `⌘` (macOS) or off.

### Changed
- macOS: double-tap `⌘` toggles click-through by default instead of `⌥` — double `⌥` opens other apps (Claude's quick entry, for one). Holding `⌥` still sends the mouse to the windows below.

### Fixed
- Anonymous usage statistics were never sent in 0.3.0: the request ran outside the async runtime and stopped the statistics thread. Drawing was not affected.
Expand Down
2 changes: 1 addition & 1 deletion CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ src/i18n/ словари; используется только из ui

## Простота использования (UX)
- Работает «из коробки»: запустил — рисуй. Минимум настроек, разумные значения по умолчанию.
- Каждое действие доступно и мышью, и горячей клавишей. Глобальный хоткей — **один** (по умолчанию `` Alt+` ``, переназначаемый); не больше 2–3 клавиш в комбинации. Внутри холста: цифры — инструменты, `Alt+цифра` — цвет, `Shift+цифра` — толщина, зажатый `Alt` — мышь окнам под холстом, двойной тап `Alt` — сквозной режим вкл/выкл.
- Каждое действие доступно и мышью, и горячей клавишей. Глобальный хоткей — **один** (по умолчанию `` Alt+` ``, переназначаемый); не больше 2–3 клавиш в комбинации. Внутри холста: цифры — инструменты, `Alt+цифра` — цвет, `Shift+цифра` — толщина, зажатый `Alt` — мышь окнам под холстом, двойной тап — сквозной режим вкл/выкл (`Alt` в Windows, `⌘` в macOS, выбирается в настройках). Клавиши холста переназначаются в настройках — новое действие добавляется в реестр `ui/shortcuts.js`.
- Клавиши определяем по `e.code` (физическая клавиша), не по `e.key`: иначе ломаются раскладки и модификаторы.
- Новый хоткей — сразу в памятку (`ui/help.js`) и README.
- Состояние режима (рисование / сквозные клики) всегда явно видно на экране.
Expand Down
10 changes: 6 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,13 +24,13 @@ Sketchover puts a transparent canvas over every window. Press one hotkey on a Zo
## Features

- **Draw on top of any app**: brush, line, arrow, rectangle, ellipse, text and a fading laser pointer.
- **Click-through**: hold `Alt` to click and scroll the windows below; double-tap `Alt` to stay in click-through mode. The drawing stays, semi-transparent.
- **Click-through**: hold `Alt` to click and scroll the windows below; double-tap `Alt` (`⌘` on macOS) to stay in click-through mode. The drawing stays, semi-transparent.
- **Text blocks with Markdown**: headings, bullet and numbered lists (they continue on `Enter`), **bold**, *italic*, `code`, ~~strikethrough~~.
- **Arrows that stick**: arrows attach to text blocks and screenshots and follow them when you move them.
- **Region screenshots**: press `S`, select part of the screen, and it lands on the canvas — move it, resize it, rotate it.
- **Paste into the chat**: `Ctrl+Shift+C` copies your drawing as an image — paste it into Zoom, Teams, Slack or Telegram.
- **Save and keep editing**: `Ctrl+S` saves a PNG that opens anywhere and still contains the editable canvas — open it later with `Ctrl+O`.
- **Keyboard first, layout independent**: `1`…`0` pick tools, `Alt+1…8` colors, `Shift+1…3` stroke width, `F1` shows a cheat sheet.
- **Keyboard first, layout independent**: `1`…`0` pick tools, `Alt+1…8` colors, `Shift+1…3` stroke width, `F1` shows a cheat sheet — and every canvas key can be changed in Settings.
- **Always ready, never in the way**: starts with your system and waits in the tray; one global hotkey (`` Alt+` ``, configurable) opens it on the monitor under your cursor.
- **Small and private**: a ~3 MB installer, no account; only an anonymous update check and anonymous usage statistics leave your computer, and the statistics can be turned off.
- **11 languages**: English, Русский, Deutsch, Español, Français, Português, 中文, 日本語, 한국어, العربية, हिन्दी.
Expand Down Expand Up @@ -61,7 +61,7 @@ Sketchover opens the canvas right after install — press `` Alt+` `` (the key l
|---|---|
| Show the canvas / drawing ⇄ click-through | `` Alt+` `` (global, configurable) |
| Mouse to the windows below while held | hold `Alt` (`⌥` on macOS; Windows and macOS) |
| Click-through on / off | double-tap `Alt` (Windows, macOS); `Esc`, the mode button or the global hotkey |
| Click-through on / off | double-tap `Alt` on Windows, `⌘` on macOS (the key is chosen in Settings); `Esc`, the mode button or the global hotkey |
| Tools | `1` select, `2` brush, `3` line, `4` arrow, `5` rectangle, `6` ellipse, `7` text block, `8` text, `9` laser, `0` eraser |
| Region screenshot | `S` |
| Color / stroke width | `Alt+1…8` / `Shift+1…3` |
Expand All @@ -70,6 +70,8 @@ Sketchover opens the canvas right after install — press `` Alt+` `` (the key l
| Save / open (PNG with the editable canvas inside) | `Ctrl+S` / `Ctrl+O` |
| Delete selected / clear all | `Delete` / `Shift+Delete` |
| Edit a text block | double-click it with any tool |

These are the defaults. To change a key: Settings (⚙) → **Canvas keys** → click the key and press the new one (`Esc` cancels). A key already in use moves to the new action; ↺ brings one key back, *Reset all keys* brings them all. Keys follow the physical key, so they work on any keyboard layout; on macOS, `Ctrl` in the table means `⌘`. Holding `Alt` is fixed. The double-tap key is chosen in Settings — `Alt`, `Ctrl`, `Shift`, `⌘` (macOS) or off; on macOS it is `⌘` by default, because double `⌥` already opens other apps (Claude's quick entry, for one).
| Cheat sheet | `F1` |

Viewers see your drawing when you share the **entire screen**, not a single window.
Expand All @@ -88,7 +90,7 @@ If you are looking for an **Epic Pen, ZoomIt, gInk, ppInk or Presentify alternat

**How do I keep a drawing?** `Ctrl+S` saves a regular PNG — it opens in any image viewer — with the canvas embedded, so `Ctrl+O` brings it back fully editable. Or `Ctrl+Shift+C` and paste it straight into the chat.

**Is everything the same on Linux?** Almost: holding or double-tapping `Alt` is Windows and macOS only for now. On Linux, switch click-through with `Esc`, the mode button or the global hotkey.
**Is everything the same on Linux?** Almost: holding `Alt` and the double tap are Windows and macOS only for now. On Linux, switch click-through with `Esc`, the mode button or the global hotkey.

## Build from source

Expand Down
4 changes: 3 additions & 1 deletion README.ru.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ npm start
|---|---|
| Показать холст / рисование ⇄ сквозные клики | `` Alt+` `` (клавиша Ё) — глобально, меняется в настройках |
| Мышь — окнам под холстом, пока держишь | зажать `Alt` (macOS: `⌥`; Windows и macOS) |
| Сквозные клики вкл / выкл | двойной тап `Alt` (Windows и macOS); `Esc`, кнопка режима или глобальный хоткей |
| Сквозные клики вкл / выкл | двойной тап `Alt` в Windows, `⌘` в macOS (клавиша выбирается в настройках); `Esc`, кнопка режима или глобальный хоткей |
| Спрятать в трей | ✕ на панели; показать — хоткей или клик по иконке в трее |
| Инструменты | `1` выбор, `2` кисть, `3` линия, `4` стрелка, `5` прямоугольник, `6` эллипс, `7` блок, `8` текст, `9` лазер, `0` ластик |
| Скриншот области | `S` или 📷 на панели → выделить область мышью (`Esc` — отмена) |
Expand All @@ -66,6 +66,8 @@ npm start
| Памятка по клавишам | `F1` или `?` на панели (по умолчанию открыта справа) |
| Настройки, обновления, о программе | ⚙ на панели |

Это клавиши по умолчанию. Поменять любую клавишу холста: ⚙ → **Клавиши холста** → клик по клавише и нажать новую (`Esc` — отмена). Если клавиша уже занята, она переходит к новому действию; ↺ возвращает одну клавишу, «Сбросить все клавиши» — все. Клавиши — по физическим кнопкам и работают на любой раскладке; на macOS `Ctrl` из таблицы — это `⌘`. Удержание `Alt` не меняется. Клавиша двойного тапа выбирается в настройках — `Alt`, `Ctrl`, `Shift`, `⌘` (macOS) или выключено; в macOS по умолчанию `⌘`, потому что двойной `⌥` уже открывает другие программы (например, быстрый ввод Claude).

- **Блоки**: протяни рамку или кликни, введи текст (`Enter` — готово, `Shift+Enter` — новая строка). Двойной клик по блоку или тексту любым инструментом — правка.
- **Markdown** в блоках и тексте: `#`/`##`/`###` заголовки, `-` и `1.` списки, `**жирный**`, `*курсив*`, `` `код` ``, `~~зачёркнутый~~`. Блок растёт под текст.
- **Скриншоты** появляются на месте выделенной области и сразу выделены: тащи, тяни за угол (пропорции сохраняются), вращай за круглую ручку сверху (прилипает к шагу 15°).
Expand Down
4 changes: 3 additions & 1 deletion docs/ROADMAP.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,12 @@
### Хоткеи
- Глобальный — **один**, по умолчанию **`` Alt+` ``** (клавиша слева от `1`; на русской раскладке — Ё): холст спрятан → показать; виден → рисование ⇄ сквозные клики. Переназначается в настройках (до 3 клавиш, нужен модификатор); если комбинацию держит другая программа — остаётся прежняя, и это видно в настройках.
- Внутри холста — по физическим клавишам (`e.code`), на любой раскладке: `1…9, 0` — инструменты по порядку панели, `Alt+1…8` — цвет, `Shift+1…3` — толщина, `S` — скриншот, `Esc` — сквозной режим, `Ctrl+Z/Y`, `Del`/`Shift+Del`, `F1` — памятка.
- Клавиши холста переназначаются в настройках («Клавиши холста»): клик по клавише → нажать сочетание. Реестр действий и клавиш по умолчанию — `ui/shortcuts.js`, логика сочетаний — `core/keymap.js` (`Mod` — Ctrl, на macOS ⌘). Одна клавиша — одно действие: занятая переходит к новому. В `settings.json` (поле `keys`) — только отличия от значений по умолчанию; Rust проверяет форму. Памятка и подсказки кнопок показывают текущие клавиши. Удержание `Alt` — в Rust (`keys.rs`), не переназначается; клавиша двойного тапа выбирается в настройках (ниже).
- **Удержание `Alt`** (macOS — `⌥`) — мышь окнам под холстом, рисунок полупрозрачный; отпустил — снова рисование, фокус возвращается холсту. Опрос состояния клавиш (Windows — `GetAsyncKeyState`, macOS — `CGEventSource*`), без хуков и особых разрешений.
- Почему `Alt`, а не `Ctrl`: модификатор доходит до окна под холстом, а `Ctrl+колесо` в браузере — масштаб вместо прокрутки. `Alt+колесо` в Chrome/Edge прокручивает как обычно.
- Остаточные эффекты: `Alt+клик` по ссылке в Chrome скачивает её; в Firefox `Alt+колесо` может листать историю. Если будет мешать — клавиша удержания станет настройкой.
- **Двойной тап `Alt`** — сквозной режим вкл/выкл, и когда фокус в другом окне. Тап — `Alt` отпущен за ≤300 мс без других клавиш и кнопок мыши; второй — в пределах 400 мс. Поэтому `Alt+Tab`, `Alt+Shift`, `Alt+цифра` режим не переключают. Чистая функция с юнит-тестами (`overlay.rs`).
- **Двойной тап** — сквозной режим вкл/выкл, и когда фокус в другом окне. Тап — клавиша отпущена за ≤300 мс без других клавиш и кнопок мыши; второй — в пределах 400 мс. Поэтому `Alt+Tab`, `Alt+Shift`, `Alt+цифра` режим не переключают. Чистая функция с юнит-тестами (`overlay.rs`).
- Клавиша тапа — в настройках (`tap_key`, `keys::Tap`): `Alt`, `Ctrl`, `Shift`, `⌘` (только macOS) или выключено. По умолчанию — `Alt` в Windows, `⌘` в macOS: двойной `⌥` там занят (быстрый ввод Claude), двойные `⇧` и `⌃` — в IDE JetBrains.
- Одиночный `Alt` гасится в окне холста: иначе Windows уводит окно в «режим меню» и теряет следующую клавишу.
- **Linux:** удержания и двойного тапа нет (на Wayland состояние чужих клавиш недоступно) — переключение `Esc`, кнопкой или хоткеем.
- Памятка — справа, открыта по умолчанию, сворачивается `F1`/`?`, скрыта в сквозном режиме.
Expand Down
Loading
Loading