From 323df5ca1061651d122889cd58645cc6f456eb05 Mon Sep 17 00:00:00 2001
From: Oliver Davies <oliver@oliverdavies.dev>
Date: Wed, 22 May 2024 21:36:26 +0100
Subject: [PATCH] Add GNOME as a desktop manager, working with sway

...and wayland
---
 lib/nixos/default.nix       |  1 +
 lib/nixos/modules/gnome.nix | 14 ++++++++++++++
 lib/nixos/modules/sway.nix  |  9 ++-------
 3 files changed, 17 insertions(+), 7 deletions(-)
 create mode 100644 lib/nixos/modules/gnome.nix

diff --git a/lib/nixos/default.nix b/lib/nixos/default.nix
index 890a3dab..54fbec7c 100644
--- a/lib/nixos/default.nix
+++ b/lib/nixos/default.nix
@@ -16,6 +16,7 @@ in inputs.nixpkgs.lib.nixosSystem {
       };
     }
 
+    (import ./modules/gnome.nix)
     (import ./modules/sway.nix { inherit inputs username; })
 
     configuration
diff --git a/lib/nixos/modules/gnome.nix b/lib/nixos/modules/gnome.nix
new file mode 100644
index 00000000..bbb5ad27
--- /dev/null
+++ b/lib/nixos/modules/gnome.nix
@@ -0,0 +1,14 @@
+{ pkgs, ... }:
+
+{
+  services.xserver = {
+    desktopManager.gnome.enable = true;
+
+    displayManager.gdm = {
+      enable = true;
+      wayland = true;
+    };
+  };
+
+  environment.systemPackages = with pkgs; [ networkmanagerapplet ];
+}
diff --git a/lib/nixos/modules/sway.nix b/lib/nixos/modules/sway.nix
index 7a0897be..0e2d4762 100644
--- a/lib/nixos/modules/sway.nix
+++ b/lib/nixos/modules/sway.nix
@@ -1,17 +1,12 @@
 { inputs, username, ... }:
 { pkgs, ... }: {
-  services = {
-    displayManager = {
-      defaultSession = "sway";
-      sddm.enable = true;
-    };
-  };
+  services.displayManager.defaultSession = "sway";
 
   programs.sway.enable = true;
 
   xdg.portal = {
     enable = true;
-    extraPortals = with pkgs; [ xdg-desktop-portal-gtk xdg-desktop-portal-wlr ];
+    extraPortals = with pkgs; [ xdg-desktop-portal-wlr ];
   };
 
   home-manager.users.${username} = { pkgs, ... }: {