thomas.nix 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. { config, lib, pkgs, ... }:
  2. {
  3. users.users.thomas = {
  4. isNormalUser = true;
  5. extraGroups = [
  6. "wheel"
  7. "users"
  8. "storage"
  9. ];
  10. shell = config.programs.fish.package;
  11. hashedPasswordFile = config.age.secrets."odin/users/thomas".path;
  12. openssh.authorizedKeys.keys = [
  13. "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC5o7LT5wPYWgI8Mvr6RKOv+BcsbQgU7PCw2hheVu17alwF1uFUsAYV5BVQu+uv9uEm/UDsCNhfM6TwI0A1prdmtBz4pKiwXbj7fcdp6DcVOgTsPfawbXEpivtJvlhEatyTsR26MjHKnqpT0BxPvj6Ug6pvRkCYW5d2bWXiY9murmAX6Q5kSyNunkB8PdRTH+S47f7eOdCJY63VBOkkiG8M7XyPwFCDTYiHhbMZcejIdY9mB6kYnMQVRHDznQWiQxrcaE1fD/TY3db9GDcOVoo2aDBOZX7WT2+me67sU8dEK9+nSyhWDzBbEs8knu87ZlKPFwhl4slenRniKhbf22OpicXArtEcjEj0GyDJH5e+ZCIQ4eSQanA7TxnKFlDuaf+Qqx55UT+ya4vJJeik7nkzbRHaE9IoWhhiOaOnaN6kHIxuxB6z7EL3Gk7f78+I/qBaj5df6fgnXM3JBXKa5bRH2wqoSetJAo6EGpEgmU2huB1ktiGlO7BlF5XwSw6cb/KT7NSIXhncgLkCzsDVXxecVQv1FnPISBcp3+ti01ADVf2trgpPDbNTWV40Rgiefie0o2fc6KWAFfum1j5N3WWU+XVVmRjDmKKHiEJBLNKDAe0rQf+tryPW4c5GIN7aFoB+8dYFAuUyLd7Fu3vhZdmcckN5ryHunEc0dKPIiuoVZw=="
  14. ];
  15. };
  16. systemd.services.setup-home-manager =
  17. let
  18. git = lib.getExe' pkgs.git "git";
  19. nix = lib.getExe' pkgs.nix "nix";
  20. in
  21. {
  22. description = "Setup home-manager configuration for thomas";
  23. after = [ "network-online.target" ];
  24. wants = [ "network-online.target" ];
  25. wantedBy = [ "multi-user.target" ];
  26. serviceConfig = {
  27. Type = "oneshot";
  28. RemainAfterExit = true;
  29. User = "thomas";
  30. Group = "users";
  31. };
  32. path = [ pkgs.git pkgs.nix ];
  33. script = ''
  34. if [ ! -d "/home/thomas/workspace/control/home" ]; then
  35. echo "Setting up home environment..."
  36. mkdir -p "/home/thomas/workspace/control"
  37. cd "/home/thomas/workspace/control"
  38. ${git} clone https://codeberg.org/control/home.git
  39. cd home
  40. ${nix} run github:nix-community/home-manager -- switch -b backup --flake .#thomas@odin
  41. fi
  42. '';
  43. };
  44. }