feat(users): Add chimera.users.coded.enable

This provides Coded an option to easily springboard setup for a new
system

Change-Id: I909f322ed65f684fb95eb0bf839186eaf4de0d78
Reviewed-on: https://git.clicks.codes/c/Chimera/NixFiles/+/761
Tested-by: Samuel Shuert <coded@clicks.codes>
Reviewed-by: Samuel Shuert <coded@clicks.codes>
diff --git a/modules/home/users/coded/default.nix b/modules/home/users/coded/default.nix
new file mode 100644
index 0000000..9167ae8
--- /dev/null
+++ b/modules/home/users/coded/default.nix
@@ -0,0 +1,198 @@
+{
+  inputs,
+  config,
+  lib,
+  pkgs,
+  ...
+}:
+let
+  cfg = config.chimera.users.coded;
+in {
+  options.chimera.users.coded.enable = lib.mkEnableOption "Enable Chimera options for coded";
+
+  config = lib.mkIf cfg.enable {
+    # Chimera Config
+    chimera.nextcloud.enable = true;
+
+    chimera.shell.rebuildFlakePath = "/home/coded/Programming/Chimera/Nix/NixFiles";
+
+    chimera.shell = {
+      zsh.enable = true;
+      starship.enable = true;
+
+      defaultAliases.enable = true;
+      usefulPackages.enable = true;
+
+      replacements = {
+        defaultEnable = true;
+        bat.enable = false;
+        atuin.enableUpArrow = true;
+      };
+    };
+
+    chimera.git = {
+      delta.enable = true;
+      stgit.enable = true;
+      gitReview.enable = true;
+      auth.clicksUsername = "coded";
+      gpg.enable = true;
+    };
+
+    chimera.input.touchpad = {
+      enable = true;
+      scrolling.natural = true;
+    };
+
+    chimera.browser.firefox = {
+      enable = true;
+      extensions = {
+        bitwarden.enable = true;
+        youtube = {
+          sponsorBlock.enable = true;
+          returnDislike.enable = true;
+          deArrow.enable = true;
+        };
+        reactDevTools.enable = true;
+        adnauseam.enable = true;
+      };
+      search = {
+        enable = true;
+        extensions.enable = true;
+        bookmarks.enable = true;
+        engines = [
+          "Kagi"
+          "MDN"
+          "NixOS Options"
+          "NixOS Packages"
+          "Home-Manager Options"
+          "Noogle"
+          "GitHub"
+          "Arch Wiki"
+          "Gentoo Wiki"
+        ];
+      };
+      extraExtensions = [
+        config.nur.repos.rycee.firefox-addons.refined-github
+        config.nur.repos.rycee.firefox-addons.new-tab-override
+      ];
+    };
+
+    chimera.games.minecraft.enable = true;
+
+    chimera.editor = {
+      neovim.enable = true;
+      editorconfig.enable = true;
+      emacs = {
+        enable = true;
+        defaultEditor = false;
+      };
+    };
+
+    chimera.theme.font.nerdFontGlyphs.enable = true;
+
+    chimera.theme.catppuccin = {
+      enable = true;
+      style = "Macchiato";
+      color = "Blue";
+    };
+
+    chimera.yubikey.enable = true;
+
+    # Programming Folder Creation
+    home.file = {
+      "Programming/README.md" = {
+        text = ''
+        # Structure
+        [Org]/[Language]/[project]
+
+        Both Org and Language should be capitalized however project may follow any name scheme.
+        '';
+      };
+      "Programming/Personal/README.md" = {
+        text = ''
+        # What is this directory for?
+        This directory stores all my personal programming projects
+
+        # Git config modifications
+        user.name = "Samuel Shuert"
+        user.email = "me@thecoded.prof"
+        '';
+      };
+      "Programming/Auxolotl/README.md" = {
+        text = ''
+        # What is this directory for?
+        This directory stores all Auxolotl related programming projects
+
+        # Git config modifications
+        user.name = "Samuel Shuert"
+        user.email = "me@thecoded.prof"
+        '';
+      };
+      "Programming/Chimera/README.md" = {
+        text = ''
+        # What is this directory for?
+        This directory stores all Chimera related programming projects
+
+        # Git config modifications
+        user.name = "Samuel Shuert"
+        user.email = "me@thecoded.prof"
+        '';
+      };
+      "Programming/Clicks/README.md" = {
+        text = ''
+        # What is this directory for?
+        This directory stores all Clicks related programming projects
+
+        # Git config modifications
+        user.name = "Samuel Shuert"
+        user.email = "coded@clicks.codes"
+        '';
+      };
+    };
+
+    # Git Config
+    programs.git.includes = [
+      {
+        condition = "gitdir:~/Programming/Chimera/**";
+
+        contents = {
+          user.name = "Samuel Shuert";
+          user.email = "me@thecoded.prof";
+        };
+      }
+      {
+        condition = "gitdir:~/Programming/Clicks/**";
+
+        contents = {
+          user.name = "Samuel Shuert";
+          user.email = "coded@clicks.codes";
+        };
+      }
+      {
+        condition = "gitdir:~/Programming/Personal/**";
+
+        contents = {
+          user.name = "Samuel Shuert";
+          user.email = "me@thecoded.prof";
+        };
+      }
+      {
+        condition = "gitdir:~/Programming/Auxolotl/**";
+
+        contents = {
+          user.name = "Samuel Shuert";
+          user.email = "me@thecoded.prof";
+        };
+      }
+    ];
+
+    # Additional Kitty Config
+    programs.kitty.extraConfig = ''
+      map kitty_mod+enter launch --cwd=current --type=window
+      map kitty_mod+t     launch --cwd=current --type=tab
+    '';
+
+    # Additional Packages
+    home.packages = [ pkgs.foliate pkgs.openrgb ];
+  };
+}