all dispatches
· #kadr· #windows· #rust· #open-source· #lezneve

kadr: скриншоти без зайвого

kadr: скриншоти без зайвого

Я довго користувався ShareX. Він уміє все, і саме в цьому проблема: сотні налаштувань, вкладки, завдання після знімка, завантажувачі. А мені майже завжди треба одне: виділити шматок екрана, намалювати стрілку чи рамку, замазати номер картки й вставити в чат.

Тому я зробив kadr — маленьку утиліту для скриншотів на Windows, яка робить саме це. Без зайвого.

як це працює

  1. Натискаєш PrintScreen — екран застигає й темнішає.
  2. Виділяєш область мишею (або Ctrl+A — весь екран).
  3. Відпускаєш — і на тому самому місці, 1:1, відкривається редактор. Решта екрана лишається затемненою, тож видно, що саме ти зняв.
  4. Малюєш: рамка, еліпс, лінія, перо, маркер, розмиття, суцільне зафарбовування. Shift — рівні квадрати, кола й лінії під 45°.
  5. Ctrl+C — скопіювати й закрити. Ctrl+S — зберегти PNG у «Знімки екрана». Esc — закрити.

Нічого не копіюється й не зберігається само, поки ти не скажеш.

панель інструментів і вибір кольору

Колір — сім готових, будь-який через системний діалог або піпеткою прямо зі знімка. Товщина від 1 до 32 px, з попереднім переглядом у реальному розмірі. Останній колір і товщина запам'ятовуються. Undo/redo, переміщення й зміна розміру вже намальованого — теж є.

чому він такий легкий

kadr написаний на Rust і чистому Win32, без Electron, без вебв'ю, без фреймворків. Ось що вийшло на моєму ноутбуці (2560×1600, 150 %):

  • у простої — ~2 МБ пам'яті й 0 % процесора: kadr просто спить, поки не натиснеш клавішу;
  • від натискання до затемненого екрана — ~60 мс;
  • від відпускання миші до редактора — ~100 мс;
  • редактор — окремий процес на кожен знімок: закрив — і вся його пам'ять повернулась системі.

Для порівняння: я пробував зробити вікно налаштувань на Tauri, і такий прототип займав ~210 МБ і 7 процесів. Тому все нативне.

навайбкоджено

Більшу частину коду написав не я, а ШІ (Claude), а я ставив задачі, тестував і казав, що не так. Ідеологія в мене та сама, що й з entinyGram: якщо ШІ робить роботу за мене, усе має бути відкритим. Тому kadr — під MIT, увесь код на GitHub.

що ще не ідеально

  • Файли поки не підписані, тож Windows SmartScreen попередить при першому запуску: «Докладніше» → «Запустити все одно». Поруч із кожним файлом є SHA-256.
  • Windows 11 любить віддавати PrintScreen у Snipping Tool. kadr один раз питає, чи вимкнути це, і змінює налаштування лише після «так». Але на моєму ж ноутбуці голий PrintScreen досі не доходить — схоже, клавішу перехоплює утиліта Fn-клавіш. Поки що можна поставити іншу клавішу в налаштуваннях, наприклад Ctrl+PrintScreen.
  • Не перевіряв на кількох моніторах, HDR і Windows 10.

де взяти

Якщо щось зламається — пишіть, полагоджу.