nix machine / user configurations
1{ 2 config, 3 pkgs, 4 lib, 5 tlib, 6 inputs, 7 ... 8}: 9let 10 l = lib // builtins; 11 12 signKeyText = builtins.readFile ../../secrets/yusdacra.key.pub; 13 personal = import ../../personal.nix; 14 name = personal.name; 15 email = personal.emails.primary; 16in 17{ 18 imports = 19 let 20 modulesToEnable = l.flatten [ 21 [ 22 "zoxide" 23 "fzf" 24 "direnv" 25 "nushell" 26 "tailscale" 27 ] 28 # dev stuff 29 [ 30 "helix" 31 "git" 32 "ssh" 33 ] 34 ]; 35 in 36 l.flatten [ 37 "${inputs.agenix}/modules/age-home.nix" 38 ../../modules/persist/null.nix 39 (tlib.prefixStrings "${inputs.self}/users/modules/" modulesToEnable) 40 ./nsid-tracker.nix 41 ]; 42 43 systemd.user.settings.Manager.DefaultEnvironment = { 44 PATH = "${pkgs.coreutils-full}/bin:$PATH"; 45 }; 46 47 age.identityPaths = [ "${config.home.homeDirectory}/.ssh/id_ed25519" ]; 48 home = { 49 homeDirectory = "/home/dusk"; 50 username = "dusk"; 51 stateVersion = "25.11"; 52 # shell 53 shell.enableShellIntegration = true; 54 shellAliases = { 55 ctl = "systemctl --user"; 56 jtl = "journalctl --user"; 57 }; 58 }; 59 60 age.secrets.tailscaleAuthKey = { 61 file = ../../secrets/develMobiTailscaleAuthKey.age; 62 mode = "600"; 63 }; 64 services.tailscale = { 65 enable = true; 66 controlServer = "https://vpn.gaze.systems"; 67 authKeyFile = config.age.secrets.tailscaleAuthKey.path; 68 extraUpFlags = [ "--hostname=dusk-devel-mobi" ]; 69 }; 70 71 programs = { 72 bash = { 73 enable = true; 74 enableCompletion = true; 75 }; 76 tealdeer.enable = true; 77 git = { 78 userName = name; 79 userEmail = email; 80 extraConfig = { 81 gpg.format = "ssh"; 82 commit.gpgsign = true; 83 user.signingkey = signKeyText; 84 }; 85 }; 86 }; 87}