Skip to content

Commit

Permalink
nix: add overlay; use best practices (#718)
Browse files Browse the repository at this point in the history
* feat(nix): add overlay

* refactor(nix): use best practices

* chore: update flake inputs

* refactor(nix): remove unused replace
  • Loading branch information
isabelroses committed Jun 3, 2024
1 parent 3f6d7a3 commit 7313ec9
Show file tree
Hide file tree
Showing 4 changed files with 21 additions and 15 deletions.
6 changes: 3 additions & 3 deletions flake.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 4 additions & 0 deletions flake.nix
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,10 @@
default = pkgsForEach.${system}.callPackage ./nix/shell.nix {};
});

overlays.default = final: _: {
auto-cpufreq = final.callPackage ./nix/default.nix {};
};

nixosModules.default = import ./nix/module.nix inputs;
};
}
17 changes: 8 additions & 9 deletions nix/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -57,11 +57,11 @@ python3Packages.buildPythonPackage {
];

postPatch = ''
substituteInPlace auto_cpufreq/core.py --replace '/opt/auto-cpufreq/override.pickle' /var/run/override.pickle
substituteInPlace scripts/org.auto-cpufreq.pkexec.policy --replace "/opt/auto-cpufreq/venv/bin/auto-cpufreq" $out/bin/auto-cpufreq
substituteInPlace auto_cpufreq/core.py --replace-fail '/opt/auto-cpufreq/override.pickle' /var/run/override.pickle
substituteInPlace scripts/org.auto-cpufreq.pkexec.policy --replace-fail "/opt/auto-cpufreq/venv/bin/auto-cpufreq" $out/bin/auto-cpufreq
substituteInPlace auto_cpufreq/gui/app.py auto_cpufreq/gui/objects.py --replace "/usr/local/share/auto-cpufreq/images/icon.png" $out/share/pixmaps/auto-cpufreq.png
substituteInPlace auto_cpufreq/gui/app.py --replace "/usr/local/share/auto-cpufreq/scripts/style.css" $out/share/auto-cpufreq/scripts/style.css
substituteInPlace auto_cpufreq/gui/app.py auto_cpufreq/gui/objects.py --replace-fail "/usr/local/share/auto-cpufreq/images/icon.png" $out/share/pixmaps/auto-cpufreq.png
substituteInPlace auto_cpufreq/gui/app.py --replace-fail "/usr/local/share/auto-cpufreq/scripts/style.css" $out/share/auto-cpufreq/scripts/style.css
'';

postInstall = ''
Expand All @@ -75,7 +75,6 @@ python3Packages.buildPythonPackage {
# systemd service
mkdir -p $out/lib/systemd/system
cp scripts/auto-cpufreq.service $out/lib/systemd/system
substituteInPlace $out/lib/systemd/system/auto-cpufreq.service --replace "/usr/local" $out
# desktop icon
mkdir -p $out/share/applications
Expand All @@ -88,12 +87,12 @@ python3Packages.buildPythonPackage {
cp scripts/org.auto-cpufreq.pkexec.policy $out/share/polkit-1/actions
'';

meta = with lib; {
meta = {
homepage = "https://github.com/AdnanHodzic/auto-cpufreq";
description = "Automatic CPU speed & power optimizer for Linux";
license = licenses.lgpl3Plus;
platforms = platforms.linux;
maintainers = [maintainers.Technical27];
license = lib.licenses.lgpl3Plus;
platforms = lib.platforms.linux;
maintainers = with lib.maintainers; [Technical27];
mainProgram = "auto-cpufreq";
};
}
9 changes: 6 additions & 3 deletions nix/module.nix
Original file line number Diff line number Diff line change
Expand Up @@ -2,23 +2,26 @@ inputs: {
config,
lib,
pkgs,
options,
...
}:
with lib; let
let
cfg = config.programs.auto-cpufreq;
inherit (pkgs.stdenv.hostPlatform) system;
defaultPackage = inputs.self.packages.${system}.default;
cfgFilename = "auto-cpufreq.conf";
cfgFile = format.generate cfgFilename cfg.settings;

inherit (lib) types;
inherit (lib.modules) mkIf;
inherit (lib.options) mkOption mkEnableOption;

format = pkgs.formats.ini {};
in {
options.programs.auto-cpufreq = {
enable = mkEnableOption "Automatic CPU speed & power optimizer for Linux";

settings = mkOption {
description = mdDoc ''
description = ''
Configuration for `auto-cpufreq`.
See its [example configuration file] for supported settings.
Expand Down

0 comments on commit 7313ec9

Please sign in to comment.