Маленькая утилита для Windows: по горячей клавише замораживает экран, даёт выделить прямоугольную область и кладёт её в буфер обмена. Ничего больше.
- ✅ Настраиваемая горячая клавиша (через окно настройки или файл конфигурации)
- ✅ Заморозка экрана на время выделения
- ✅ Прямоугольное выделение мышью, область вне выделения затемняется
- ✅ Отмена по
Escили правой кнопкой мыши - ✅ Поддержка нескольких мониторов (при одинаковом масштабе DPI)
- ✅ Автозапуск при входе в Windows
- ✅ Иконка в системном трее
- ❌ В файл ничего не сохраняется — только буфер обмена
После запуска программа висит в трее. Нажмите хоткей (по умолчанию Ctrl+Shift+S):
- Экран «замораживается» и затемняется.
- Зажмите левую кнопку мыши и выделите прямоугольник (можно тянуть через несколько мониторов).
- Отпустите кнопку — выделенная область скопирована в буфер обмена.
Escили правый клик — отмена.
Самый простой способ — левый клик по иконке в трее (или правый клик → «Изменить хоткей…»). Откроется маленькое окно:
- Нажмите нужную комбинацию (например,
Ctrl+Shift+A). В заголовке окна видно, какие модификаторы уже зажаты. - Как только нажмёте основную клавишу — комбинация сразу применяется (без перезапуска) и сохраняется в конфиг.
Esc— отмена. Если комбинация уже занята системой/другой программой — об этом сообщит заголовок окна, останется прежняя.
Файл можно править и вручную; создаётся автоматически при первом запуске:
%APPDATA%\ScreenSnip\ScreenSnip\config.toml
hotkey = "Ctrl+Shift+S"
autostart = true- hotkey — модификаторы
Ctrl/Shift/Alt/Winчерез+, затем клавиша. Примеры:"Ctrl+Shift+S","Alt+PrintScreen","Ctrl+F8","Win+Shift+A". Клавишей может быть буква/цифра,F1..F24или имя (PrintScreen,Insert,Home…). - autostart — добавлять/убирать программу из автозапуска (ветка реестра
HKCU\…\Run).
При смене хоткея через окно настройки изменения применяются сразу. При ручной правке файла — после перезапуска программы (пункт «Выход» в трее → запустить снова). Пункт меню в трее «Открыть конфиг» откроет этот файл.
⚠️ Не используйтеWin+Shift+S— это встроенный «Ножницы» Windows, он перехватит хоткей.
Если ставили через установщик:
- Соберите новую версию:
cargo build --release. - В
installer\setup.issувеличьтеMyAppVersion(например,0.1.0→0.2.0).AppIdменять нельзя — именно по нему Inno распознаёт уже установленную программу. - Соберите установщик и запустите новый
ScreenSnip-Setup-X.Y.Z.exe.
Установщик увидит установленную версию (по AppId) и обновит её на месте. Если
программа запущена, по AppMutex он предложит её закрыть. Конфиг и автозапуск
сохраняются — отдельно удалять старую версию не нужно.
Если запускаете portable (просто exe): «Выход» в трее → замените файл на новый → запустите.
Установленную через установщик программу удаляют как обычно:
- Параметры Windows → Приложения → ScreenSnip → Удалить, либо
- ярлык «Удалить ScreenSnip» в меню «Пуск».
Деинсталлятор закроет программу, удалит файлы и запись автозапуска из реестра.
Файл конфигурации (%APPDATA%\ScreenSnip\…) остаётся — удалите вручную при желании.
Portable-версию удаляют так: «Выход» в трее, удалить exe, а чтобы убрать
автозапуск — выставить autostart = false в конфиге и один раз запустить (программа
сама снимет запись), либо удалить значение реестра вручную:
reg delete "HKCU\Software\Microsoft\Windows\CurrentVersion\Run" /v ScreenSnip /fВсе зависимости используют Windows-бэкенды (захват экрана, трей, окна), поэтому собирать нужно на Windows — кросс-компиляция из Linux не поддерживается.
Скачайте и запустите rustup-init.exe с https://rustup.rs и пройдите установку
(вариант по умолчанию — стабильный тулчейн x86_64-pc-windows-msvc).
Rust на Windows требует компоновщик MSVC. Если установка rustup попросит —
поставьте Visual Studio Build Tools с компонентом «Разработка классических
приложений на C++» (включает MSVC и Windows SDK). Ссылка:
https://visualstudio.microsoft.com/visual-cpp-build-tools/
Проверка:
rustc --version
cargo --versionВ папке проекта:
cargo build --releaseГотовый файл: target\release\screensnip.exe (один самодостаточный exe).
Запустить прямо так:
.\target\release\screensnip.exeЕсть два варианта установщика. NSIS собирается даже из Linux, Inno Setup — только на Windows.
Вариант A — NSIS (installer/screensnip.nsi), собирается из Linux:
sudo apt-get install -y nsis # один раз
# сначала соберите релизный exe и положите его в dist/screensnip.exe
makensis -DSRCEXE=$PWD/dist/screensnip.exe \
-DOUTFILE=$PWD/dist/ScreenSnip-Setup-0.1.0.exe \
installer/screensnip.nsiГотовый dist/ScreenSnip-Setup-0.1.0.exe ставит программу в Program Files\ScreenSnip,
создаёт ярлыки в «Пуске», заводит запись в «Установка и удаление программ». Удаление
(оттуда же или ярлыком «Удалить ScreenSnip») закрывает программу, удаляет файлы,
ярлыки и запись автозапуска из реестра.
Вариант B — Inno Setup (installer/setup.iss), на Windows:
- Установите Inno Setup: https://jrsoftware.org/isdl.php
- Соберите релиз (
cargo build --release). ISCC installer\setup.iss(или Compile в GUI) →installer\output\ScreenSnip-Setup-0.1.0.exe.
Оба установщика кладут программу в Program Files\ScreenSnip. Автозапуск включает
само приложение (по настройке autostart в конфиге).
Программа кросс-платформенная и работает на Linux под X11. Логика та же: хоткей → заморозка → выделение → буфер; есть иконка в трее (изменить хоткей / выход).
Поддерживается:
- Сессия X11 (
echo $XDG_SESSION_TYPE→x11). Под Wayland глобальный хоткей не работает (ограничение протокола) — нужен X11-сеанс. - Трей: окружения со штатным System Tray — KDE, XFCE, Cinnamon, MATE. В GNOME
трея по умолчанию нет — поставьте расширение AppIndicator, иначе иконка не появится
(хоткей при этом всё равно работает, но управлять и выходить придётся через конфиг/
kill).
Сборка:
# Зависимости (Debian/Ubuntu); на других дистрибутивах — аналоги
sudo apt-get install -y \
libgtk-3-dev libxdo-dev libayatana-appindicator3-dev \
libxcb1-dev libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev \
libxkbcommon-dev libpipewire-0.3-dev libgbm-dev libegl-dev libdrm-dev
cargo build --release
# бинарник: target/release/screensnipАвтозапуск на Linux — через ~/.config/autostart/screensnip.desktop (создаётся
приложением, если autostart = true). Конфиг: ~/.config/ScreenSnip/config.toml.
Особенность буфера обмена (X11). В отличие от Windows, на X11 содержимое буфера «живёт» в процессе-владельце. Пока ScreenSnip висит в трее — скопированная картинка доступна; если скопировать и сразу выйти, она пропадёт (если только её не подхватил менеджер буфера обмена вроде Klipper/CopyQ). Для постоянной работы держите программу в трее.
- DPI. Код рассчитан на одинаковый масштаб на всех мониторах. При смешанном масштабе (например, ноутбук 150% + внешний 100%) выделение на втором мониторе может смещаться — это потребует отдельной схемы «окно на каждый монитор».
- Заморозка. Скриншот делается ДО показа оверлея, поэтому на экране именно замороженный кадр, а не живое изображение.
- Антивирус. Глобальный хоткей + автозапуск + работа с буфером иногда вызывают ложные срабатывания эвристик. Бинарник без подписи; при необходимости подпишите.