turn string option into the many sub options

This enables me to enable multiple desktop environments at the same
time.
This commit is contained in:
Osman Faruk Bayram 2025-11-23 11:49:34 +03:00
parent 17e0ff33a0
commit f8b6dd5e7c
17 changed files with 30 additions and 29 deletions

View file

@ -2,14 +2,21 @@
{
options.osbmModules = {
# Desktop Environment
desktopEnvironment = lib.mkOption {
type = lib.types.enum [
"plasma"
"gnome"
"none"
];
default = "none";
description = "Which desktop environment to use";
desktopEnvironment = {
plasma.enable = lib.mkEnableOption "plasma";
gnome.enable = lib.mkEnableOption "gnome";
niri.enable = lib.mkEnableOption "niri";
# none is true if all above are false, just for easier checks
none = lib.mkOption {
type = lib.types.bool;
default =
!(
config.osbmModules.desktopEnvironment.plasma.enable
|| config.osbmModules.desktopEnvironment.gnome.enable
|| config.osbmModules.desktopEnvironment.niri.enable
);
description = "True if no desktop environment is enabled";
};
};
# Machine Type
@ -83,7 +90,7 @@
graphical = {
enable = lib.mkOption {
type = lib.types.bool;
default = config.osbmModules.desktopEnvironment != "none";
default = !config.osbmModules.desktopEnvironment.none;
description = "Enable graphical applications";
};
};
@ -165,7 +172,7 @@
bluetooth = {
enable = lib.mkOption {
type = lib.types.bool;
default = config.osbmModules.desktopEnvironment != "none";
default = !config.osbmModules.desktopEnvironment.none;
description = "Enable Bluetooth support";
};
};
@ -393,7 +400,7 @@
fonts = {
enable = lib.mkOption {
type = lib.types.bool;
default = config.osbmModules.desktopEnvironment != "none";
default = !config.osbmModules.desktopEnvironment.none;
description = "Enable custom fonts";
};
};