[package] name = "rig-input" version.workspace = true edition.workspace = true # Layer 2's input half (docs/RUST.md's "Three test layers"): replays one # of the `.touch` files the headless tests use into whatever window is # under a Wayland compositor, so the *same recording* drives the # assertion layer and the layer a person looks at. # # It exists because this machine's compositor has no pointer to move. # `run-headless.sh` starts sway on the headless backend with no input # devices at all (`WLR_LIBINPUT_NO_DEVICES=1`, `LIBSEAT_BACKEND=noop`), # so `swaymsg seat - cursor press` reports success and nothing reaches # the client -- `swaymsg -t get_seats` shows `capabilities: 0`. wlroots # 0.19 dropped `WLR_HEADLESS_INPUTS`, and ydotool's uinput device would # be ignored by a compositor that is not reading libinput. The # virtual-pointer protocol is what is left, and it is a client protocol, # so it needs no devices and no root. # Named for what it does rather than for the crate, since the crate may # grow a keyboard replay beside it. [[bin]] name = "replay-touch" path = "src/main.rs" [dependencies] # `TouchScript` -- the same parser the harness uses, so a file that # replays here and one that replays headless can never disagree. iris = { path = ".." } wayland-client = "0.31.15" wayland-protocols-wlr = { version = "0.3.12", features = ["client"] }