nixpkgs mirror (for testing) github.com/NixOS/nixpkgs
nix
at devShellTools-shell 74 lines 1.5 kB view raw
1{ 2 lib, 3 stdenv, 4 fetchFromGitHub, 5 6 legacy ? false, 7 libinput, 8 9 pkg-config, 10 makeWrapper, 11 12 openal, 13 alure, 14 libXtst, 15 libX11, 16}: 17 18let 19 inherit (lib) optionals; 20in 21stdenv.mkDerivation rec { 22 pname = "bucklespring"; 23 version = "1.5.1"; 24 25 src = fetchFromGitHub { 26 owner = "zevv"; 27 repo = pname; 28 rev = "v${version}"; 29 sha256 = "0prhqibivxzmz90k79zpwx3c97h8wa61rk5ihi9a5651mnc46mna"; 30 }; 31 32 nativeBuildInputs = [ 33 pkg-config 34 makeWrapper 35 ]; 36 37 buildInputs = [ 38 openal 39 alure 40 ] 41 ++ optionals (legacy) [ 42 libXtst 43 libX11 44 ] 45 ++ optionals (!legacy) [ libinput ]; 46 47 makeFlags = optionals (!legacy) [ "libinput=1" ]; 48 49 installPhase = '' 50 runHook preInstall 51 52 mkdir -p $out/share/wav 53 cp -r $src/wav $out/share/. 54 install -D ./buckle.desktop $out/share/applications/buckle.desktop 55 install -D ./buckle $out/bin/buckle 56 wrapProgram $out/bin/buckle --add-flags "-p $out/share/wav" 57 58 runHook postInstall 59 ''; 60 61 meta = with lib; { 62 description = "Nostalgia bucklespring keyboard sound"; 63 mainProgram = "buckle"; 64 longDescription = '' 65 When built with libinput (wayland or bare console), 66 users need to be in the input group to use this: 67 <code>users.users.alice.extraGroups = [ "input" ];</code> 68 ''; 69 homepage = "https://github.com/zevv/bucklespring"; 70 license = licenses.gpl2Only; 71 platforms = platforms.unix; 72 maintainers = [ maintainers.evils ]; 73 }; 74}