1
0

thomas.nix 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  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. path = [ pkgs.git pkgs.nix ];
  31. script = ''
  32. if [ "$USER" = "thomas" ] && [ ! -d "$HOME/workspace/control/home" ]; then
  33. echo "Setting up home environment..."
  34. mkdir -p "$HOME/workspace/control"
  35. cd "$HOME/workspace/control"
  36. ${git} clone https://codeberg.org/control/home.git
  37. cd home
  38. ${nix} run github:nix-community/home-manager -- switch -b backup --flake .#thomas@odin
  39. fi
  40. '';
  41. };
  42. }