blob: 4c0c4028b3ae08eb15deae31b591f026ad348237 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
{ flake, flakeInputs, userName, config, lib, ... }:
let
user = config.users.users.${userName};
in {
imports = with flake.nixosModules.userProfiles.${userName}; [
zsh
];
config = {
users.users.gkleen.group = "gkleen";
users.groups.gkleen = {};
systemd.tmpfiles.settings.home-directories."/persistent/${user.home}" = lib.mkForce {
v = {
mode = user.homeMode;
user = user.name;
inherit (user) group;
};
};
home-manager.users.${userName} = let sysConfig = config; in { config, ... }: {
imports = [
flakeInputs.nix-index-database.homeModules.nix-index
];
home.stateVersion = "26.05";
home.persistence."/persistent" = {
directories = [
"Downloads" "documents" "screenshots" "media"
];
};
programs.zsh.dirHashes = let
flakeHashes = lib.mapAttrs' (n: v: lib.nameValuePair (inputNames.${n} or n) (toString v)) flakeInputs;
inputNames = {
self = "nixos";
};
in flakeHashes // {
docs = "$HOME/documents";
dl = "$HOME/Downloads";
scrot = "$HOME/screenshots";
media = "$HOME/media";
};
programs.starship.settings = {
directory.substitutions = lib.mapAttrs' (name: value: let
value' = builtins.unsafeDiscardStringContext value;
value'' = if lib.hasPrefix "$HOME/" value' then "~" + lib.removePrefix "$HOME" value' else value';
in lib.nameValuePair value'' "~${name}"
) config.programs.zsh.dirHashes;
};
programs.nix-index.enable = true;
};
};
}
|