parent
0acf96eb7f
commit
05e0e96c3a
@ -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"; |
||||
}; |
||||
}; |
||||
}; |
||||
}; |
||||
} |
@ -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 ]; |
||||
}; |
||||
} |
Loading…
Reference in new issue