2.home-manager/modules/programs/macchina/settings.nix
2026-03-27 10:42:17 -05:00

117 lines
2.9 KiB
Nix

{ lib }:
let
inherit (lib)
mkOption
types
literalExpression
;
in
{
settings = {
interface = mkOption {
type = types.nullOr types.str;
default = null;
example = "wlan0";
description = "Network interface to use for the LocalIP readout. Omitted when null.";
};
long_uptime = mkOption {
type = types.nullOr types.bool;
default = null;
description = "Show lengthened uptime output.";
};
long_shell = mkOption {
type = types.nullOr types.bool;
default = null;
description = "Show lengthened shell output.";
};
long_kernel = mkOption {
type = types.nullOr types.bool;
default = null;
description = "Show lengthened kernel output.";
};
current_shell = mkOption {
type = types.nullOr types.bool;
default = null;
description = "Show the current shell rather than the user's default shell.";
};
physical_cores = mkOption {
type = types.nullOr types.bool;
default = null;
description = "Show physical CPU core count rather than logical core count.";
};
disks = mkOption {
type = types.nullOr (types.listOf types.str);
default = null;
example = [
"/"
"/home/user"
];
description = "Disks to show disk usage for.";
};
disk_space_percentage = mkOption {
type = types.nullOr types.bool;
default = null;
description = "Show percentage next to disk space information.";
};
memory_percentage = mkOption {
type = types.nullOr types.bool;
default = null;
description = "Show percentage next to memory information.";
};
theme = mkOption {
type = types.nullOr types.str;
default = null;
example = "Hydrogen";
description = ''
Name of the theme to use, without the .toml extension. Case-sensitive.
Must correspond to a file in the macchina themes directory, or be defined
in {option}`programs.macchina.themes`.
Omitted when null.
'';
};
show = mkOption {
type = types.nullOr (
types.listOf (
types.enum [
"Host"
"Machine"
"Kernel"
"Distribution"
"OperatingSystem"
"DesktopEnvironment"
"WindowManager"
"Resolution"
"Backlight"
"Packages"
"LocalIP"
"Terminal"
"Shell"
"Uptime"
"Processor"
"ProcessorLoad"
"Memory"
"Battery"
"GPU"
"DiskSpace"
]
)
);
default = null;
example = literalExpression ''[ "Battery" "Memory" "Processor" "Shell" ]'';
description = ''
Display only the specified readouts. When null, all readouts are shown.
Values are case-sensitive.
'';
};
};
}