i'm using rdev = { version = "0.5.3", features = ["unstable_grab"] }
crate on Debian Bookworm in VSCode, to create my first pet-project and stack with problem:
Error: IoError(Os { code: 13, kind: PermissionDenied, message: "Permission denied" })
if let Err(error) = grab(move |e| callback(e, &screen_dir)) {
println!("Error: {error:?}");
}
the description of grab
says:
On Linux, you need rw access to evdev devices in /etc/input/ (usually group membership in input group is enough)
But I've tried to:
- sudo chown -R $(whoami) /Project_folder
- sudo chown -R $(whoami) ~/.cargo
- sudo chown -R $(whoami) ~/.rustup
- cargo clean; exited and entered again VSCode, cargo build. (https://github.com/rust-lang/cargo/issues/6757#issuecomment-817356128)
- Also tried to add hidraw user https://github.com/PixlOne/logiops/issues/32#issuecomment-715887184.
- Also tried evdev Permissions instructions:
sudo groupadd uinput
sudo usermod -a -G uinput $USER
echo 'KERNEL=="uinput", GROUP="uinput", MODE:="0660", OPTIONS+="static_node=uinput"' | sudo tee -a /etc/udev/rules.d/99-uinput.rules > /dev/null
sudo udevadm control --reload-rules && sudo udevadm trigger
(https://hackage.haskell.org/package/evdev#permissions)
I don't really know how to give all permissions to rust for input group.