52 lines
1.3 KiB
Nix
52 lines
1.3 KiB
Nix
{
|
|
config,
|
|
lib,
|
|
...
|
|
}: let
|
|
inherit (lib) types;
|
|
inherit (lib.options) mkOption;
|
|
|
|
env = config.modules.usrEnv;
|
|
in {
|
|
options.meta = {
|
|
hostname = mkOption {
|
|
type = types.str;
|
|
default = config.networking.hostName;
|
|
readOnly = true;
|
|
description = ''
|
|
The canonical hostname of the machine.
|
|
|
|
Is usually used to identify - i.e name machines internally
|
|
or on the same Headscale network. This option must be declared
|
|
in `hosts.nix` alongside host system.
|
|
'';
|
|
};
|
|
|
|
system = mkOption {
|
|
type = types.str;
|
|
default = config.system.build.toplevel.system;
|
|
readOnly = true;
|
|
description = ''
|
|
The architecture of the machine.
|
|
'';
|
|
};
|
|
|
|
isWayland = mkOption {
|
|
type = types.bool;
|
|
# TODO: there must be a better way to do this
|
|
default = with env.desktops; (sway.enable || hyprland.enable);
|
|
# readOnly = true; # TODO
|
|
description = ''
|
|
Whether to enable Wayland exclusive modules, this contains a wariety
|
|
of packages, modules, overlays, XDG portals and so on.
|
|
|
|
Generally includes:
|
|
- Wayland nixpkgs overlay
|
|
- Wayland only services
|
|
- Wayland only programs
|
|
- Wayland compatible versions of packages as opposed
|
|
to the defaults
|
|
'';
|
|
};
|
|
};
|
|
}
|