kore / nixos / roles / workstation.nix44 lines · 1198B · raw
1{ inputs, outputs, config, pkgs, lib, ... }:
2
3let
4 roleName = "workstation";
5 roleEnabled = lib.elem roleName config.kore.currentHost.roles;
6in {
7 imports = [ inputs.home-manager.nixosModules.home-manager ];
8
9 config = lib.mkMerge [{} (lib.mkIf roleEnabled {
10 home-manager = {
11 useGlobalPkgs = true;
12 useUserPackages = true;
13 extraSpecialArgs = { inherit inputs outputs; };
14
15 users.lostduk = outputs.homeConfigurations.${config.networking.hostName};
16 };
17
18 systemd.services.wipe-trash = {
19 restartIfChanged = false;
20 wantedBy = [ "multi-user.target" ];
21 serviceConfig = {
22 Type = "oneshot";
23 RemainAfterExit = true;
24 ExecStart = pkgs.writeShellScript "" ''
25 set -e
26
27 find '/home/lostduk' -mindepth 1 -maxdepth 1 \
28 ! -name 'documents' \
29 ! -name '.gnupg' \
30 ! -name '.password-store' \
31 ! -name '.config' \
32 -exec rm -r {} +
33
34 if [ -d /home/lostduk/.config ]; then
35 find /home/lostduk/.config -mindepth 1 -maxdepth 1 \
36 ! -name 'opencode' \
37 -exec rm -r {} +
38 fi
39 '';
40 };
41 };
42 })];
43}
44