about summary refs log tree commit diff
path: root/nixpkgs/pkgs/applications/audio/hushboard/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/applications/audio/hushboard/default.nix')
-rw-r--r--nixpkgs/pkgs/applications/audio/hushboard/default.nix73
1 files changed, 73 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/applications/audio/hushboard/default.nix b/nixpkgs/pkgs/applications/audio/hushboard/default.nix
new file mode 100644
index 000000000000..e9d88d1f236f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/hushboard/default.nix
@@ -0,0 +1,73 @@
+{ lib
+, buildPythonApplication
+, fetchFromGitHub
+, gobject-introspection
+, gtk3
+, libappindicator
+, libpulseaudio
+, librsvg
+, pycairo
+, pygobject3
+, six
+, wrapGAppsHook
+, xlib
+}:
+
+buildPythonApplication {
+  pname = "hushboard";
+  version = "unstable-2021-03-17";
+
+  src = fetchFromGitHub {
+    owner = "stuartlangridge";
+    repo = "hushboard";
+    rev = "c16611c539be111891116a737b02c5fb359ad1fc";
+    sha256 = "06jav6j0bsxhawrq31cnls8zpf80fpwk0cak5s82js6wl4vw2582";
+  };
+
+  nativeBuildInputs = [
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    gobject-introspection
+    gtk3
+    libappindicator
+    libpulseaudio
+  ];
+
+  propagatedBuildInputs = [
+    pycairo
+    pygobject3
+    six
+    xlib
+  ];
+
+  postPatch = ''
+    substituteInPlace hushboard/_pulsectl.py \
+      --replace "ctypes.util.find_library('libpulse') or 'libpulse.so.0'" "'${libpulseaudio}/lib/libpulse.so.0'"
+    substituteInPlace snap/gui/hushboard.desktop \
+      --replace "\''${SNAP}/hushboard/icons/hushboard.svg" "hushboard"
+  '';
+
+  postInstall = ''
+    # Fix tray icon, see e.g. https://github.com/NixOS/nixpkgs/pull/43421
+    wrapProgram $out/bin/hushboard \
+      --set GDK_PIXBUF_MODULE_FILE "${librsvg.out}/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache"
+
+    mkdir -p $out/share/applications $out/share/icons/hicolor/{scalable,512x512}/apps
+    cp snap/gui/hushboard.desktop $out/share/applications
+    cp hushboard/icons/hushboard.svg $out/share/icons/hicolor/scalable/apps
+    cp hushboard-512.png $out/share/icons/hicolor/512x512/apps/hushboard.png
+  '';
+
+  # There are no tests
+  doCheck = false;
+
+  meta = with lib; {
+    homepage = "https://kryogenix.org/code/hushboard/";
+    license = licenses.mit;
+    description = "Mute your microphone while typing";
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ sersorrel ];
+  };
+}