thomas.nix 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  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.user.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 on boot";
  23. after = [ "network-online.target" ];
  24. wants = [ "network-online.target" ];
  25. wantedBy = [ "default.target" ];
  26. serviceConfig = {
  27. Type = "oneshot";
  28. RemainAfterExit = true;
  29. };
  30. script = ''
  31. if [ "$USER" = "thomas" ] && [ ! -d "$HOME/workspace/control/home" ]; then
  32. echo "Setting up home environment..."
  33. mkdir -p "$HOME/workspace/control"
  34. cd "$HOME/workspace/control"
  35. ${git} clone [email protected]:control/home
  36. cd home
  37. ${nix} run github:nix-community/home-manager -- switch --flake .#thomas@odin
  38. fi
  39. '';
  40. };
  41. }