-
Notifications
You must be signed in to change notification settings - Fork 0
Requirements and Permissions
stepshot is deliberately privileged — it sees every click and can screenshot any window — but it stays local-only and shows no Wayland permission prompts. Here is what it needs and why.
| Purpose | Requirement |
|---|---|
| Session | KDE Plasma on Wayland (KWin) |
| Screenshots | the .desktop file from install.sh (KWin authorization) |
| Click capture | membership in the input group, then a reboot
|
| Element names (Qt/KDE) | Qt built with accessibility / the Qt AT-SPI bridge |
| Element names (GTK) |
at-spi2-atk / libatk-bridge (usually present) |
| Element names (Chrome/Electron) | launch with --force-renderer-accessibility
|
Wayland has no global input API, so stepshot reads /dev/input (evdev) directly.
That requires membership in the input group:
sudo usermod -aG input "$USER"On systemd systems, logging out and back in does not restart the per-user
systemd --user manager, which launches your tray apps. It keeps the group set
it had at first login, so a menu-launched stepshot still has no input group —
the tray icon may appear, but every recording yields 0 steps.
Reboot after adding yourself to the group. (loginctl terminate-user "$USER"
also works, but it kills your whole session.)
Do not use
newgrp input/sg inputas a shortcut. The group switch makes the process non-dumpable (e.g. Fedora'ssuid_dumpable=2), so KWin can't read its/proc/<pid>/exeto authorize the screenshot and rejects it withNoAuthorized. Reboot instead.
KWin only allows org.kde.KWin.ScreenShot2 for executables that ship a .desktop
file declaring:
X-KDE-DBUS-Restricted-Interfaces=org.kde.KWin.ScreenShot2
install.sh creates this file and points Exec= at the installed binary. KWin
matches the resolved executable path against Exec=, which is why the
installer copies the binary rather than symlinking it. There is no runtime consent
dialog — the same mechanism Spectacle uses.
Element names come from the AT-SPI accessibility tree, which stepshot enables only while recording and disables afterwards.
-
Qt/KDE apps need Qt's accessibility/AT-SPI bridge. On Gentoo this is the
accessibilityUSE flag onqtbase; most distros ship it enabled. -
GTK apps use
at-spi2-atk/libatk-bridge, usually already installed. - Firefox activates accessibility automatically once an assistive tech is detected.
-
Chrome / Electron must be launched with
--force-renderer-accessibility.
Without accessibility, descriptions gracefully fall back to the window level.
While running, stepshot can see every click and silently screenshot any window — the capabilities of a keylogger or screen recorder. In exchange it is:
- local-only — no network, ever,
- writes only to the session folder,
- toggles accessibility only while recording.
Only run builds you trust. To revoke screenshot access, remove the .desktop
file (see Installation → Uninstall).