diff --git a/features/bash.nix b/features/bash.nix index 619714f..8d4b021 100644 --- a/features/bash.nix +++ b/features/bash.nix @@ -13,10 +13,4 @@ clear;fastfetch ''; }; - - environment.systemPackages = with pkgs; [ - jump - devenv - fastfetch - ]; } diff --git a/features/common-pkgs.nix b/features/common-pkgs.nix index 5571b18..f7f2771 100644 --- a/features/common-pkgs.nix +++ b/features/common-pkgs.nix @@ -4,6 +4,7 @@ with pkgs; wget nil bash-language-server + btop devenv tmux ripgrep diff --git a/features/sops.nix b/features/sops.nix index db9ea66..5325397 100644 --- a/features/sops.nix +++ b/features/sops.nix @@ -1,18 +1,24 @@ { pkgs, config, ... }: +let + usr = if pkgs.stdenv.hostPlatform.isDarwin then "frank" else config.users.users.frank.name; + grp = if pkgs.stdenv.hostPlatform.isDarwin then "admin" else config.users.users.frank.group; + admgrp = if pkgs.stdenv.hostPlatform.isDarwin then "wheel" else "root"; +in { sops = { defaultSopsFile = ../.sops.yaml; age = { sshKeyPaths = [ ]; - keyFile = "/persist/sops/age/keys.txt"; + keyFile = + if pkgs.stdenv.isDarwin then "/usr/local/sops/age/keys.txt" else "/persist/sops/age/keys.txt"; }; secrets = { "password_hash" = { sopsFile = ../secrets/password-hash.yaml; owner = "root"; - group = "root"; + group = admgrp; mode = "0400"; neededForUsers = true; }; @@ -20,32 +26,48 @@ "personal_ssh_key_ed25519" = { sopsFile = ../secrets/personal-ssh-key.yaml; key = "personal_ssh_key_ed25519"; - owner = config.users.users.frank.name; - group = config.users.users.frank.group; + owner = usr; + group = grp; mode = "0400"; }; "personal_ssh_key_ed25519.pub" = { sopsFile = ../secrets/personal-ssh-key.yaml; key = "personal_ssh_key_ed25519_pub"; - owner = config.users.users.frank.name; - group = config.users.users.frank.group; + owner = usr; + group = grp; + mode = "0644"; + }; + + "sapphire_ssh_key_ed25519" = { + sopsFile = ../secrets/sapphire-ssh-key.yaml; + key = "sapphire_ssh_key_ed25519"; + owner = usr; + group = grp; + mode = "0400"; + }; + + "sapphire_ssh_key_ed25519.pub" = { + sopsFile = ../secrets/sapphire-ssh-key.yaml; + key = "sapphire_ssh_key_ed25519_pub"; + owner = usr; + group = grp; mode = "0644"; }; "work_ssh_key_rsa" = { sopsFile = ../secrets/work-ssh-key.yaml; key = "work_ssh_key_rsa"; - owner = config.users.users.frank.name; - group = config.users.users.frank.group; + owner = usr; + group = grp; mode = "0400"; }; "work_ssh_key_rsa.pub" = { sopsFile = ../secrets/work-ssh-key.yaml; key = "work_ssh_key_rsa_pub"; - owner = config.users.users.frank.name; - group = config.users.users.frank.group; + owner = usr; + group = grp; mode = "0644"; }; @@ -53,7 +75,7 @@ sopsFile = ../secrets/remotebuild-ssh-key.yaml; key = "remotebuild_ssh_key_rsa"; owner = "root"; - group = "root"; + group = admgrp; mode = "0400"; }; @@ -61,7 +83,7 @@ sopsFile = ../secrets/work-ssh-key.yaml; key = "work_ssh_key_rsa_pub"; owner = "root"; - group = "root"; + group = admgrp; mode = "0644"; }; }; diff --git a/features/zsh.nix b/features/zsh.nix new file mode 100644 index 0000000..4c36cd2 --- /dev/null +++ b/features/zsh.nix @@ -0,0 +1,15 @@ +{ _, ... }: +{ + programs.zsh = { + enable = true; + enableCompletion = true; + enableAutosuggestions = true; + enableSyntaxHighlighting = true; + + interactiveShellInit = '' + eval "$(jump shell)" + eval "$(devenv hook zsh)" + clear;fastfetch + ''; + }; +} diff --git a/home/frank.nix b/home/frank.nix index b4dfebb..5e69bf2 100644 --- a/home/frank.nix +++ b/home/frank.nix @@ -54,6 +54,7 @@ enable = true; initExtra = '' + eval "$(jump shell)" eval "$(devenv hook bash)" clear;fastfetch ''; @@ -65,6 +66,7 @@ enable = true; initContent = '' + eval "$(jump shell)" eval "$(devenv hook zsh)" clear;fastfetch ''; diff --git a/hosts/franks-macbook-pro/configuration.nix b/hosts/franks-macbook-pro/configuration.nix index 2f64efc..bceb066 100644 --- a/hosts/franks-macbook-pro/configuration.nix +++ b/hosts/franks-macbook-pro/configuration.nix @@ -1,19 +1,10 @@ -{ - pkgs, - ... -}: +{ _, ... }: { imports = [ ../shared/darwin.nix ]; environment = { - systemPackages = with pkgs; [ - bash-language-server - nil - devenv - ]; - shellAliases = { "nix-rebuild" = "sudo darwin-rebuild switch --flake /etc/nix-darwin/.#franks-macbook-pro"; }; diff --git a/hosts/shared/darwin.nix b/hosts/shared/darwin.nix index f440e1e..edd4d7c 100644 --- a/hosts/shared/darwin.nix +++ b/hosts/shared/darwin.nix @@ -3,6 +3,7 @@ imports = [ ./nix-package-manager.nix ../../features/sops.nix + ../../features/zsh.nix ]; # Only use homebrew for casks. @@ -11,33 +12,10 @@ # Enables Touch ID for sudo prompts. security.pam.services.sudo_local.touchIdAuth = true; - programs = { - zsh = { - enable = true; - enableCompletion = true; - enableAutosuggestions = true; - enableSyntaxHighlighting = true; - - interactiveShellInit = '' - eval "$(jump shell)" - eval "$(devenv hook zsh)" - clear;fastfetch - ''; - }; - }; - environment = { - shellAliases = import ../../features/aliases.nix { }; - variables = import ../../features/xdg.nix { }; - - systemPackages = with pkgs; [ - wget - btop - nerd-fonts.hack - devenv - ripgrep - fastfetch - ]; + shellAliases = import ../../features/aliases.nix { inherit pkgs; }; + variables = import ../../features/xdg.nix { inherit pkgs; }; + systemPackages = import ../../features/common-pkgs.nix { inherit pkgs; }; }; # Don't touch this unless needed. diff --git a/secrets/sapphire-ssh-key.yaml b/secrets/sapphire-ssh-key.yaml new file mode 100644 index 0000000..e8e83aa --- /dev/null +++ b/secrets/sapphire-ssh-key.yaml @@ -0,0 +1,17 @@ +sapphire_ssh_key_ed25519: ENC[AES256_GCM,data:8kUBJRztuqFguGr08ihphE7A2yZbUgMO2rPjMUEqyrVqOqVTJpZsE8cICvWr0sXOEuamIyF3IPS+9DTpqKmc+BpNKvwDwyEht9NtHML/9Jgwcd1GpO1w+DK4XbwJK+M1tdja5ZJxYJtr9J8nbXt+DdFpCB2KBU+0uakiW4efD+BLS9DfX47NinserdEaLbdXqPhF4h957YchkteB1xkyMhMbJqRMskZL2RRHYwxpNq2WjTBEVjFQnfWopBlMqnwMXeyUpdBI9TdL6vm+62upNiZ/nQbbzcbNt8cka9UzIWaaZvuz+jlj/OSip3t2HXXGZ1pWZ+i/R+tqEfGZAeVZet736UeZrO/ewASNEd9Nq0H3ywEpXNogbd4Y914EYr97OIU84W5MlaBkmCOn4S20wcezBjKsSIu/3T3tDr4qHayp+Cp5BnOwBGOrZI7xD3F2C7KYklWZT/fy/3R8O0DgAcez+9L2T6WR+0qqpzBgv7/g1lbIYdgIMfBpfhCmvKbokUwLHt/m4gG8C1XsDoH15ODtXYLopezWy8q2EkSPDgNIRqATnmJ0KgC98HLzxd2T,iv:SJfJTw151PUcDbMxAWCEiYit5GKa+XFJ2VCDzEBzKUo=,tag:1KD3okKVetESHIAaWW9QEQ==,type:str] +sapphire_ssh_key_ed25519_pub: ENC[AES256_GCM,data:iQaxf3M0HGtdm39OZ6RQoeicmuGxrIVIV6H600bhgayGSmd5Rc2aFeFgkC1wlsWhXukQg664pl2bNlexq+MCuOLye3s/ubBSCN35TTVfUAKHAfDZCH3HhEWtyjHksM+0bVurB6VLUaicLroxjELBKEH7,iv:RFG3qK0j52nGwHjFb5l0D1CBsJ6TtHGsVN0B1t1b5s4=,tag:AdIShzJa+uZSntonDFAYmg==,type:str] +sops: + age: + - enc: | + -----BEGIN AGE ENCRYPTED FILE----- + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBnOTRtYlovL3hxY1pRVVox + UlhpQUIzeWtQaS9FRWJTR2d3ZittRTZxVlJvCno0dExKV1JzMGFEeG1hOFFxaEVh + OFNPd1JRWENvd29PVWdUbkdJWkp1NG8KLS0tIEdyT001SnlTVHowKzRrR3VyMVNF + L25jWGlOeGg3SWplUHg0SUhZWlRCakEKWtqZbICLgJk4D60+FTiP5VVEVGoacGjy + Lax1PCDR38qUsVo2No5dPJEsKLDnJIzAafRGCN99mfn81GhpSmPBQA== + -----END AGE ENCRYPTED FILE----- + recipient: age1s6zlweaxqu6sldlhaxg24tqqwhcp7kvc3rr6h6895chk2ndaas6qdyj5gl + lastmodified: "2026-10-23T15:22:54Z" + mac: ENC[AES256_GCM,data:NHGb0Cp+XEns48DEBD2QT7P+lx51LXArXUWIE+QoWUAlb2SzqvvqpLdN6PJGpr95+S4IfBXzruf9EVILXoRqFolHvP8C9rnQBVtS3bIQK/A3Y+P5iKL3NLUd0z6WDxKaZIM2X55XNGZH8zKo7SEgVdQ0LRi1KdnZ1uP5KZEIJ60=,iv:JE0oSpfWSiG4LeXijU/Uk9zPQ4mWSPTZMvS9u+AyDck=,tag:0SrpuboXDwJ/suSsk/85qg==,type:str] + unencrypted_suffix: _unencrypted + version: 3.13.3