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 <poperigby@mailbox.org>
Signed-off-by: John Titor <50095635+JohnRTitor@users.noreply.github.com>

Changed files
+43
nixos
doc
manual
release-notes
modules
services
hardware
+3
nixos/doc/manual/release-notes/rl-2511.section.md
···
- [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}
+1
nixos/modules/module-list.nix
···
./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
+39
nixos/modules/services/hardware/lact.nix
···
+
{
+
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" ];
+
};
+
};
+
}