diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index db28cc6056e3..0ad951e1d16b 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -10140,6 +10140,12 @@ githubId = 307899; name = "Gurkan Gur"; }; + sersorrel = { + email = "ash@sorrel.sh"; + github = "sersorrel"; + githubId = 9433472; + name = "ash"; + }; servalcatty = { email = "servalcat@pm.me"; github = "servalcatty"; diff --git a/pkgs/applications/audio/hushboard/default.nix b/pkgs/applications/audio/hushboard/default.nix new file mode 100644 index 000000000000..e9d88d1f236f --- /dev/null +++ b/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 ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 6bd2c55fc7e3..6e397bd64f70 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -25287,6 +25287,8 @@ with pkgs; go-org = callPackage ../applications/misc/go-org { }; + hushboard = python3.pkgs.callPackage ../applications/audio/hushboard { }; + hydrogen = qt5.callPackage ../applications/audio/hydrogen { }; hydrogen_0 = callPackage ../applications/audio/hydrogen/0.nix { }; # Old stable, has GMKit.