From 81fc14bc5efcf32e306cf78b5d2a0e2f92af1c54 Mon Sep 17 00:00:00 2001 From: John Titor <50095635+JohnRTitor@users.noreply.github.com> Date: Wed, 28 May 2025 16:10:19 +0530 Subject: [PATCH] nixos/lact: init On AMD GPU, you should enable overdrive mode by using `hardware.amdgpu.overdrive.enable = true;` in your configuration. Co-authored-by: PopeRigby Signed-off-by: John Titor <50095635+JohnRTitor@users.noreply.github.com> --- .../manual/release-notes/rl-2511.section.md | 3 ++ nixos/modules/module-list.nix | 1 + nixos/modules/services/hardware/lact.nix | 39 +++++++++++++++++++ 3 files changed, 43 insertions(+) create mode 100644 nixos/modules/services/hardware/lact.nix diff --git a/nixos/doc/manual/release-notes/rl-2511.section.md b/nixos/doc/manual/release-notes/rl-2511.section.md index 8ca8f4bd3f46..8ce0ca415f58 100644 --- a/nixos/doc/manual/release-notes/rl-2511.section.md +++ b/nixos/doc/manual/release-notes/rl-2511.section.md @@ -14,6 +14,9 @@ - [FileBrowser](https://filebrowser.org/), a web application for managing and sharing files. Available as [services.filebrowser](#opt-services.filebrowser.enable). +- [LACT](https://github.com/ilya-zlobintsev/LACT), a GPU monitoring and configuration tool, can now be enabled through [services.lact.enable](#opt-services.lact.enable). + Note that for LACT to work properly on AMD GPU systems, you need to enable [hardware.amdgpu.overdrive.enable](#opt-hardware.amdgpu.overdrive.enable). + - [SuiteNumérique Docs](https://github.com/suitenumerique/docs), a collaborative note taking, wiki and documentation web platform and alternative to Notion or Outline. Available as [services.lasuite-docs](#opt-services.lasuite-docs.enable). ## Backward Incompatibilities {#sec-release-25.11-incompatibilities} diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index 27a2c3010c0b..b618a08fc379 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -646,6 +646,7 @@ ./services/hardware/kanata.nix ./services/hardware/keyd.nix ./services/hardware/kmonad.nix + ./services/hardware/lact.nix ./services/hardware/lcd.nix ./services/hardware/libinput.nix ./services/hardware/lirc.nix diff --git a/nixos/modules/services/hardware/lact.nix b/nixos/modules/services/hardware/lact.nix new file mode 100644 index 000000000000..e16712338ab8 --- /dev/null +++ b/nixos/modules/services/hardware/lact.nix @@ -0,0 +1,39 @@ +{ + config, + lib, + pkgs, + ... +}: + +let + cfg = config.services.lact; +in +{ + meta.maintainers = [ lib.maintainers.johnrtitor ]; + + options.services.lact = { + enable = lib.mkEnableOption null // { + description = '' + Whether to enable LACT, a tool for monitoring, configuring and overclocking GPUs. + + ::: {.note} + If you are on an AMD GPU, it is recommended to enable overdrive mode by using + `hardware.amdgpu.overdrive.enable = true;` in your configuration. + See [LACT wiki](https://github.com/ilya-zlobintsev/LACT/wiki/Overclocking-(AMD)) for more information. + ::: + ''; + }; + + package = lib.mkPackageOption pkgs "lact" { }; + }; + + config = lib.mkIf cfg.enable { + environment.systemPackages = [ cfg.package ]; + systemd.packages = [ cfg.package ]; + + systemd.services.lactd = { + description = "LACT GPU Control Daemon"; + wantedBy = [ "multi-user.target" ]; + }; + }; +}