diff --git a/pkgs/applications/misc/surface-control/default.nix b/pkgs/applications/misc/surface-control/default.nix new file mode 100644 index 00000000000..2c5db1fe15a --- /dev/null +++ b/pkgs/applications/misc/surface-control/default.nix @@ -0,0 +1,37 @@ +{ lib, rustPlatform, fetchFromGitHub, installShellFiles, coreutils }: + +rustPlatform.buildRustPackage rec { + pname = "surface-control"; + version = "0.3.1-1"; + + src = fetchFromGitHub { + owner = "linux-surface"; + repo = pname; + rev = "v${version}"; + sha256 = "0wclzlix0a2naxbdg3wym7yw19p2wqpcjmkf7gn8cs00shrmzjld"; + }; + + cargoSha256 = "0vi26v9mvx298kx6k5g7h8dnn7r208an9knadc23vxcrrxjr6pn5"; + + nativeBuildInputs = [ installShellFiles ]; + + postInstall = '' + installShellCompletion \ + $releaseDir/build/surface-*/out/surface.{bash,fish} \ + --zsh $releaseDir/build/surface-*/out/_surface + install -Dm 0444 -t $out/etc/udev/rules.d \ + etc/udev/40-surface-control.rules + substituteInPlace $out/etc/udev/rules.d/40-surface-control.rules \ + --replace "/usr/bin/chmod" "${coreutils}/bin/chmod" \ + --replace "/usr/bin/chown" "${coreutils}/bin/chown" + ''; + + meta = with lib; { + description = + "Control various aspects of Microsoft Surface devices on Linux from the Command-Line"; + homepage = "https://github.com/linux-surface/surface-control"; + license = licenses.mit; + maintainers = with maintainers; [ winterqt ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index e57409a0b91..f987d339798 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -7973,6 +7973,8 @@ in stubby = callPackage ../tools/networking/stubby { }; + surface-control = callPackage ../applications/misc/surface-control { }; + syntex = callPackage ../tools/graphics/syntex {}; sl = callPackage ../tools/misc/sl { stdenv = gccStdenv; };