{ lib, config, userSettings, ... }: { imports = [ ./settings/audio.nix ./settings/desktops.nix ./settings/fonts.nix ./settings/locales.nix ./settings/network.nix ./settings/nvidia.nix ./settings/printing.nix ./settings/loginManager.nix ./settings/style.nix ./settings/default-applications.nix ./settings/logind.nix ./settings/updates.nix ./settings/bootloader.nix ./settings/user.nix ]; nix.settings = { experimental-features = ["nix-command" "flakes"]; trusted-users = ["root" "${userSettings.username}" "@wheel"]; }; sys = { audio.enable = lib.mkDefault true; bootloader.plymouth.enable = lib.mkDefault true; #bootloader.systemd-boot.enable = lib.mkDefault true; desktop = { plasma.enable = if userSettings.plasma == true then lib.mkDefault true else lib.mkDefault false; gnome.enable = if userSettings.gnome == true then lib.mkDefault true else lib.mkDefault false; hyprland.enable = if userSettings.hyprland == true then lib.mkDefault true else lib.mkDefault false; }; fonts.packages = lib.mkDefault true; locales.enable = lib.mkDefault true; network.enable = lib.mkDefault true; bluetooth = { enable = lib.mkDefault true; blueman.enable = lib.mkDefault true; media-player-control.enable = lib.mkDefault false; }; autoUpdate.enable = lib.mkDefault true; autoCleanup.enable = lib.mkDefault false; nvidia = { enable = lib.mkDefault false; mode = lib.mkDefault "none"; optimus = { offload = if config.sys.nvidia.mode == "offload" then true else false; sync = if config.sys.nvidia.mode == "sync" then true else false; reverse = if config.sys.nvidia.mode == "reverse" then true else false; }; disable = if config.sys.nvidia.mode == "disable" then true else false; }; printing.enable = lib.mkDefault true; login = { sddm.enable = lib.mkDefault true; gdm.enable = lib.mkDefault false; }; style.enable = lib.mkDefault true; default-applications.enable = lib.mkDefault true; }; }