kore / nixos / roles / workstation.nix39 lines · 1064B · 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 nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [
19 "claude-code"
20 ];
21
22 systemd.services.wipe-trash = {
23 restartIfChanged = false;
24 wantedBy = [ "multi-user.target" ];
25 serviceConfig = {
26 Type = "oneshot";
27 RemainAfterExit = true;
28 ExecStart = pkgs.writeShellScript "" ''
29 find '/home/lostduk' -mindepth 1 -maxdepth 1 \
30 ! -name 'documents' \
31 ! -name '.gnupg' \
32 ! -name '.password-store' \
33 -exec rm -r {} +
34 '';
35 };
36 };
37 })];
38}
39