{ lib, pkgs, config, ... }: let cfg = config.zpha.programs.htop; settingsFormat = pkgs.formats.keyValue { listsAsDuplicateKeys = true; mkKeyValue = lib.generators.mkKeyValueDefault { } "="; }; in { options.zpha.programs.htop = { enable = lib.mkEnableOption "htop"; settings = lib.mkOption { default = { }; type = settingsFormat.type; }; }; config = lib.mkIf cfg.enable { zpha.programs.htop.settings = { hide_userland_threads = 1; tree_view = 1; show_program_path = 0; show_cpu_frequency = 1; }; users.users.zaphyra.maid = { packages = [ (pkgs.htop.override { sensorsSupport = true; }) ]; file.xdg_config = { "htop/htoprc".source = settingsFormat.generate "htoprc" cfg.settings; }; }; }; }