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 = {
|
||||
desktopEnvironment = "none"; # fuckass darwin defaults
|
||||
machineType = "laptop";
|
||||
programs.neovim.enable = true;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -5,7 +5,6 @@
|
|||
];
|
||||
|
||||
osbmModules = {
|
||||
desktopEnvironment = "none";
|
||||
machineType = "server";
|
||||
users = [ "osbm" ];
|
||||
services = {
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@
|
|||
];
|
||||
|
||||
osbmModules = {
|
||||
desktopEnvironment = "gnome";
|
||||
desktopEnvironment.gnome.enable = true;
|
||||
machineType = "mobile";
|
||||
hardware.systemd-boot.enable = false; # Mobile devices use different bootloader
|
||||
programs.graphical.enable = false;
|
||||
|
|
|
|||
|
|
@ -11,7 +11,6 @@
|
|||
];
|
||||
|
||||
osbmModules = {
|
||||
desktopEnvironment = "none";
|
||||
fonts.enable = false;
|
||||
services.tailscale.enable = true;
|
||||
hardware.systemd-boot.enable = false; # SD card uses extlinux
|
||||
|
|
|
|||
|
|
@ -5,7 +5,6 @@
|
|||
];
|
||||
|
||||
osbmModules = {
|
||||
desktopEnvironment = "none";
|
||||
machineType = "server";
|
||||
hardware.systemd-boot.enable = false; # Uses extlinux bootloader
|
||||
};
|
||||
|
|
|
|||
|
|
@ -12,7 +12,6 @@
|
|||
];
|
||||
|
||||
osbmModules = {
|
||||
desktopEnvironment = "none";
|
||||
machineType = "server";
|
||||
hardware.systemd-boot.enable = false; # Raspberry Pi uses init-script bootloader
|
||||
services = {
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
];
|
||||
|
||||
osbmModules = {
|
||||
desktopEnvironment = "plasma";
|
||||
desktopEnvironment.plasma.enable = true;
|
||||
machineType = "laptop";
|
||||
emulation.aarch64.enable = true;
|
||||
hardware.sound.enable = true;
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@
|
|||
../../../modules/nixos
|
||||
];
|
||||
osbmModules = {
|
||||
desktopEnvironment = "none";
|
||||
machineType = "server";
|
||||
services = {
|
||||
hydra.enable = true;
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
];
|
||||
|
||||
osbmModules = {
|
||||
desktopEnvironment = "plasma";
|
||||
desktopEnvironment.plasma.enable = true;
|
||||
machineType = "desktop";
|
||||
programs = {
|
||||
adbFastboot.enable = true;
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
}:
|
||||
{
|
||||
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
|
||||
programs.alacritty.enable = lib.mkDefault true;
|
||||
})
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
{
|
||||
config = lib.mkMerge [
|
||||
# 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
|
||||
programs.firefox.enable = lib.mkDefault true;
|
||||
})
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{ lib, nixosConfig, ... }:
|
||||
{
|
||||
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
|
||||
programs.ghostty.enable = lib.mkDefault true;
|
||||
})
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{ lib, nixosConfig, ... }:
|
||||
{
|
||||
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;
|
||||
})
|
||||
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
}:
|
||||
{
|
||||
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;
|
||||
})
|
||||
|
||||
|
|
|
|||
|
|
@ -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";
|
||||
};
|
||||
};
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ in
|
|||
{
|
||||
config = lib.mkMerge [
|
||||
# Plasma Desktop Environment
|
||||
(lib.mkIf (cfg.desktopEnvironment == "plasma") {
|
||||
(lib.mkIf cfg.desktopEnvironment.plasma.enable {
|
||||
services = {
|
||||
xserver.enable = true;
|
||||
displayManager.sddm.enable = true;
|
||||
|
|
@ -40,7 +40,7 @@ in
|
|||
})
|
||||
|
||||
# GNOME Desktop Environment
|
||||
(lib.mkIf (cfg.desktopEnvironment == "gnome") {
|
||||
(lib.mkIf cfg.desktopEnvironment.gnome.enable {
|
||||
|
||||
# Enable GNOME Desktop Environment
|
||||
services = {
|
||||
|
|
@ -85,7 +85,7 @@ in
|
|||
})
|
||||
|
||||
# Common settings for any desktop environment
|
||||
(lib.mkIf (cfg.desktopEnvironment != "none") {
|
||||
(lib.mkIf (!cfg.desktopEnvironment.none) {
|
||||
# Enable X11 keymap
|
||||
services.xserver.xkb = {
|
||||
layout = lib.mkDefault "us";
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@
|
|||
|
||||
inputMethod = {
|
||||
type = "fcitx5";
|
||||
enable = config.osbmModules.desktopEnvironment != "none";
|
||||
enable = !config.osbmModules.desktopEnvironment.none;
|
||||
fcitx5.addons = with pkgs; [
|
||||
fcitx5-mozc
|
||||
fcitx5-gtk
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue