grafana-alloy: don't build the frontend twice
[NixPkgs.git] / nixos / modules / services / desktops / cpupower-gui.nix
blobceed84da840eaf83e2b9e49e733cb1ae3282c1ae
1 { config, lib, pkgs, ... }:
2 let
3   cfg = config.services.cpupower-gui;
4 in {
5   options = {
6     services.cpupower-gui = {
7       enable = lib.mkOption {
8         type = lib.types.bool;
9         default = false;
10         example = true;
11         description = ''
12           Enables dbus/systemd service needed by cpupower-gui.
13           These services are responsible for retrieving and modifying cpu power
14           saving settings.
15         '';
16       };
17     };
18   };
20   config = lib.mkIf cfg.enable {
21     environment.systemPackages = [ pkgs.cpupower-gui ];
22     services.dbus.packages = [ pkgs.cpupower-gui ];
23     systemd.user = {
24       services.cpupower-gui-user = {
25         description = "Apply cpupower-gui config at user login";
26         wantedBy = [ "graphical-session.target" ];
27         serviceConfig = {
28           Type = "oneshot";
29           ExecStart = "${pkgs.cpupower-gui}/bin/cpupower-gui config";
30         };
31       };
32     };
33     systemd.services = {
34       cpupower-gui = {
35         description = "Apply cpupower-gui config at boot";
36         wantedBy = [ "multi-user.target" ];
37         serviceConfig = {
38           Type = "oneshot";
39           ExecStart = "${pkgs.cpupower-gui}/bin/cpupower-gui config";
40         };
41       };
42       cpupower-gui-helper = {
43         description = "cpupower-gui system helper";
44         aliases = [ "dbus-org.rnd2.cpupower_gui.helper.service" ];
45         serviceConfig = {
46           Type = "dbus";
47           BusName = "org.rnd2.cpupower_gui.helper";
48           ExecStart = "${pkgs.cpupower-gui}/lib/cpupower-gui/cpupower-gui-helper";
49         };
50       };
51     };
52   };