From dcff7d9db4f7840a08c6fc0b5de255e3fd707735 Mon Sep 17 00:00:00 2001
From: Nathan Anderson <n8r@tuta.io>
Date: Sun, 17 Mar 2024 22:25:47 -0600
Subject: [PATCH] added docker to server packages, added home luci config

---
 luci/modules/home-manager/home.nix | 107 +++++++++++++++++++++++++++++
 shared/server-configuration.nix    |   5 ++
 2 files changed, 112 insertions(+)

diff --git a/luci/modules/home-manager/home.nix b/luci/modules/home-manager/home.nix
index e69de29..91e414a 100644
--- a/luci/modules/home-manager/home.nix
+++ b/luci/modules/home-manager/home.nix
@@ -0,0 +1,107 @@
+{ lib, config, pkgs, ... }:
+let
+  homeConfig = config.homeConfig;
+in
+{
+  # nixpkgs.overlays = [
+  #   inputs.nur.overlay
+  # ];
+
+  # nixpkgs.config.allowUnfree = true;
+  # inputs.nixpkgs-stable.config.allowUnfree = true;
+  options.homeConfig = {
+    userName = lib.mkOption {
+        type = lib.types.str;
+        description = "Main username for system";
+    };
+    hostName = lib.mkOption {
+        type = lib.types.str;
+        description = "Hostname for system";
+    };
+    fullName = lib.mkOption {
+        type = lib.types.str;
+        description = "Hostname for system";
+    };
+  };
+
+  config = {
+    home.username = homeConfig.userName;
+    home.homeDirectory = "/home/${homeConfig.userName}";
+
+    programs.home-manager.enable = true;
+
+    home.stateVersion = "23.11"; # Please read the comment before changing.
+
+    fonts.fontconfig.enable = true;
+    home.packages = with pkgs; [
+      helix
+      jq
+
+      #
+      # Better Unix
+      #
+      bat
+      duf
+      fd
+      fzf
+      lsd
+      ripgrep
+      tre-command
+      gtop
+      htop
+      neofetch
+
+      # Normies
+      unzip
+
+      imv
+      mpv
+      ffmpeg
+    ];
+
+    home.file."${config.xdg.configHome}" = {
+      source = ../../dotfiles;
+      recursive = true;
+    };
+
+    home.sessionVariables = {
+      EDITOR = "hx";
+    };
+
+    # Git setup
+    programs.git = {
+        enable = true;
+        userEmail = homeConfig.email;
+        userName = homeConfig.fullName;
+    };
+
+    programs = {
+      direnv = {
+        enable = true;
+        enableZshIntegration = true; # see note on other shells below
+        nix-direnv.enable = true;
+      };
+      bash.enable = true; # see note on other shells below
+    };
+
+    # Zsh setup
+    programs.zsh = {
+        enable = true;
+        oh-my-zsh = {
+            enable = true;
+            plugins = [ "git" ];
+            theme = "half-life";
+        };
+        initExtra = ''
+            eval "$(direnv hook zsh)"
+
+            alias ls="lsd"
+            alias l="lsd --almost-all --long"
+            alias llm="lsd --timesort --long"
+            alias lS="lsd --oneline --classic"
+            alias lt="lsd --tree --depth=2"
+            alias grep="rg"
+         '';
+    };
+  };
+}
diff --git a/shared/server-configuration.nix b/shared/server-configuration.nix
index 60adf57..bc6a8dd 100644
--- a/shared/server-configuration.nix
+++ b/shared/server-configuration.nix
@@ -58,6 +58,11 @@ in
       isDesktopUser = false;
     };
 
+    environment.systemPackages = with pkgs; [
+      docker
+      docker-compose
+    ];
+
     services.openssh = lib.mkIf srvConfig.sshEnable {
       enable = true;
     };