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:
parent
17e0ff33a0
commit
f8b6dd5e7c
17 changed files with 30 additions and 29 deletions
|
|
@ -13,7 +13,6 @@
|
||||||
];
|
];
|
||||||
|
|
||||||
osbmModules = {
|
osbmModules = {
|
||||||
desktopEnvironment = "none"; # fuckass darwin defaults
|
|
||||||
machineType = "laptop";
|
machineType = "laptop";
|
||||||
programs.neovim.enable = true;
|
programs.neovim.enable = true;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,6 @@
|
||||||
];
|
];
|
||||||
|
|
||||||
osbmModules = {
|
osbmModules = {
|
||||||
desktopEnvironment = "none";
|
|
||||||
machineType = "server";
|
machineType = "server";
|
||||||
users = [ "osbm" ];
|
users = [ "osbm" ];
|
||||||
services = {
|
services = {
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@
|
||||||
];
|
];
|
||||||
|
|
||||||
osbmModules = {
|
osbmModules = {
|
||||||
desktopEnvironment = "gnome";
|
desktopEnvironment.gnome.enable = true;
|
||||||
machineType = "mobile";
|
machineType = "mobile";
|
||||||
hardware.systemd-boot.enable = false; # Mobile devices use different bootloader
|
hardware.systemd-boot.enable = false; # Mobile devices use different bootloader
|
||||||
programs.graphical.enable = false;
|
programs.graphical.enable = false;
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,6 @@
|
||||||
];
|
];
|
||||||
|
|
||||||
osbmModules = {
|
osbmModules = {
|
||||||
desktopEnvironment = "none";
|
|
||||||
fonts.enable = false;
|
fonts.enable = false;
|
||||||
services.tailscale.enable = true;
|
services.tailscale.enable = true;
|
||||||
hardware.systemd-boot.enable = false; # SD card uses extlinux
|
hardware.systemd-boot.enable = false; # SD card uses extlinux
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,6 @@
|
||||||
];
|
];
|
||||||
|
|
||||||
osbmModules = {
|
osbmModules = {
|
||||||
desktopEnvironment = "none";
|
|
||||||
machineType = "server";
|
machineType = "server";
|
||||||
hardware.systemd-boot.enable = false; # Uses extlinux bootloader
|
hardware.systemd-boot.enable = false; # Uses extlinux bootloader
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,6 @@
|
||||||
];
|
];
|
||||||
|
|
||||||
osbmModules = {
|
osbmModules = {
|
||||||
desktopEnvironment = "none";
|
|
||||||
machineType = "server";
|
machineType = "server";
|
||||||
hardware.systemd-boot.enable = false; # Raspberry Pi uses init-script bootloader
|
hardware.systemd-boot.enable = false; # Raspberry Pi uses init-script bootloader
|
||||||
services = {
|
services = {
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@
|
||||||
];
|
];
|
||||||
|
|
||||||
osbmModules = {
|
osbmModules = {
|
||||||
desktopEnvironment = "plasma";
|
desktopEnvironment.plasma.enable = true;
|
||||||
machineType = "laptop";
|
machineType = "laptop";
|
||||||
emulation.aarch64.enable = true;
|
emulation.aarch64.enable = true;
|
||||||
hardware.sound.enable = true;
|
hardware.sound.enable = true;
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,6 @@
|
||||||
../../../modules/nixos
|
../../../modules/nixos
|
||||||
];
|
];
|
||||||
osbmModules = {
|
osbmModules = {
|
||||||
desktopEnvironment = "none";
|
|
||||||
machineType = "server";
|
machineType = "server";
|
||||||
services = {
|
services = {
|
||||||
hydra.enable = true;
|
hydra.enable = true;
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@
|
||||||
];
|
];
|
||||||
|
|
||||||
osbmModules = {
|
osbmModules = {
|
||||||
desktopEnvironment = "plasma";
|
desktopEnvironment.plasma.enable = true;
|
||||||
machineType = "desktop";
|
machineType = "desktop";
|
||||||
programs = {
|
programs = {
|
||||||
adbFastboot.enable = true;
|
adbFastboot.enable = true;
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@
|
||||||
}:
|
}:
|
||||||
{
|
{
|
||||||
config = lib.mkMerge [
|
config = lib.mkMerge [
|
||||||
(lib.mkIf (nixosConfig != null && nixosConfig.osbmModules.desktopEnvironment != "none") {
|
(lib.mkIf (nixosConfig != null && !nixosConfig.osbmModules.desktopEnvironment.none) {
|
||||||
# Set enableAlacritty to true by default when there's a desktop environment
|
# Set enableAlacritty to true by default when there's a desktop environment
|
||||||
programs.alacritty.enable = lib.mkDefault true;
|
programs.alacritty.enable = lib.mkDefault true;
|
||||||
})
|
})
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@
|
||||||
{
|
{
|
||||||
config = lib.mkMerge [
|
config = lib.mkMerge [
|
||||||
# Auto-enable Firefox if system has a desktop environment
|
# Auto-enable Firefox if system has a desktop environment
|
||||||
(lib.mkIf (nixosConfig != null && nixosConfig.osbmModules.desktopEnvironment != "none") {
|
(lib.mkIf (nixosConfig != null && !nixosConfig.osbmModules.desktopEnvironment.none) {
|
||||||
# Set enableFirefox to true by default when there's a desktop environment
|
# Set enableFirefox to true by default when there's a desktop environment
|
||||||
programs.firefox.enable = lib.mkDefault true;
|
programs.firefox.enable = lib.mkDefault true;
|
||||||
})
|
})
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{ lib, nixosConfig, ... }:
|
{ lib, nixosConfig, ... }:
|
||||||
{
|
{
|
||||||
config = lib.mkMerge [
|
config = lib.mkMerge [
|
||||||
(lib.mkIf (nixosConfig != null && nixosConfig.osbmModules.desktopEnvironment != "none") {
|
(lib.mkIf (nixosConfig != null && !nixosConfig.osbmModules.desktopEnvironment.none) {
|
||||||
# Set enableGhostty to true by default when there's a desktop environment
|
# Set enableGhostty to true by default when there's a desktop environment
|
||||||
programs.ghostty.enable = lib.mkDefault true;
|
programs.ghostty.enable = lib.mkDefault true;
|
||||||
})
|
})
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{ lib, nixosConfig, ... }:
|
{ lib, nixosConfig, ... }:
|
||||||
{
|
{
|
||||||
config = lib.mkMerge [
|
config = lib.mkMerge [
|
||||||
(lib.mkIf (nixosConfig != null && nixosConfig.osbmModules.desktopEnvironment != "none") {
|
(lib.mkIf (nixosConfig != null && !nixosConfig.osbmModules.desktopEnvironment.none) {
|
||||||
programs.mpv.enable = lib.mkDefault true;
|
programs.mpv.enable = lib.mkDefault true;
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@
|
||||||
}:
|
}:
|
||||||
{
|
{
|
||||||
config = lib.mkMerge [
|
config = lib.mkMerge [
|
||||||
(lib.mkIf (nixosConfig != null && nixosConfig.osbmModules.desktopEnvironment != "none") {
|
(lib.mkIf (nixosConfig != null && !nixosConfig.osbmModules.desktopEnvironment.none) {
|
||||||
programs.wezterm.enable = lib.mkDefault true;
|
programs.wezterm.enable = lib.mkDefault true;
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,14 +2,21 @@
|
||||||
{
|
{
|
||||||
options.osbmModules = {
|
options.osbmModules = {
|
||||||
# Desktop Environment
|
# Desktop Environment
|
||||||
desktopEnvironment = lib.mkOption {
|
desktopEnvironment = {
|
||||||
type = lib.types.enum [
|
plasma.enable = lib.mkEnableOption "plasma";
|
||||||
"plasma"
|
gnome.enable = lib.mkEnableOption "gnome";
|
||||||
"gnome"
|
niri.enable = lib.mkEnableOption "niri";
|
||||||
"none"
|
# none is true if all above are false, just for easier checks
|
||||||
];
|
none = lib.mkOption {
|
||||||
default = "none";
|
type = lib.types.bool;
|
||||||
description = "Which desktop environment to use";
|
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
|
# Machine Type
|
||||||
|
|
@ -83,7 +90,7 @@
|
||||||
graphical = {
|
graphical = {
|
||||||
enable = lib.mkOption {
|
enable = lib.mkOption {
|
||||||
type = lib.types.bool;
|
type = lib.types.bool;
|
||||||
default = config.osbmModules.desktopEnvironment != "none";
|
default = !config.osbmModules.desktopEnvironment.none;
|
||||||
description = "Enable graphical applications";
|
description = "Enable graphical applications";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
@ -165,7 +172,7 @@
|
||||||
bluetooth = {
|
bluetooth = {
|
||||||
enable = lib.mkOption {
|
enable = lib.mkOption {
|
||||||
type = lib.types.bool;
|
type = lib.types.bool;
|
||||||
default = config.osbmModules.desktopEnvironment != "none";
|
default = !config.osbmModules.desktopEnvironment.none;
|
||||||
description = "Enable Bluetooth support";
|
description = "Enable Bluetooth support";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
@ -393,7 +400,7 @@
|
||||||
fonts = {
|
fonts = {
|
||||||
enable = lib.mkOption {
|
enable = lib.mkOption {
|
||||||
type = lib.types.bool;
|
type = lib.types.bool;
|
||||||
default = config.osbmModules.desktopEnvironment != "none";
|
default = !config.osbmModules.desktopEnvironment.none;
|
||||||
description = "Enable custom fonts";
|
description = "Enable custom fonts";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ in
|
||||||
{
|
{
|
||||||
config = lib.mkMerge [
|
config = lib.mkMerge [
|
||||||
# Plasma Desktop Environment
|
# Plasma Desktop Environment
|
||||||
(lib.mkIf (cfg.desktopEnvironment == "plasma") {
|
(lib.mkIf cfg.desktopEnvironment.plasma.enable {
|
||||||
services = {
|
services = {
|
||||||
xserver.enable = true;
|
xserver.enable = true;
|
||||||
displayManager.sddm.enable = true;
|
displayManager.sddm.enable = true;
|
||||||
|
|
@ -40,7 +40,7 @@ in
|
||||||
})
|
})
|
||||||
|
|
||||||
# GNOME Desktop Environment
|
# GNOME Desktop Environment
|
||||||
(lib.mkIf (cfg.desktopEnvironment == "gnome") {
|
(lib.mkIf cfg.desktopEnvironment.gnome.enable {
|
||||||
|
|
||||||
# Enable GNOME Desktop Environment
|
# Enable GNOME Desktop Environment
|
||||||
services = {
|
services = {
|
||||||
|
|
@ -85,7 +85,7 @@ in
|
||||||
})
|
})
|
||||||
|
|
||||||
# Common settings for any desktop environment
|
# Common settings for any desktop environment
|
||||||
(lib.mkIf (cfg.desktopEnvironment != "none") {
|
(lib.mkIf (!cfg.desktopEnvironment.none) {
|
||||||
# Enable X11 keymap
|
# Enable X11 keymap
|
||||||
services.xserver.xkb = {
|
services.xserver.xkb = {
|
||||||
layout = lib.mkDefault "us";
|
layout = lib.mkDefault "us";
|
||||||
|
|
|
||||||
|
|
@ -27,7 +27,7 @@
|
||||||
|
|
||||||
inputMethod = {
|
inputMethod = {
|
||||||
type = "fcitx5";
|
type = "fcitx5";
|
||||||
enable = config.osbmModules.desktopEnvironment != "none";
|
enable = !config.osbmModules.desktopEnvironment.none;
|
||||||
fcitx5.addons = with pkgs; [
|
fcitx5.addons = with pkgs; [
|
||||||
fcitx5-mozc
|
fcitx5-mozc
|
||||||
fcitx5-gtk
|
fcitx5-gtk
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue