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/homes/x86_64-linux/coded@shorthair/default.nix b/homes/x86_64-linux/coded@shorthair/default.nix
index ace98f3..559333c 100644
--- a/homes/x86_64-linux/coded@shorthair/default.nix
+++ b/homes/x86_64-linux/coded@shorthair/default.nix
@@ -19,174 +19,67 @@
...
}:
{
+ chimera.users.coded.enable = true;
- home.packages = [ pkgs.foliate ];
+ chimera.waybar.modules.temperature.hwmonPath = "/sys/class/hwmon/hwmon4/temp1_input";
- chimera = {
- waybar.modules.temperature.hwmonPath = "/sys/class/hwmon/hwmon4/temp1_input";
- waybar.modules.backlight.enable = true;
+ chimera.niri = {
+ enable = true;
- nextcloud.enable = true;
-
- shell = {
- zsh.enable = true;
-
- starship.enable = true;
-
- rebuildFlakePath = "/home/coded/Programming/Chimera/Nix/NixFiles";
-
- defaultAliases.enable = true;
- usefulPackages.enable = true;
-
- replacements = {
- defaultEnable = true;
- bat.enable = false;
- atuin.enableUpArrow = true;
+ monitors = {
+ "DP-1" = {
+ mode = {
+ width = 1920;
+ height = 1080;
+ refresh = 165.;
+ };
+ position = {
+ x = 0;
+ y = 0;
+ };
};
- };
-
- git = {
- delta.enable = true;
- stgit.enable = true;
- gitReview.enable = true;
- auth.clicksUsername = "coded";
- gpg.enable = true;
- };
-
- touchpad.enable = true;
- input.touchpad.scrolling.natural = true;
-
- niri = {
- enable = true;
-
- monitors = {
- "DP-1" = {
- mode = {
- width = 1920;
- height = 1080;
- refresh = 165.;
- };
- position = {
- x = 0;
- y = 0;
- };
- variable-refresh-rate = true;
+ "DP-2" = {
+ mode = {
+ width = 1920;
+ height = 1080;
+ refresh = 165.;
};
- "DP-2" = {
- mode = {
- width = 1920;
- height = 1080;
- refresh = 165.;
- };
- position = {
- x = 1920;
- y = 0;
- };
- variable-refresh-rate = true;
+ position = {
+ x = 1920;
+ y = 0;
};
- "HDMI-A-1" = {
- mode = {
- width = 3840;
- height = 2160;
- refresh = 60.;
- };
- position = {
- x = 0;
- y = -2160;
- };
+ };
+ "HDMI-A-1" = {
+ mode = {
+ width = 3840;
+ height = 2160;
+ refresh = 60.;
+ };
+ position = {
+ x = 0;
+ y = -2160;
};
};
};
-
- # hyprland = {
- # enable = true;
-
- # monitors = [
- # "DP-1,1920x1080@165,0x0,1"
- # "DP-2,1920x1080@165,1920x0,1"
- # "HDMI-A-1,3840x2160@60,0x-2160,1"
- # ];
- # };
-
- # hyprland.hyprpaper = {
- # splash = {
- # enable = true;
- # offset = -0.6;
- # };
- # };
-
- 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.simple-tab-groups ];
- };
-
- games.minecraft.enable = true;
-
- editor.neovim.enable = true;
- editor.editorconfig.enable = true;
-
- theme.font.nerdFontGlyphs.enable = true;
- theme.wallpaper = ./wallpaper.png;
- theme.catppuccin = {
- enable = true;
- style = "Macchiato";
- color = "Blue";
- };
-
- yubikey.enable = true;
};
+ chimera.theme.wallpaper = ./wallpaper.png;
- programs.git.includes = [
- {
- condition = "gitdir:~/programming/Chimera";
+ # SSH Config
+ programs.ssh = {
+ enable = true;
- contents = {
- user.name = "Samuel Shuert";
- user.email = "coded@clicks.codes";
+ includes = [ "~/.ssh/config.d/*" ];
+
+ matchBlocks = {
+ "ssh.clicks.codes" = {
+ port = 29418;
+ identityFile = "~/.ssh/id_clicks_git";
+ };
+ "github.com" = {
+ user = "git";
+ identityFile = [ "~/.ssh/github_sk_nano" ];
+ };
};
- }
- {
- 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 = "coded@coded.codes";
- };
- }
- ];
+ };
}
diff --git a/homes/x86_64-linux/coded@shorthair/openrgb/default.nix b/homes/x86_64-linux/coded@shorthair/openrgb/default.nix
deleted file mode 100644
index 7f5688e..0000000
--- a/homes/x86_64-linux/coded@shorthair/openrgb/default.nix
+++ /dev/null
@@ -1,4 +0,0 @@
-{ pkgs, ... }:
-{
- home.packages = [ pkgs.openrgb ];
-}
diff --git a/modules/home/users/coded/README.md b/modules/home/users/coded/README.md
new file mode 100644
index 0000000..8374723
--- /dev/null
+++ b/modules/home/users/coded/README.md
@@ -0,0 +1,8 @@
+# coded's chimera options
+
+## What is this?
+
+`coded` is a `chimera` user with multiple machines. Some of his options should
+be shared across all of his machines, these are those options.
+
+## How can I use this?
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 ];
+ };
+}