# Development setup ## Enter shell ```bash nix develop ``` This shell includes: - Rust: `cargo`, `rustc`, `rustfmt`, `clippy`, `rust-analyzer` - Build tools: `pkg-config`, `gcc`, `clang`, `make`, `git` - Input debug: `evtest`, `libinput`, `wev` - CLI tools: `jq`, `rg`, `fd`, `jj` ## Recommended NixOS runtime config (uinput) For `gotta-scroll-fast` (`gsfd`), you typically need `/dev/uinput`. ```nix { boot.kernelModules = [ "uinput" ]; # Optional: ensure module is available in initrd/system profile boot.extraModulePackages = [ ]; services.udev.extraRules = '' KERNEL=="uinput", MODE="0660", GROUP="input" ''; users.users..extraGroups = [ "input" ]; } ``` Then rebuild and re-login. ## Useful checks ```bash ls -l /dev/uinput id sudo evtest libinput debug-events wev ``` ## First run (project) ```bash cargo run -p gsf-daemon -- --list-devices cargo run -p gsf-cli -- tui ```