diff --git a/homes/aarch64-darwin/evanreichard@MBP-Personal/btop/default.nix b/homes/aarch64-darwin/evanreichard@MBP-Personal/btop/default.nix
deleted file mode 100644
index 04df897..0000000
--- a/homes/aarch64-darwin/evanreichard@MBP-Personal/btop/default.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- programs.btop = {
- enable = true;
- };
-
- home.file.".config/btop/btop.conf".text =
- builtins.readFile ./config/btop.conf;
- home.file.".config/btop/themes/catppuccin_mocha.theme".text =
- builtins.readFile ./config/catppuccin_mocha.theme;
-}
diff --git a/homes/aarch64-darwin/evanreichard@MBP-Personal/default.nix b/homes/aarch64-darwin/evanreichard@MBP-Personal/default.nix
index bdd1949..561aa31 100644
--- a/homes/aarch64-darwin/evanreichard@MBP-Personal/default.nix
+++ b/homes/aarch64-darwin/evanreichard@MBP-Personal/default.nix
@@ -1,71 +1,29 @@
{ pkgs, ... }:
-let
- inherit (pkgs.lib) optionals mkForce;
- inherit (pkgs.stdenv) isLinux isDarwin;
-in
{
- imports = [
- ./btop
- ./direnv
- ./powerline
- ./readline
- ./hyprland
- ./waybar
- ];
-
reichardnix = {
- programs.nvim.enable = true;
+ programs.btop.enable = true;
+ programs.direnv.enable = true;
programs.ghostty.enable = true;
programs.git.enable = true;
+ programs.k9s.enable = true;
+ programs.nvim.enable = true;
+
+ programs.hyprland.enable = false;
+ programs.aws.enable = false;
};
- # Home Manager Config
- home.stateVersion = "24.11";
- home.username = "evanreichard";
- home.homeDirectory = mkForce (if isLinux then "/home/evanreichard" else "/Users/evanreichard");
- programs.home-manager.enable = true;
-
# Global Packages
+ programs.jq.enable = true;
+ programs.pandoc.enable = true;
home.packages = with pkgs; [
- # --- Android Dev ---
android-tools
-
- # --- AWS ---
- cw
- awscli2
- ssm-session-manager-plugin
-
- # --- Kubernetes ---
- kubectl
- kubernetes-helm
-
- # --- Uncategorized ---
imagemagick
mosh
python311
texliveSmall # Pandoc PDF Dep
google-cloud-sdk
tldr
- ]
- ++ optionals isLinux [
- ghostty
- hyprpaper
- firefox
- ]
- ++ optionals isDarwin [ ];
-
- # Misc Programs
- programs.jq.enable = true;
- programs.k9s.enable = true;
- programs.pandoc.enable = true;
-
- # Enable Flakes & Commands
- nix = {
- package = mkForce pkgs.nix;
- settings = {
- experimental-features = "nix-command flakes";
- };
- };
+ ];
# SQLite Configuration
home.file.".sqliterc".text = ''
@@ -73,6 +31,7 @@ in
.mode column
'';
- # Darwin Spotlight Indexing Hack
- disabledModules = [ "targets/darwin/linkapps.nix" ];
+ # Enable Home Manager & Self Manage
+ home.stateVersion = "24.11";
+ programs.home-manager.enable = true;
}
diff --git a/homes/aarch64-darwin/evanreichard@MBP-Personal/direnv/default.nix b/homes/aarch64-darwin/evanreichard@MBP-Personal/direnv/default.nix
deleted file mode 100644
index 2b51c9d..0000000
--- a/homes/aarch64-darwin/evanreichard@MBP-Personal/direnv/default.nix
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- programs.direnv = {
- enable = true;
- nix-direnv.enable = true;
- };
-}
diff --git a/homes/aarch64-darwin/evanreichard@MBP-Personal/hyprland/default.nix b/homes/aarch64-darwin/evanreichard@MBP-Personal/hyprland/default.nix
deleted file mode 100644
index 31cd74b..0000000
--- a/homes/aarch64-darwin/evanreichard@MBP-Personal/hyprland/default.nix
+++ /dev/null
@@ -1,8 +0,0 @@
-{ pkgs, lib, ... }:
-
-lib.mkIf pkgs.stdenv.isLinux {
- wayland.windowManager.hyprland = {
- enable = true;
- extraConfig = builtins.readFile ./config/hyprland.conf;
- };
-}
diff --git a/homes/aarch64-darwin/evanreichard@MBP-Personal/powerline/default.nix b/homes/aarch64-darwin/evanreichard@MBP-Personal/powerline/default.nix
deleted file mode 100644
index 363ec58..0000000
--- a/homes/aarch64-darwin/evanreichard@MBP-Personal/powerline/default.nix
+++ /dev/null
@@ -1,16 +0,0 @@
-{
- programs.powerline-go = {
- enable = true;
- settings = {
- git-mode = "compact";
- theme = "gruvbox";
- };
- modules = [
- "host"
- "cwd"
- "git"
- "docker"
- "venv"
- ];
- };
-}
diff --git a/homes/aarch64-darwin/evanreichard@MBP-Personal/readline/default.nix b/homes/aarch64-darwin/evanreichard@MBP-Personal/readline/default.nix
deleted file mode 100644
index fb38452..0000000
--- a/homes/aarch64-darwin/evanreichard@MBP-Personal/readline/default.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- programs.readline = {
- enable = true;
- extraConfig = ''
- # Approximate VIM Dracula Colors
- set vi-ins-mode-string \1\e[01;38;5;23;48;5;231m\2 I \1\e[38;5;231;48;5;238m\2\1\e[0m\2
- set vi-cmd-mode-string \1\e[01;38;5;22;48;5;148m\2 C \1\e[38;5;148;48;5;238m\2\1\e[0m\2
- '';
- };
-}
diff --git a/homes/aarch64-darwin/evanreichard@MBP-Personal/waybar/default.nix b/homes/aarch64-darwin/evanreichard@MBP-Personal/waybar/default.nix
deleted file mode 100644
index 5e86e90..0000000
--- a/homes/aarch64-darwin/evanreichard@MBP-Personal/waybar/default.nix
+++ /dev/null
@@ -1,114 +0,0 @@
-{ lib, pkgs, ... }:
-lib.mkIf pkgs.stdenv.isLinux {
- programs.waybar = {
- enable = true;
- style = builtins.readFile ./config/style.css;
- settings = [{
- layer = "top";
- position = "top";
- mod = "dock";
- exclusive = true;
- passtrough = false;
- gtk-layer-shell = true;
- height = 0;
- modules-left = [
- "hyprland/workspaces"
- "custom/divider"
- "custom/divider"
- "cpu"
- "custom/divider"
- "memory"
- ];
- modules-center = [ "hyprland/window" ];
- modules-right = [
- "tray"
- "network"
- "custom/divider"
- "backlight"
- "custom/divider"
- "pulseaudio"
- "custom/divider"
- "battery"
- "custom/divider"
- "clock"
- ];
- "hyprland/window" = { format = "{}"; };
- "wlr/workspaces" = {
- on-scroll-up = "hyprctl dispatch workspace e+1";
- on-scroll-down = "hyprctl dispatch workspace e-1";
- all-outputs = true;
- on-click = "activate";
- };
- battery = { format = " {}%"; };
- cpu = {
- interval = 10;
- format = " {}%";
- max-length = 10;
- on-click = "";
- };
- memory = {
- interval = 30;
- format = " {}%";
- format-alt = " {used:0.1f}G";
- max-length = 10;
- };
- backlight = {
- format = " {}";
- device = "acpi_video0";
- };
- tray = {
- icon-size = 13;
- tooltip = false;
- spacing = 10;
- };
- network = {
- format = " {essid}";
- format-disconnected = " disconnected";
- };
- clock = {
- format = " {:%I:%M %p %m/%d} ";
- tooltip-format = ''
- {:%Y %B}
- {calendar}'';
- };
- pulseaudio = {
- format = "{icon} {volume}%";
- tooltip = false;
- format-muted = " Muted";
- on-click = "pamixer -t";
- on-scroll-up = "pamixer -i 5";
- on-scroll-down = "pamixer -d 5";
- scroll-step = 5;
- format-icons = {
- headphone = "";
- hands-free = "";
- headset = "";
- phone = "";
- portable = "";
- car = "";
- default = [ "" "" "" ];
- };
- };
- "pulseaudio#microphone" = {
- format = "{format_source}";
- tooltip = false;
- format-source = " {volume}%";
- format-source-muted = " Muted";
- on-click = "pamixer --default-source -t";
- on-scroll-up = "pamixer --default-source -i 5";
- on-scroll-down = "pamixer --default-source -d 5";
- scroll-step = 5;
- };
- "custom/divider" = {
- format = " | ";
- interval = "once";
- tooltip = false;
- };
- "custom/endright" = {
- format = "_";
- interval = "once";
- tooltip = false;
- };
- }];
- };
-}
diff --git a/modules/home/programs/aws/default.nix b/modules/home/programs/aws/default.nix
new file mode 100644
index 0000000..f273b04
--- /dev/null
+++ b/modules/home/programs/aws/default.nix
@@ -0,0 +1,18 @@
+{ lib, pkgs, config, namespace, ... }:
+let
+ inherit (lib) mkIf;
+ cfg = config.${namespace}.programs.aws;
+in
+{
+ options.${namespace}.programs.aws = {
+ enable = lib.mkEnableOption "AWS";
+ };
+
+ config = mkIf cfg.enable {
+ home.packages = with pkgs; [
+ cw
+ awscli2
+ ssm-session-manager-plugin
+ ];
+ };
+}
diff --git a/homes/aarch64-darwin/evanreichard@MBP-Personal/btop/config/btop.conf b/modules/home/programs/btop/config/btop.conf
similarity index 100%
rename from homes/aarch64-darwin/evanreichard@MBP-Personal/btop/config/btop.conf
rename to modules/home/programs/btop/config/btop.conf
diff --git a/homes/aarch64-darwin/evanreichard@MBP-Personal/btop/config/catppuccin_mocha.theme b/modules/home/programs/btop/config/catppuccin_mocha.theme
similarity index 100%
rename from homes/aarch64-darwin/evanreichard@MBP-Personal/btop/config/catppuccin_mocha.theme
rename to modules/home/programs/btop/config/catppuccin_mocha.theme
diff --git a/modules/home/programs/btop/default.nix b/modules/home/programs/btop/default.nix
new file mode 100644
index 0000000..b82591e
--- /dev/null
+++ b/modules/home/programs/btop/default.nix
@@ -0,0 +1,19 @@
+{ lib, config, namespace, ... }:
+let
+ inherit (lib) mkIf;
+ cfg = config.${namespace}.programs.btop;
+in
+{
+ options.${namespace}.programs.btop = {
+ enable = lib.mkEnableOption "btop";
+ };
+
+ config = mkIf cfg.enable {
+ programs.btop.enable = true;
+
+ home.file.".config/btop/btop.conf".text =
+ builtins.readFile ./config/btop.conf;
+ home.file.".config/btop/themes/catppuccin_mocha.theme".text =
+ builtins.readFile ./config/catppuccin_mocha.theme;
+ };
+}
diff --git a/modules/home/programs/direnv/default.nix b/modules/home/programs/direnv/default.nix
new file mode 100644
index 0000000..b2b75ea
--- /dev/null
+++ b/modules/home/programs/direnv/default.nix
@@ -0,0 +1,17 @@
+{ lib, config, namespace, ... }:
+let
+ inherit (lib) mkIf;
+ cfg = config.${namespace}.programs.direnv;
+in
+{
+ options.${namespace}.programs.direnv = {
+ enable = lib.mkEnableOption "direnv";
+ };
+
+ config = mkIf cfg.enable {
+ programs.direnv = {
+ enable = true;
+ nix-direnv.enable = true;
+ };
+ };
+}
diff --git a/modules/home/programs/ghostty/default.nix b/modules/home/programs/ghostty/default.nix
index 89ab732..4deb13d 100644
--- a/modules/home/programs/ghostty/default.nix
+++ b/modules/home/programs/ghostty/default.nix
@@ -26,6 +26,30 @@ in
'';
};
+ programs.powerline-go = {
+ enable = true;
+ settings = {
+ git-mode = "compact";
+ theme = "gruvbox";
+ };
+ modules = [
+ "host"
+ "cwd"
+ "git"
+ "docker"
+ "venv"
+ ];
+ };
+
+ programs.readline = {
+ enable = true;
+ extraConfig = ''
+ # Approximate VIM Dracula Colors
+ set vi-ins-mode-string \1\e[01;38;5;23;48;5;231m\2 I \1\e[38;5;231;48;5;238m\2\1\e[0m\2
+ set vi-cmd-mode-string \1\e[01;38;5;22;48;5;148m\2 C \1\e[38;5;148;48;5;238m\2\1\e[0m\2
+ '';
+ };
+
home.packages = with pkgs; [
# Pending Darwin @ https://github.com/NixOS/nixpkgs/pull/369788
# ghostty
diff --git a/homes/aarch64-darwin/evanreichard@MBP-Personal/hyprland/config/hyprland.conf b/modules/home/programs/hyprland/config/hyprland.conf
similarity index 100%
rename from homes/aarch64-darwin/evanreichard@MBP-Personal/hyprland/config/hyprland.conf
rename to modules/home/programs/hyprland/config/hyprland.conf
diff --git a/homes/aarch64-darwin/evanreichard@MBP-Personal/waybar/config/style.css b/modules/home/programs/hyprland/config/waybar-style.css
similarity index 100%
rename from homes/aarch64-darwin/evanreichard@MBP-Personal/waybar/config/style.css
rename to modules/home/programs/hyprland/config/waybar-style.css
diff --git a/modules/home/programs/hyprland/default.nix b/modules/home/programs/hyprland/default.nix
new file mode 100644
index 0000000..5e4e9a2
--- /dev/null
+++ b/modules/home/programs/hyprland/default.nix
@@ -0,0 +1,129 @@
+{ lib, config, namespace, ... }:
+let
+ inherit (lib) mkIf;
+ cfg = config.${namespace}.programs.hyprland;
+in
+{
+ options.${namespace}.programs.hyprland = {
+ enable = lib.mkEnableOption "Hyprland";
+ };
+
+ config = mkIf cfg.enable {
+ wayland.windowManager.hyprland = {
+ enable = true;
+ extraConfig = builtins.readFile ./config/hyprland.conf;
+ };
+
+ programs.waybar = {
+ enable = true;
+ style = builtins.readFile ./config/waybar-style.css;
+ settings = [{
+ layer = "top";
+ position = "top";
+ mod = "dock";
+ exclusive = true;
+ passtrough = false;
+ gtk-layer-shell = true;
+ height = 0;
+ modules-left = [
+ "hyprland/workspaces"
+ "custom/divider"
+ "custom/divider"
+ "cpu"
+ "custom/divider"
+ "memory"
+ ];
+ modules-center = [ "hyprland/window" ];
+ modules-right = [
+ "tray"
+ "network"
+ "custom/divider"
+ "backlight"
+ "custom/divider"
+ "pulseaudio"
+ "custom/divider"
+ "battery"
+ "custom/divider"
+ "clock"
+ ];
+ "hyprland/window" = { format = "{}"; };
+ "wlr/workspaces" = {
+ on-scroll-up = "hyprctl dispatch workspace e+1";
+ on-scroll-down = "hyprctl dispatch workspace e-1";
+ all-outputs = true;
+ on-click = "activate";
+ };
+ battery = { format = " {}%"; };
+ cpu = {
+ interval = 10;
+ format = " {}%";
+ max-length = 10;
+ on-click = "";
+ };
+ memory = {
+ interval = 30;
+ format = " {}%";
+ format-alt = " {used:0.1f}G";
+ max-length = 10;
+ };
+ backlight = {
+ format = " {}";
+ device = "acpi_video0";
+ };
+ tray = {
+ icon-size = 13;
+ tooltip = false;
+ spacing = 10;
+ };
+ network = {
+ format = " {essid}";
+ format-disconnected = " disconnected";
+ };
+ clock = {
+ format = " {:%I:%M %p %m/%d} ";
+ tooltip-format = ''
+ {:%Y %B}
+ {calendar}'';
+ };
+ pulseaudio = {
+ format = "{icon} {volume}%";
+ tooltip = false;
+ format-muted = " Muted";
+ on-click = "pamixer -t";
+ on-scroll-up = "pamixer -i 5";
+ on-scroll-down = "pamixer -d 5";
+ scroll-step = 5;
+ format-icons = {
+ headphone = "";
+ hands-free = "";
+ headset = "";
+ phone = "";
+ portable = "";
+ car = "";
+ default = [ "" "" "" ];
+ };
+ };
+ "pulseaudio#microphone" = {
+ format = "{format_source}";
+ tooltip = false;
+ format-source = " {volume}%";
+ format-source-muted = " Muted";
+ on-click = "pamixer --default-source -t";
+ on-scroll-up = "pamixer --default-source -i 5";
+ on-scroll-down = "pamixer --default-source -d 5";
+ scroll-step = 5;
+ };
+ "custom/divider" = {
+ format = " | ";
+ interval = "once";
+ tooltip = false;
+ };
+ "custom/endright" = {
+ format = "_";
+ interval = "once";
+ tooltip = false;
+ };
+ }];
+ };
+ };
+}
diff --git a/modules/home/programs/k9s/default.nix b/modules/home/programs/k9s/default.nix
new file mode 100644
index 0000000..7b06682
--- /dev/null
+++ b/modules/home/programs/k9s/default.nix
@@ -0,0 +1,19 @@
+{ lib, pkgs, config, namespace, ... }:
+let
+ inherit (lib) mkIf;
+ cfg = config.${namespace}.programs.k9s;
+in
+{
+ options.${namespace}.programs.k9s = {
+ enable = lib.mkEnableOption "k9s";
+ };
+
+ config = mkIf cfg.enable {
+ programs.k9s.enable = true;
+
+ home.packages = with pkgs; [
+ kubectl
+ kubernetes-helm
+ ];
+ };
+}