TreeMap
무료 오픈소스 디스크 사용량 시각화 도구로, 사각형 트리맵·중복 파일 탐색·디스크 가득 예측·정리 시 파일을 휴지통으로만 이동한다
Support Step Recorder (ssr) takes a screenshot on every click, notes the text you type and saves a ZIP with an HTML report. A free, open-source replacement for psr.exe on Windows, macOS and Linux, Way
생산성Rust · ShellGitHub @Le-Syl21온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
Free, open-source alternative to Windows' Problem Steps Recorder (psr.exe) for Windows, macOS and Linux (X11 & Wayland): screenshot on every click, typed text, and a replayable HTML report. Written in Rust.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Cross-platform user-action recorder written in Rust — an open clone of Windows'
Problem Steps Recorder (psr.exe) to document a bug or a step-by-step how-to.
Questions, bug reports, beta testing, or just want to chat? Join the Discord:
Website: le-syl21.github.io/support-step-recorder
(download, how-to, Linux/Wayland setup, FAQ).README 전문 보기 ↗ssr)Cross-platform user-action recorder written in Rust — an open clone of Windows' Problem Steps Recorder (
psr.exe) to document a bug or a step-by-step how-to.
Questions, bug reports, beta testing, or just want to chat? Join the Discord:
Website: le-syl21.github.io/support-step-recorder (download, how-to, Linux/Wayland setup, FAQ).
On every click, ssr captures the relevant window, records the mouse button,
aggregates typed text between clicks, and — when available — the active
window info. When you stop, it asks where to save and writes a .zip
bundling the WebP screenshots, a steps.json, and a self-contained, replayable
HTML report.
The interface is available in English and French (auto-detected from your
locale, switchable with the FR/EN button).
xdg-desktop-portal + PipeWire
(works on GNOME, KDE, wlroots…), with a one-time consent dialog and a
reusable token so it isn't asked again.Input and screen capture are abstracted behind backends, chosen at compile time
(cfg) and at runtime (Wayland vs. the rest):
| Component | Windows / macOS / Linux X11 | Linux Wayland |
|---|---|---|
| Input (clicks / keys) | device_query | evdev (/dev/input) |
| Screen capture | xcap (active window) | xdg-desktop-portal + PipeWire (user picks a window or screen) |
Why a dedicated Wayland path? Wayland forbids passive global input capture by a normal client, so we read
/dev/inputdirectly (needs audevrule, see Linux/Wayland setup). And screen capture must go through the desktop portal + PipeWire —xcap's Wayland path only works on wlroots compositors, not GNOME/KDE, so we use the portal for all Wayland.
ZIP + HTML report is generated there. (Cancel → confirm discard or retry.)The .zip contains report.html, steps.json and all step-XXXX.webp. The
HTML references the WebP files (they travel together in the zip).
cargo run -p support-step-recorder-gui # or: cargo run --bin ssr
cargo test --workspace # run the tests
Linux build dependencies (for the Wayland capture path): libpipewire-0.3-dev,
libspa-0.2-dev, clang (bindgen). On Debian/Ubuntu:
sudo apt install libpipewire-0.3-dev libspa-0.2-dev clang
The evdev backend reads /dev/input. To grant access without adding your
user to the input group, install the provided udev rule:
sudo ./packaging/install-linux.sh
It installs /etc/udev/rules.d/60-ssr-input.rules (TAG+="uaccess"), granting
the active-session user read access to input devices. The 60- prefix is
required: the uaccess tag must be set before systemd's seat rules apply.
⚠️ Security: this lets apps run by the active user read keyboard/mouse input — the assumed trade-off for a PSR-style recorder on Wayland. Screen capture additionally goes through the portal (consent popup, reusable token).
MIT.
Site web : le-syl21.github.io/support-step-recorder/fr (téléchargement, mode d'emploi, mise en place Linux/Wayland, FAQ).
À chaque clic, ssr capture la fenêtre concernée, relève le bouton de souris,
agrège le texte saisi entre deux clics et — quand c'est disponible — les
infos de la fenêtre active. À l'arrêt, il demande où enregistrer et écrit
un .zip regroupant les captures WebP, un steps.json et un rapport HTML
autoportant et rejouable.
L'interface est disponible en français et anglais (détectée depuis la locale,
basculable via le bouton FR/EN).
xdg-desktop-portal + PipeWire
(GNOME, KDE, wlroots…), avec un dialogue de consentement unique et un jeton
réutilisable pour ne plus le redemander.Les entrées et la capture d'écran sont abstraites par backend, choisi à la
compilation (cfg) et à l'exécution (Wayland ou non) :
| Brique | Windows / macOS / Linux X11 | Linux Wayland |
|---|---|---|
| Entrées (clics / clavier) | device_query | evdev (/dev/input) |
| Capture écran | xcap (fenêtre active) | xdg-desktop-portal + PipeWire (l'utilisateur choisit une fenêtre ou l'écran) |
Pourquoi un chemin Wayland dédié ? Wayland interdit la capture passive globale des entrées par un client classique : on lit donc directement
/dev/input(règleudevrequise, cf. Mise en place). Et la capture d'écran passe obligatoirement par le portail + PipeWire — le chemin Wayland dexcapne marche que sur les compositeurs wlroots, pas GNOME/KDE ; on utilise donc le portail pour tout Wayland.
ZIP + HTML y est généré. (Annuler → confirmer
l'abandon ou réessayer.)Le .zip contient report.html, steps.json et toutes les step-XXXX.webp. Le
HTML référence les WebP (ils voyagent ensemble dans le zip).
cargo run -p support-step-recorder-gui # ou : cargo run --bin ssr
cargo test --workspace # lancer les tests
Dépendances de build Linux (chemin de capture Wayland) : libpipewire-0.3-dev,
libspa-0.2-dev, clang (bindgen). Sur Debian/Ubuntu :
sudo apt install libpipewire-0.3-dev libspa-0.2-dev clang
Le backend evdev lit /dev/input. Pour y donner accès sans ajouter
l'utilisateur au groupe input, installez la règle udev fournie :
sudo ./packaging/install-linux.sh
Elle pose /etc/udev/rules.d/60-ssr-input.rules (TAG+="uaccess"), qui accorde à
l'utilisateur de la session active un accès en lecture aux périphériques
d'entrée. Le préfixe 60- est indispensable : le tag uaccess doit être posé
avant les règles de seat de systemd.
⚠️ Sécurité : cela autorise les applications de l'utilisateur actif à lire les entrées clavier/souris — le compromis assumé pour un enregistreur de type PSR sous Wayland. La capture d'écran passe en plus par le portail (popup de consentement, jeton réutilisable).
MIT.