Merge pull request #100120 from unode/cpupower-gui

linuxPackages.cpupower-gui: init at 1.0.0
This commit is contained in:
Artturi 2021-09-21 03:37:10 +03:00 committed by GitHub
commit 3b2440afd0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 154 additions and 0 deletions

View file

@ -343,6 +343,7 @@
./services/desktops/accountsservice.nix
./services/desktops/bamf.nix
./services/desktops/blueman.nix
./services/desktops/cpupower-gui.nix
./services/desktops/dleyna-renderer.nix
./services/desktops/dleyna-server.nix
./services/desktops/pantheon/files.nix

View file

@ -0,0 +1,56 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.services.cpupower-gui;
in {
options = {
services.cpupower-gui = {
enable = mkOption {
type = lib.types.bool;
default = false;
example = true;
description = ''
Enables dbus/systemd service needed by cpupower-gui.
These services are responsible for retrieving and modifying cpu power
saving settings.
'';
};
};
};
config = mkIf cfg.enable {
environment.systemPackages = [ pkgs.cpupower-gui ];
services.dbus.packages = [ pkgs.cpupower-gui ];
systemd.user = {
services.cpupower-gui-user = {
description = "Apply cpupower-gui config at user login";
wantedBy = [ "graphical-session.target" ];
serviceConfig = {
Type = "oneshot";
ExecStart = "${pkgs.cpupower-gui}/bin/cpupower-gui config";
};
};
};
systemd.services = {
cpupower-gui = {
description = "Apply cpupower-gui config at boot";
wantedBy = [ "multi-user.target" ];
serviceConfig = {
Type = "oneshot";
ExecStart = "${pkgs.cpupower-gui}/bin/cpupower-gui config";
};
};
cpupower-gui-helper = {
description = "cpupower-gui system helper";
aliases = [ "dbus-org.rnd2.cpupower_gui.helper.service" ];
serviceConfig = {
Type = "dbus";
BusName = "org.rnd2.cpupower_gui.helper";
ExecStart = "${pkgs.cpupower-gui}/lib/cpupower-gui/cpupower-gui-helper";
};
};
};
};
}

View file

@ -0,0 +1,93 @@
{ lib
, stdenv
, fetchFromGitHub
, buildPythonApplication
, appstream-glib
, dbus-python
, desktop-file-utils
, gettext
, glib
, gobject-introspection
, gtk3
, hicolor-icon-theme
, libappindicator
, libhandy
, meson
, ninja
, pkg-config
, pygobject3
, pyxdg
, systemd
, wrapGAppsHook
}:
buildPythonApplication rec {
pname = "cpupower-gui";
version = "1.0.0";
# This packages doesn't have a setup.py
format = "other";
src = fetchFromGitHub {
owner = "vagnum08";
repo = pname;
rev = "v${version}";
sha256 = "05lvpi3wgyi741sd8lgcslj8i7yi3wz7jwl7ca3y539y50hwrdas";
};
nativeBuildInputs = [
appstream-glib
desktop-file-utils # needed for update-desktop-database
gettext
glib # needed for glib-compile-schemas
gobject-introspection # need for gtk namespace to be available
hicolor-icon-theme # needed for postinstall script
meson
ninja
pkg-config
wrapGAppsHook
# Python packages
dbus-python
libappindicator
pygobject3
pyxdg
];
buildInputs = [
glib
gtk3
libhandy
];
propagatedBuildInputs = [
dbus-python
libappindicator
pygobject3
pyxdg
];
mesonFlags = [
"-Dsystemddir=${placeholder "out"}/lib/systemd"
];
preConfigure = ''
patchShebangs build-aux/meson/postinstall.py
'';
strictDeps = false;
dontWrapGApps = true;
makeWrapperArgs = [ "\${gappsWrapperArgs[@]}" ];
postFixup = ''
wrapPythonProgramsIn $out/lib "$out $propagatedBuildInputs"
'';
meta = with lib; {
description = "Change the frequency limits of your cpu and its governor";
homepage = "https://github.com/vagnum08/cpupower-gui/";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ unode ];
};
}

View file

@ -21138,6 +21138,10 @@ with pkgs;
cpufrequtils = callPackage ../os-specific/linux/cpufrequtils { };
cpupower-gui = python3Packages.callPackage ../os-specific/linux/cpupower-gui {
inherit (pkgs) meson;
};
cpuset = callPackage ../os-specific/linux/cpuset {
pythonPackages = python3Packages;
};