biglybt: 3.5.0.0 -> 3.6.0.0
[NixPkgs.git] / pkgs / applications / audio / bucklespring / default.nix
blobccc25da4f1ed0ac424d5a2e1945b6a0f6d4082a1
1 { lib
2 , stdenv
3 , fetchFromGitHub
5 , legacy ? false
6 , libinput
8 , pkg-config
9 , makeWrapper
11 , openal
12 , alure
13 , libXtst
14 , libX11
17 let
18   inherit (lib) optionals;
20 stdenv.mkDerivation rec {
21   pname = "bucklespring";
22   version = "1.5.1";
24   src = fetchFromGitHub {
25     owner = "zevv";
26     repo = pname;
27     rev = "v${version}";
28     sha256 = "0prhqibivxzmz90k79zpwx3c97h8wa61rk5ihi9a5651mnc46mna";
29   };
31   nativeBuildInputs = [ pkg-config makeWrapper ];
33   buildInputs = [ openal alure ]
34     ++ optionals (legacy) [ libXtst libX11 ]
35     ++ optionals (!legacy) [ libinput ];
37   makeFlags = optionals (!legacy) [ "libinput=1" ];
39   installPhase = ''
40     runHook preInstall
42     mkdir -p $out/share/wav
43     cp -r $src/wav $out/share/.
44     install -D ./buckle.desktop $out/share/applications/buckle.desktop
45     install -D ./buckle $out/bin/buckle
46     wrapProgram $out/bin/buckle --add-flags "-p $out/share/wav"
48     runHook postInstall
49   '';
51   meta = with lib; {
52     description = "Nostalgia bucklespring keyboard sound";
53     mainProgram = "buckle";
54     longDescription = ''
55       When built with libinput (wayland or bare console),
56       users need to be in the input group to use this:
57       <code>users.users.alice.extraGroups = [ "input" ];</code>
58     '';
59     homepage = "https://github.com/zevv/bucklespring";
60     license = licenses.gpl2Only;
61     platforms  = platforms.unix;
62     maintainers = [ maintainers.evils ];
63   };