Kadr
Скриншотер для GNOME на Wayland на C++23 и Qt 6. Набор функций ориентирован на FastStone Capture 7.3, запись видео в проект не входит.
attributes
- role
- автор
Задача
В GNOME на Wayland приложение не может само читать экран и регистрировать глобальные сочетания клавиш: снимки, захват окна, ввод для прокрутки и работа в фоне идут через xdg-desktop-portal, и у каждого портала свои разрешения и сессии. Kadr реализует набор функций FastStone Capture 7.3 поверх этих порталов.
Решение
Каждый снимок проходит цепочку шагов из профиля: редактор, буфер обмена, файл, внешние команды, выгрузка, OCR или почта. Захват идет через порталы Screenshot или ScreenCast, захват с прокруткой через RemoteDesktop, сочетания клавиш через GlobalShortcuts, автозапуск через Background.
- Режимы: весь экран, монитор, область, область фиксированного размера, произвольная область, окно и последняя область; оверлей на каждом мониторе с лупой и управлением с клавиатуры
- Захват с прокруткой: выделенная область прокручивается колесом через портал RemoteDesktop, кадры склеиваются в одно изображение
- Редактор: стрелки, фигуры, текст, выноски, нумерованные шаги, размытие и пикселизация, обрезка, изменение размера, рамка, тень и водяной знак, отмена любого действия
- Вывод: буфер обмена, файлы PNG, JPEG и WebP по шаблону имени, внешние команды в песочнице или на хосте, выгрузка на SFTP, WebDAV и в rclone со ссылкой в буфере обмена
- Инструменты: распознавание текста через tesseract, пипетка, линейка, история снимков, отправка по почте
- Фоновый режим с глобальными сочетаниями клавиш и автозапуском, интерфейс на английском и русском
Стек
C++23, Qt 6 (Widgets, DBus, Network), CMake, PipeWire для кадров ScreenCast, libssh для SFTP, libsecret для паролей. Распространяется как Flatpak на runtime KDE 6.11 и как пакет RPM в Fedora COPR. Лицензия GPL-3.0-or-later.
Результат
Версия 1.0.0 собирается в COPR для Fedora 43, 44, 45 и Rawhide на x86_64 и aarch64. Каждый модуль собирается статической библиотекой со своими наборами QtTest, всего их 25. Тесты идут на платформе offscreen, в том числе в сборке с AddressSanitizer и UBSan, релизная сборка идет с -Werror. Эти же тесты делают снимки окон для AppStream metainfo.
Установка
Из Fedora COPR для Fedora 43 и новее на x86_64 и aarch64. Kadr работает только в GNOME на Wayland.
sudo dnf copr enable inkov/kadr && sudo dnf install kadr
Обновления приходят через sudo dnf upgrade. Сборка и установка Flatpak описаны в README репозитория.