diff --git a/options/custom/desktops/default.nix b/options/custom/desktops/default.nix index c929931..b2e188f 100644 --- a/options/custom/desktops/default.nix +++ b/options/custom/desktops/default.nix @@ -8,7 +8,13 @@ with lib; let in { options.custom.desktops = { enable = mkOption {default = config.custom.minimal;}; - desktop = mkOption {default = "niri";}; + + desktop = mkOption { + default = + if config.custom.full + then "niri" + else "gnome"; + }; }; config = mkIf cfg.enable { diff --git a/options/custom/desktops/gnome/default.nix b/options/custom/desktops/gnome/default.nix index 5d7ab45..5483f02 100644 --- a/options/custom/desktops/gnome/default.nix +++ b/options/custom/desktops/gnome/default.nix @@ -1,7 +1,6 @@ { config, lib, - pkgs, ... }: with lib; let @@ -10,22 +9,23 @@ in { options.custom.desktops.gnome = { enable = mkOption {default = false;}; gdm = mkOption {default = true;}; + minimal = mkOption {default = false;}; }; config = mkIf cfg.enable { + # https://wiki.nixos.org/wiki/GNOME # FIXME: xdg-desktop-portal-[gnome|gtk] not working through steam services = { - xserver = { + xserver = mkIf (!cfg.minimal) { enable = true; desktopManager.gnome.enable = true; displayManager.gdm.enable = cfg.gdm; }; - gnome.gnome-browser-connector.enable = true; # Install extensions from browser + gnome = { + core-os-services.enable = mkIf cfg.minimal true; + gnome-browser-connector.enable = !cfg.minimal; + }; }; - - # Remove default packages - # https://wiki.nixos.org/wiki/GNOME#Excluding_GNOME_Applications - environment.gnome.excludePackages = [pkgs.gnome-shell-extensions]; }; } diff --git a/options/custom/desktops/hyprland/default.nix b/options/custom/desktops/hyprland/default.nix index 9d421a6..cfc09d4 100644 --- a/options/custom/desktops/hyprland/default.nix +++ b/options/custom/desktops/hyprland/default.nix @@ -10,11 +10,18 @@ in { options.custom.desktops.hyprland.enable = mkOption {default = false;}; config = mkIf cfg.enable { - custom.desktops.hyprland = mkIf config.custom.full { - binds.enable = true; - plugins.enable = true; - rules.enable = true; - settings.enable = true; + custom.desktops = mkIf config.custom.full { + hyprland = { + binds.enable = true; + plugins.enable = true; + rules.enable = true; + settings.enable = true; + }; + + gnome = { + enable = true; + minimal = true; + }; }; # https://github.com/hyprwm/Hyprland diff --git a/options/custom/desktops/niri/default.nix b/options/custom/desktops/niri/default.nix index 73b0388..c58ad76 100644 --- a/options/custom/desktops/niri/default.nix +++ b/options/custom/desktops/niri/default.nix @@ -15,12 +15,19 @@ in { }; config = mkIf cfg.enable { - custom.desktops.niri = mkIf config.custom.full { - binds.enable = true; - input.enable = true; - layout.enable = true; - misc.enable = true; - rules.enable = true; + custom.desktops = mkIf config.custom.full { + niri = { + binds.enable = true; + input.enable = true; + layout.enable = true; + misc.enable = true; + rules.enable = true; + }; + + gnome = { + enable = true; + minimal = true; + }; }; # https://github.com/YaLTeR/niri diff --git a/options/custom/desktops/sway/default.nix b/options/custom/desktops/sway/default.nix index 8925957..0c72582 100644 --- a/options/custom/desktops/sway/default.nix +++ b/options/custom/desktops/sway/default.nix @@ -9,13 +9,20 @@ in { options.custom.desktops.sway.enable = mkOption {default = false;}; config = mkIf cfg.enable { - custom.desktops.sway = mkIf config.custom.full { - binds.enable = true; - input.enable = true; - output.enable = true; - rules.enable = true; - settings.enable = true; - swayfx.enable = true; + custom.desktops = mkIf config.custom.full { + sway = { + binds.enable = true; + input.enable = true; + output.enable = true; + rules.enable = true; + settings.enable = true; + swayfx.enable = true; + }; + + gnome = { + enable = true; + minimal = true; + }; }; # https://wiki.nixos.org/wiki/Sway diff --git a/options/custom/settings/packages.nix b/options/custom/settings/packages.nix index 0178f9f..a440df5 100644 --- a/options/custom/settings/packages.nix +++ b/options/custom/settings/packages.nix @@ -97,12 +97,14 @@ in { gnome-calendar # Calendar gnome-clocks # Clock gnome-connections # Remote desktop client + gnome-contacts # Contact editor gnome-disk-utility # Disk formatter gnome-firmware # Firmware updater gnome-font-viewer # Font viewer gnome-graphs # Data plotter gnome-maps # OpenStreetMap client gnome-obfuscate # Image redacter + gnome-online-accounts-gtk # GNOME accounts gnome-podcasts # Podcast feed gnome-resources # System monitor gnome-software # Flatpak manager