{ lib, rustPlatform, fetchFromGitHub, pkg-config, installShellFiles, udev, coreutils, }: rustPlatform.buildRustPackage rec { pname = "surface-control"; version = "0.5.0-1"; src = fetchFromGitHub { owner = "linux-surface"; repo = "surface-control"; tag = "v${version}"; hash = "sha256-XPIHGDpq2x+P8i8b4nLlobR/BysdZX+7N9Pu2l/U4Gs="; }; cargoHash = "sha256-K9nfDIEoI/p8DDKe2sFQjFn12zzb5VhKX4mTc0+Y8dE="; nativeBuildInputs = [ pkg-config installShellFiles ]; buildInputs = [ udev ]; postInstall = '' installShellCompletion \ $releaseDir/build/surface-*/out/surface.{bash,fish} \ --zsh $releaseDir/build/surface-*/out/_surface ''; meta = { description = "Control various aspects of Microsoft Surface devices on Linux from the Command-Line"; homepage = "https://github.com/linux-surface/surface-control"; license = lib.licenses.mit; maintainers = [ ]; platforms = lib.platforms.linux; mainProgram = "surface"; }; }