htop: use types.coercedTo
This commit is contained in:
parent
be432c8654
commit
1d24e96074
|
@ -87,7 +87,10 @@ let
|
|||
"CPU(4)" = 1;
|
||||
};
|
||||
|
||||
singleMeterType = types.either (types.enum (attrNames meters)) (types.submodule {
|
||||
singleMeterType = types.coercedTo
|
||||
(types.enum (attrNames meters))
|
||||
(m: { kind = m; mode = meters.${m}; })
|
||||
(types.submodule {
|
||||
options = {
|
||||
kind = mkOption {
|
||||
type = types.enum (attrNames meters);
|
||||
|
@ -103,13 +106,6 @@ let
|
|||
};
|
||||
});
|
||||
|
||||
# Converts the meter to an attribute set if it isn't already
|
||||
meterStandard = m: if builtins.isString m then {
|
||||
kind = m;
|
||||
mode = meters.${m};
|
||||
} else m;
|
||||
|
||||
|
||||
meterType = types.submodule {
|
||||
options = {
|
||||
left = mkOption {
|
||||
|
@ -295,10 +291,10 @@ in
|
|||
home.packages = [ pkgs.htop ];
|
||||
|
||||
home.file.".config/htop/htoprc".text = let
|
||||
leftMeters = map (m: (meterStandard m).kind) cfg.meters.left;
|
||||
leftModes = map (m: (meterStandard m).mode) cfg.meters.left;
|
||||
rightMeters = map (m: (meterStandard m).kind) cfg.meters.right;
|
||||
rightModes = map (m: (meterStandard m).mode) cfg.meters.right;
|
||||
leftMeters = map (m: m.kind) cfg.meters.left;
|
||||
leftModes = map (m: m.mode) cfg.meters.left;
|
||||
rightMeters = map (m: m.kind) cfg.meters.right;
|
||||
rightModes = map (m: m.mode) cfg.meters.right;
|
||||
in ''
|
||||
# This file is regenerated by home-manager
|
||||
# when options are changed in the config
|
||||
|
|
Loading…
Reference in a new issue