1{
2 config,
3 lib,
4 pkgs,
5 ...
6}:
7{
8 options.programs.cpu-energy-meter = {
9 enable = lib.mkEnableOption "CPU Energy Meter";
10 package = lib.mkPackageOption pkgs "cpu-energy-meter" { };
11 };
12
13 config =
14 let
15 cfg = config.programs.cpu-energy-meter;
16 in
17 lib.mkIf cfg.enable {
18 hardware.cpu.x86.msr.enable = true;
19
20 security.wrappers.${cfg.package.meta.mainProgram} = {
21 owner = "nobody";
22 group = config.hardware.cpu.x86.msr.group;
23 source = lib.getExe cfg.package;
24 capabilities = "cap_sys_rawio=ep";
25 };
26 };
27
28 meta.maintainers = with lib.maintainers; [ lorenzleutgeb ];
29}