pulsemeeter: init at 1.2.14 (#415035)

This commit is contained in:
Aleksana
2025-06-11 18:29:27 +08:00
committed by GitHub
2 changed files with 94 additions and 0 deletions
+61
View File
@@ -0,0 +1,61 @@
{
lib,
python3Packages,
fetchFromGitHub,
libpulseaudio,
libappindicator,
gobject-introspection,
wrapGAppsHook3,
callPackage,
bash,
}:
python3Packages.buildPythonApplication rec {
pname = "pulsemeeter";
version = "1.2.14";
src = fetchFromGitHub {
owner = "theRealCarneiro";
repo = "pulsemeeter";
tag = "v${version}";
hash = "sha256-QTXVE5WvunsjLS8I1rgX34BW1mT1UY+cRxURwXiQp5A=";
};
build-system = with python3Packages; [
setuptools
];
dependencies = with python3Packages; [
pulsectl
pygobject3
];
nativeBuildInputs = [
wrapGAppsHook3
gobject-introspection
];
buildInputs = [
libappindicator
libpulseaudio
bash
];
makeWrapperArgs = [
"\${gappsWrapperArgs[@]}"
];
dontWrapGApps = true;
passthru.tests.version = callPackage ./version-test.nix { inherit version; };
meta = {
description = "Frontend of pulseaudio's routing capabilities, mimicking voicemeeter's workflow";
license = lib.licenses.mit;
homepage = "https://github.com/theRealCarneiro/pulsemeeter";
maintainers = with lib.maintainers; [
therobot2105
];
mainProgram = "pulsemeeter";
platforms = lib.platforms.linux;
};
}
@@ -0,0 +1,33 @@
{
pkgs,
version,
}:
pkgs.testers.runNixOSTest {
name = "pulsemeeter-version";
nodes.machine =
{ config, pkgs, ... }:
{
services.pulseaudio.enable = true;
services.pulseaudio.systemWide = true;
users.users.alice = {
isNormalUser = true;
password = "foo";
extraGroups = [
"wheel"
"pulse-access"
];
packages = with pkgs; [
pulsemeeter
];
};
};
testScript = ''
machine.wait_for_unit("default.target")
machine.succeed("su -- root -c 'systemctl start pulseaudio'")
machine.succeed("su -- alice -c 'mkdir -p /home/alice/.config/pulsemeeter'")
version = machine.execute("su -- alice -c 'pulsemeeter -s | head -n 4 | tail -n 1'")
assert version == (0, 'Pulsemeeter version: \x1b[1m${version}\x1b[0m\n')
'';
}