htop: fix htoprc when fields is not explicitly set
When the 'fields' setting is not set in htoprc, the htop program won't read any of the settings. Provide a default value for fields in case it's not explicitly set by the user.
This commit is contained in:
parent
447f80f676
commit
e60dca7bb3
|
@ -145,9 +145,27 @@ in {
|
|||
|
||||
home.packages = [ pkgs.htop ];
|
||||
|
||||
xdg.configFile."htop/htoprc" = mkIf (cfg.settings != { }) {
|
||||
text = concatStringsSep "\n" (mapAttrsToList formatOption cfg.settings)
|
||||
+ "\n";
|
||||
xdg.configFile."htop/htoprc" = let
|
||||
defaults = {
|
||||
fields = with fields; [
|
||||
PID
|
||||
USER
|
||||
PRIORITY
|
||||
NICE
|
||||
M_SIZE
|
||||
M_RESIDENT
|
||||
M_SHARE
|
||||
STATE
|
||||
PERCENT_CPU
|
||||
PERCENT_MEM
|
||||
TIME
|
||||
COMM
|
||||
];
|
||||
};
|
||||
|
||||
in mkIf (cfg.settings != { }) {
|
||||
text = concatStringsSep "\n"
|
||||
(mapAttrsToList formatOption (defaults // cfg.settings)) + "\n";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
{
|
||||
htop-empty-settings = ./empty-settings.nix;
|
||||
htop-example-settings = ./example-settings.nix;
|
||||
settings-without-fields = ./settings-without-fields.nix;
|
||||
}
|
||||
|
|
25
tests/modules/programs/htop/settings-without-fields.nix
Normal file
25
tests/modules/programs/htop/settings-without-fields.nix
Normal file
|
@ -0,0 +1,25 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
{
|
||||
config = {
|
||||
programs.htop.enable = true;
|
||||
programs.htop.settings = { color_scheme = 6; };
|
||||
|
||||
# Test that the 'fields' key is written in addition to the customized
|
||||
# settings or htop won't read the options.
|
||||
nmt.script = ''
|
||||
htoprc=home-files/.config/htop/htoprc
|
||||
assertFileExists $htoprc
|
||||
assertFileContent $htoprc \
|
||||
${
|
||||
builtins.toFile "htoprc-expected" ''
|
||||
color_scheme=6
|
||||
fields=0 48 17 18 38 39 40 2 46 47 49 1
|
||||
''
|
||||
}
|
||||
'';
|
||||
};
|
||||
|
||||
}
|
Loading…
Reference in a new issue