about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--packages.nix1
-rw-r--r--pkgs/pulseaudio-ctl.nix26
2 files changed, 27 insertions, 0 deletions
diff --git a/packages.nix b/packages.nix
index 899d0114bc86..13bdc5abaf23 100644
--- a/packages.nix
+++ b/packages.nix
@@ -66,6 +66,7 @@ in {
     (import pkgs/mq-cli.nix)
     (import pkgs/nixfd.nix)
     (import pkgs/terraform-bin.nix)
+    (import pkgs/pulseaudio-ctl.nix)
   ];
 }
 
diff --git a/pkgs/pulseaudio-ctl.nix b/pkgs/pulseaudio-ctl.nix
new file mode 100644
index 000000000000..9651ea097f7b
--- /dev/null
+++ b/pkgs/pulseaudio-ctl.nix
@@ -0,0 +1,26 @@
+with import <nixpkgs> {};
+
+stdenv.mkDerivation rec {
+  name = "pulseaudio-ctl-${version}";
+  version = "v1.66";
+
+  src = fetchzip {
+    url = "https://github.com/graysky2/pulseaudio-ctl/archive/${version}.tar.gz";
+    sha256 = "19a24w7y19551ar41q848w7r1imqkl9cpff4dpb7yry7qp1yjg0y";
+  };
+
+  buildFlags = ''PREFIX=$(out)'';
+
+  # Force Nix to detect the runtime dependency on 'bc'
+  preInstall = ''
+    sed -i 's|bc)|${bc}/bin/bc)|g' common/pulseaudio-ctl
+  '';
+
+  installFlags = ''PREFIX=$(out)'';
+
+  meta = with stdenv.lib; {
+    description = "Control pulseaudio volume from the shell or mapped to keyboard shortcuts";
+    homepage = "https://github.com/graysky2/pulseaudio-ctl";
+    license = licenses.mit;
+  };
+}