Linux et Wayland
Sous X11, ssr fonctionne comme sous Windows et macOS, sans rien à régler. Sous Wayland,
il passe par un chemin dédié, car Wayland ne laisse pas une application ordinaire observer les clics et les touches
des autres fenêtres, ni les capturer librement.
| X11 | Wayland | |
|---|---|---|
| Clics et clavier | device_query | evdev, lecture de /dev/input (règle udev nécessaire) |
| Captures | xcap, fenêtre active | xdg-desktop-portal + PipeWire, fenêtre ou écran choisi par vous |
Le chemin Wayland est choisi quand XDG_SESSION_TYPE vaut wayland ou que
WAYLAND_DISPLAY est défini. Le portail sert sur tous les bureaux Wayland : la prise en charge de Wayland
par xcap ne fonctionne qu'avec les compositeurs wlroots, pas avec GNOME ni KDE.
1. Autoriser la lecture des périphériques d'entrée
Le backend evdev lit /dev/input. Pour y donner accès sans ajouter
l'utilisateur au groupe input, installez la règle udev fournie dans le dépôt :
git clone https://github.com/Le-Syl21/support-step-recorder.git
cd support-step-recorder
sudo ./packaging/install-linux.sh
Sans git, récupérez les deux fichiers dans un même dossier et lancez le script depuis celui-ci :
curl -fLO https://raw.githubusercontent.com/Le-Syl21/support-step-recorder/main/packaging/install-linux.sh
curl -fLO https://raw.githubusercontent.com/Le-Syl21/support-step-recorder/main/packaging/60-ssr-input.rules
sudo bash install-linux.sh
Le script :
- installe
/etc/udev/rules.d/60-ssr-input.rules, qui contient une seule règle :KERNEL=="event*", SUBSYSTEM=="input", TAG+="uaccess". Elle donne à l'utilisateur de la session active un accès en lecture aux périphériques d'entrée ; - supprime une ancienne
99-ssr-input.rulessi elle existe ; - recharge les règles
udevet les applique tout de suite aux périphériques d'entrée.
Si la capture ne fonctionne pas tout de suite, fermez puis rouvrez votre session.
Le préfixe 60- compte : le tag uaccess doit être posé avant
73-seat-late.rules de systemd, qui n'applique les droits d'accès qu'aux périphériques déjà marqués. Une
règle numérotée 99 arrive trop tard et reste sans effet.
Sans la règle (ni appartenance au groupe input), Démarrer échoue : la barre d'état
indique qu'aucun périphérique /dev/input lisible n'a été trouvé.
Pour désinstaller :
sudo rm /etc/udev/rules.d/60-ssr-input.rules
sudo udevadm control --reload-rules
sudo udevadm trigger --subsystem-match=input
2. Accepter le partage d'écran
Au clic sur Démarrer, le bureau (GNOME, KDE, wlroots…) affiche sa fenêtre de partage d'écran. Choisissez une fenêtre ou un écran : toutes les captures de la session en proviennent, pointeur de la souris compris.
ssr garde le jeton renvoyé par le portail dans ~/.local/state/ssr/screencast.token (ou
$XDG_STATE_HOME/ssr/screencast.token) : les enregistrements suivants ne redemandent rien. Si le portail
n'est pas disponible, ssr se rabat sur xcap.
Ce qui change sous Wayland
- La capture est la dernière image de la fenêtre ou de l'écran partagé. Les captures de fenêtre sont débarrassées des bandes noires que certains compositeurs ajoutent autour.
- La position du clic n'est pas connue : pas de cercle rouge sur les captures, pas de coordonnées dans
steps.json. - Le titre et l'application de la fenêtre ne sont pas exposés ; la liste des étapes affiche Fenêtre : inconnue (non exposée sous Wayland).
- Les boutons gauche, droit et du milieu de la souris sont enregistrés.
Compiler sous Linux
Le chemin de capture Wayland demande les en-têtes PipeWire et clang (pour bindgen). Sous Debian ou Ubuntu :
sudo apt install libpipewire-0.3-dev libspa-0.2-dev clang
Voir installer avec Cargo pour la liste complète utilisée par le processus de publication.