From 61d59a331851dbfbdbe19c82567a53a4b924eba9 Mon Sep 17 00:00:00 2001
From: albert <albert@sysctl.io>
Date: Mon, 13 Jan 2025 18:05:14 +0100
Subject: [PATCH] Update containers, add Jared as a user

---
 nixos/containers/jared-rdesktop/default.nix | 23 -----------------
 nixos/containers/jared-rdesktop/mounts.nix  | 20 ---------------
 nixos/containers/rdesktop/default.nix       |  1 +
 nixos/hosts/nuc-server/containers.nix       |  2 +-
 nixos/users/jared/default.nix               | 28 +++++++++++++++++++++
 nixos/users/jared/desktop.nix               | 11 ++++++++
 6 files changed, 41 insertions(+), 44 deletions(-)
 delete mode 100644 nixos/containers/jared-rdesktop/default.nix
 delete mode 100644 nixos/containers/jared-rdesktop/mounts.nix
 create mode 100644 nixos/users/jared/default.nix
 create mode 100644 nixos/users/jared/desktop.nix

diff --git a/nixos/containers/jared-rdesktop/default.nix b/nixos/containers/jared-rdesktop/default.nix
deleted file mode 100644
index 00fa17a1..00000000
--- a/nixos/containers/jared-rdesktop/default.nix
+++ /dev/null
@@ -1,23 +0,0 @@
-{ pkgs, desktop, username, ... }: {
-  imports = [
-    ../../users/${username}
-    ../../common/desktops/${desktop}
-    ../../common/packages
-    ../../common/modules/fonts.nix
-    ../../common/software/cli/scripts.nix
-  ];
-
-  hardware.pulseaudio.extraModules = [ pkgs.pulseaudio-module-xrdp ];
-
-  services.xrdp = {
-    enable = true;
-    openFirewall = true;
-    audio = {
-      enable = true;
-      package = pkgs.pulseaudio-module-xrdp;
-    };
-  };
-  environment.systemPackages = with pkgs; [
-    signal-desktop
-  ];
-}
diff --git a/nixos/containers/jared-rdesktop/mounts.nix b/nixos/containers/jared-rdesktop/mounts.nix
deleted file mode 100644
index c78567d8..00000000
--- a/nixos/containers/jared-rdesktop/mounts.nix
+++ /dev/null
@@ -1,20 +0,0 @@
-{
-  "/etc/nixos/git" = {
-    hostPath = "/etc/nixos/git";
-    mountPoint = "/etc/nixos/git";
-    isReadOnly = false;
-  };
-  "/shared" = {
-    hostPath = "/Storage/Data/Docker/sysctl.io/guacamole/guacd/shared";
-    mountPoint = "/shared";
-    isReadOnly = false;
-  };
-  "/home/albert/.ssh/id_ed25519" = {
-    mountPoint = "/home/albert/.ssh/id_ed25519";
-    isReadOnly = true;
-  };
-  "/home/albert/.ssh/id_ed25519.pub"  = {
-    mountPoint = "/home/albert/.ssh/id_ed25519.pub";
-    isReadOnly = true;
-  };
-}
diff --git a/nixos/containers/rdesktop/default.nix b/nixos/containers/rdesktop/default.nix
index 525920b3..0c007ad7 100644
--- a/nixos/containers/rdesktop/default.nix
+++ b/nixos/containers/rdesktop/default.nix
@@ -8,6 +8,7 @@
     ../../common/software/cli/scripts.nix
     ../../common/services/tailscale-autoconnect.nix
     ../../common/services/syncthing.nix
+    ../../users/jared/default.nix
   ];
 
   hardware.pulseaudio.extraModules = [ pkgs.pulseaudio-module-xrdp ];
diff --git a/nixos/hosts/nuc-server/containers.nix b/nixos/hosts/nuc-server/containers.nix
index aa29f4f8..7dc2818b 100644
--- a/nixos/hosts/nuc-server/containers.nix
+++ b/nixos/hosts/nuc-server/containers.nix
@@ -4,7 +4,7 @@ let
 in {
 
   containers = {
-    rdesktop = libx.mkContainer { hostname = "jared-rdesktop"; ip = "2"; unfree = true; desktop = "gnome"; };
+    rdesktop = libx.mkContainer { hostname = "rdesktop"; ip = "2"; unfree = true; desktop = "gnome"; };
   };
 
   # Networking config
diff --git a/nixos/users/jared/default.nix b/nixos/users/jared/default.nix
new file mode 100644
index 00000000..c163a85d
--- /dev/null
+++ b/nixos/users/jared/default.nix
@@ -0,0 +1,28 @@
+{ config, desktop, lib,  pkgs, ... }: 
+let
+  ifExists = groups: builtins.filter (group: builtins.hasAttr group config.users.groups) groups;
+in {
+  # Define a user account.
+  imports = [  ]  ++ lib.optional (builtins.isString desktop) ./desktop.nix;
+
+  users = {
+    mutableUsers = false;
+    users.jared = {
+      isNormalUser = true;
+      description = "Jared Coppeland";
+      # video is required for the "light" command to work
+      extraGroups = [ "networkmanager" ] 
+        ++ ifExists [ "keys"      ]
+        ++ ifExists [ "audio"     ]
+        ++ ifExists [ "video"     ]; 
+      shell = pkgs.fish;
+      # mkpasswd -m sha-512
+      hashedPassword = "$6$5CTica.d8BNST2Yg$V85MzLwAAPdoubpwWD8yR2ntxsxgxGhBwYRsXLQ/Vo8krlN1skoTyjfNVjt94EO/0muF3R2UkLlA6YWi1blbD1";
+    };
+    groups.jared = {
+      gid = 1001;
+      name = "jared";
+      members = [ "jared" ];
+    };
+  };
+}
diff --git a/nixos/users/jared/desktop.nix b/nixos/users/jared/desktop.nix
new file mode 100644
index 00000000..95f7d878
--- /dev/null
+++ b/nixos/users/jared/desktop.nix
@@ -0,0 +1,11 @@
+{ pkgs, ... }: {
+  # Steam, Vintage Story areu nfree.
+  environment.systemPackages = [
+    pkgs.signal-desktop
+
+  ];
+  
+  imports = [
+    ../../common/software/gui/firefox.nix
+  ];
+}