63 lines
1.2 KiB
Nix
63 lines
1.2 KiB
Nix
|
{
|
||
|
lib,
|
||
|
pkgs,
|
||
|
config,
|
||
|
...
|
||
|
}:
|
||
|
with lib; let
|
||
|
cfg = config.programs.macchina;
|
||
|
tomlFormat = pkgs.formats.toml {};
|
||
|
in {
|
||
|
options.programs.macchina = {
|
||
|
enable = mkEnableOption "macchina";
|
||
|
package = mkPackageOption pkgs "macchina" {};
|
||
|
|
||
|
config = mkOption {
|
||
|
inherit (tomlFormat) type;
|
||
|
default = {};
|
||
|
|
||
|
example = {
|
||
|
theme = "Mezora";
|
||
|
show = [
|
||
|
"Kernel"
|
||
|
"Machine"
|
||
|
"OperatingSystem"
|
||
|
"Resolution"
|
||
|
"Uptime"
|
||
|
"LocalIP"
|
||
|
"Packages"
|
||
|
"ProcessorLoad"
|
||
|
"Memory"
|
||
|
"Battery"
|
||
|
];
|
||
|
};
|
||
|
|
||
|
description = ''
|
||
|
Macchina configuration.
|
||
|
'';
|
||
|
};
|
||
|
|
||
|
themes = with types;
|
||
|
mkOption {
|
||
|
inherit (tomlFormat) type;
|
||
|
default = {};
|
||
|
};
|
||
|
};
|
||
|
|
||
|
config = mkIf cfg.enable {
|
||
|
home.packages = [cfg.package];
|
||
|
xdg.configFile =
|
||
|
{
|
||
|
"macchina/macchina.toml".source =
|
||
|
tomlFormat.generate "macchina.toml" cfg.config;
|
||
|
}
|
||
|
// (
|
||
|
attrsets.concatMapAttrs (name: value: {
|
||
|
"macchina/themes/${name}.toml".source =
|
||
|
tomlFormat.generate "${name}.toml" value;
|
||
|
})
|
||
|
cfg.themes
|
||
|
);
|
||
|
};
|
||
|
}
|