diff --git a/users/megan/default.nix b/users/megan/default.nix new file mode 100644 index 0000000..d1669a0 --- /dev/null +++ b/users/megan/default.nix @@ -0,0 +1,30 @@ +{ + pkgs, + config, + ... +}: +{ + sops.secrets.megan_password = { + sopsFile = ../secrets.yaml; + neededForUsers = true; + }; + + users = { + users.megan = { + isNormalUser = true; + hashedPasswordFile = "${config.sops.secrets.megan_password.path}"; + + shell = pkgs.zsh; + group = "megan"; + extraGroups = [ + "audio" + "video" + "users" + ]; + uid = 1101; + }; + + groups.megan.gid = 1101; + }; + home-manager.users.megan = import ./systems/${config.networking.hostName}.nix; +} diff --git a/users/megan/home/cli/default.nix b/users/megan/home/cli/default.nix new file mode 100644 index 0000000..863c25f --- /dev/null +++ b/users/megan/home/cli/default.nix @@ -0,0 +1,9 @@ +{ + imports = [ + ./direnv.nix + ./git.nix + ./zsh.nix + ]; + + programs.starship.enable = true; +} diff --git a/users/megan/home/cli/direnv.nix b/users/megan/home/cli/direnv.nix new file mode 100644 index 0000000..75129d9 --- /dev/null +++ b/users/megan/home/cli/direnv.nix @@ -0,0 +1,8 @@ +{ + + programs.direnv = { + enable = true; + enableZshIntegration = true; + nix-direnv.enable = true; + }; +} diff --git a/users/megan/home/cli/git.nix b/users/megan/home/cli/git.nix new file mode 100644 index 0000000..11a4e33 --- /dev/null +++ b/users/megan/home/cli/git.nix @@ -0,0 +1,12 @@ +{ + programs.git = { + enable = true; + userEmail = "mousikos112@gmail.com"; + userName = "megan"; + extraConfig = { + pull.rebase = true; + color.ui = true; + }; + lfs.enable = true; + }; +} diff --git a/users/megan/home/cli/zsh.nix b/users/megan/home/cli/zsh.nix new file mode 100644 index 0000000..4b6a5e9 --- /dev/null +++ b/users/megan/home/cli/zsh.nix @@ -0,0 +1,31 @@ +{ + programs.zsh = { + enable = true; + syntaxHighlighting.enable = true; + history.size = 10000; + oh-my-zsh = { + enable = true; + plugins = [ + "git" + "docker" + "docker-compose" + "colored-man-pages" + "rust" + "systemd" + "tmux" + "ufw" + "z" + ]; + }; + shellAliases = { + "lrt" = "eza --icons -lsnew"; + "ls" = "eza"; + "ll" = "eza --long --group"; + "la" = "eza --all"; + + "rspace" = "'for f in *\ *; do mv \"$f\" \"\${f// /_}\"; done'"; + "rebuild" = "sudo nixos-rebuild switch --flake /home/richie/dotfiles#$HOST"; + "nix-test" = "nixos-rebuild test --flake /home/richie/dotfiles"; + }; + }; +} diff --git a/users/megan/home/global.nix b/users/megan/home/global.nix new file mode 100644 index 0000000..8c17056 --- /dev/null +++ b/users/megan/home/global.nix @@ -0,0 +1,18 @@ +{ config, ... }: +{ + imports = [ + ./cli + ./programs.nix + ]; + + programs = { + home-manager.enable = true; + git.enable = true; + }; + + home = { + username = "megan"; + homeDirectory = "/home/${config.home.username}"; + stateVersion = "24.05"; + }; +} diff --git a/users/megan/home/programs.nix b/users/megan/home/programs.nix new file mode 100644 index 0000000..8e38d1e --- /dev/null +++ b/users/megan/home/programs.nix @@ -0,0 +1,42 @@ +{ pkgs, ... }: +{ + home.packages = with pkgs; [ + # cli + bat + btop + eza + fd + ffmpegthumbnailer + fzf + git + gnupg + imagemagick + jq + ncdu + neofetch + ouch + p7zip + poppler + rar + ripgrep + starship + tmux + unzip + yazi + zoxide + # system info + hwloc + lynis + pciutils + smartmontools + usbutils + # networking + iperf3 + nmap + wget + # python + poetry + python313 + ruff + ]; +} diff --git a/users/megan/systems/jeeves.nix b/users/megan/systems/jeeves.nix new file mode 100644 index 0000000..6bbef61 --- /dev/null +++ b/users/megan/systems/jeeves.nix @@ -0,0 +1,5 @@ +{ + imports = [ + ../home/global.nix + ]; +} diff --git a/users/secrets.yaml b/users/secrets.yaml index 099d422..17f5a18 100644 --- a/users/secrets.yaml +++ b/users/secrets.yaml @@ -1,10 +1,8 @@ richie_password: ENC[AES256_GCM,data:DMi3M8aqrQ60APIofr8wJMh+VZ14hLRxz6jWZgzswr0pV/QVSX53ShBFr90ruO3mucOLYv0l+bI31covfqMAhXWBJp9wUgtC2Q==,iv:qgtn30hZfIL4dBnQSLkjbo7zPJA4m9TR0f52sTFc0v4=,tag:ydLbcGyXjv0fE+4b5ECX5w==,type:str] gaming_password: ENC[AES256_GCM,data:i692UsQaCOjE4V1y9d8yYDlK+TRMIprCHJkhl1UBZRMqe9a2LTUtmbbn/xlCYQd2tADJvn+dkx1jLfV4CqaqWOj5YSUFfpgsEw==,iv:3Y7hXQcmpzNN7hF+BDvO52uFB4o5D0dHvxemJ0ZoSIM=,tag:zzLGNDVAMCs2GPMqXp2BtQ==,type:str] +megan_password: ENC[AES256_GCM,data:Udrs9OWFI2TDM1yxRwfy7uiONh1G3Mr9HabwpmRykp1Xw9KK+q245nxN7QQbR0AiTCyyyivhn6GB2+DvBBY/6UrN5iGs+LaXgg==,iv:n02HzE8jvWM5xDfaPB9BHxtfoAZQ/Tk80XuySY2NyoU=,tag:L9wPVy7zt6mp09qWhzdLpg==,type:str] +gcw_password: ENC[AES256_GCM,data:T5CliWyyw4igunGRokOW7dNTOQ7DbOhM4gLa8YN4gbVLEVU7n3jxAVF9Uy9zM7LBBqdLvyXnqGzC1HBSBmE+pKBV7YIN3aQkng==,iv:SLq4aeLHdwfq0+A4N6UO4Dz7oBoC0ZDKBr74hheHQFw=,tag:4a71PZcyzoWjOmYEPx07ag==,type:str] sops: - kms: [] - gcp_kms: [] - azure_kv: [] - hc_vault: [] age: - recipient: age1u8zj599elqqvcmhxn8zuwrufsz8w8w366d3ayrljjejljt2q45kq8mxw9c enc: | @@ -51,8 +49,7 @@ sops: UzQzWEFtSDJwR201cmZoeXh5T0RmSk0KWLOpw5cWbtnfVP/ISa7n1vZchoD+nxmn 7yr7igpEIro0Sd238KinOQYswVaT0NHB9p1dSW/mN+aGQliSNLzkDQ== -----END AGE ENCRYPTED FILE----- - lastmodified: "2025-01-07T20:13:43Z" - mac: ENC[AES256_GCM,data:Q5fmv+MRVYGUQ4j+28CcGWHmgT1178N+haVS9xa0c99OKuPZdfSndAG0QVDhh/jYq+7zXs6zzLtBjB+egkoDfxJXfJOmg3E46UMO3vDHaEcIZD16ZbWJaz4Z/+yabqhDURKtgfGiu4xPv3OtGbwcP5kud17WcHNfY/LT+Y+LSD8=,iv:y3K3kCroIh+RTplUe4tM8B9rbLgIHCbE6FJawngam8Q=,tag:2VTIWlLp4cOwm18BfIlz5g==,type:str] - pgp: [] + lastmodified: "2025-06-05T00:52:15Z" + mac: ENC[AES256_GCM,data:FVj9SmI6uq5ujIX3NwFSLcappRIX0K1U/GXks4Wj0gJH//Tqo5Ur07+WdE5JNmHdS1gXW34RhzFmEbQ9KR2OoP8cfTG+a7qCftzEQbV5aBBEMxstsl48TLtRTwRuSrEnVOHh/0EfFOkXTUO/rVS4jDmd57eAB6OBJQePQk+P+0Q=,iv:P1aeFC+6xG4Koph0Dynwek/861OsH1asui3qtpu1JUI=,tag:1RYayU758c+yAULOgQuWgw==,type:str] unencrypted_suffix: _unencrypted - version: 3.9.2 + version: 3.10.2