at master 642 B view raw
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}