nixpkgs mirror (for testing) github.com/NixOS/nixpkgs
nix
at devShellTools-shell 104 lines 2.1 kB view raw
1{ 2 lib, 3 python3Packages, 4 fetchFromGitHub, 5 gtk3, 6 bash, 7 networkmanager, 8 bluez, 9 brightnessctl, 10 power-profiles-daemon, 11 gammastep, 12 pulseaudio, 13 desktop-file-utils, 14 wrapGAppsHook3, 15 gobject-introspection, 16 upower, 17 nix-update-script, 18}: 19 20python3Packages.buildPythonApplication rec { 21 pname = "better-control"; 22 version = "6.12.1"; 23 pyproject = false; 24 25 src = fetchFromGitHub { 26 owner = "better-ecosystem"; 27 repo = "better-control"; 28 tag = "v${version}"; 29 hash = "sha256-Dt+se8eOmF8Nzm+/bnYBSIyX0XHSXV9iCPF82qXhzug="; 30 }; 31 32 build-system = with python3Packages; [ 33 setuptools 34 ]; 35 36 nativeBuildInputs = [ 37 desktop-file-utils 38 wrapGAppsHook3 39 gobject-introspection 40 ]; 41 42 buildInputs = [ 43 bash 44 gtk3 45 ]; 46 47 # Check src/utils/dependencies.py 48 runtimeDeps = [ 49 pulseaudio 50 networkmanager 51 bluez 52 brightnessctl 53 power-profiles-daemon 54 gammastep 55 upower 56 ]; 57 58 dependencies = with python3Packages; [ 59 pygobject3 60 dbus-python 61 psutil 62 qrcode 63 requests 64 setproctitle 65 pillow 66 pycairo 67 ]; 68 69 makeFlags = [ "PREFIX=${placeholder "out"}" ]; 70 71 dontWrapGApps = true; 72 73 makeWrapperArgs = [ 74 "\${gappsWrapperArgs[@]}" 75 "--prefix PATH : ${lib.makeBinPath runtimeDeps}" 76 ]; 77 78 postInstall = '' 79 rm $out/bin/betterctl 80 chmod +x $out/share/better-control/better_control.py 81 substituteInPlace $out/bin/* \ 82 --replace-fail "python3 " "" 83 substituteInPlace $out/share/applications/better-control.desktop \ 84 --replace-fail "/usr/bin/" "" 85 ''; 86 87 # Project has no tests 88 doCheck = false; 89 90 postFixup = '' 91 wrapPythonProgramsIn "$out/share/better-control" "$out $pythonPath" 92 ''; 93 94 passthru.updateScript = nix-update-script { }; 95 96 meta = { 97 description = "Simple control panel for linux based on GTK"; 98 homepage = "https://github.com/better-ecosystem/better-control"; 99 license = lib.licenses.gpl3Only; 100 maintainers = with lib.maintainers; [ Rishabh5321 ]; 101 platforms = lib.platforms.linux; 102 mainProgram = "control"; # Users use both "control" and "better-control" to launch 103 }; 104}