+12
-2
flake.nix
+12
-2
flake.nix
···
19
19
}
20
20
)
21
21
);
22
+
dumb-manager = import ./lib/dumb-manager.nix;
22
23
in
23
24
{
24
25
nixosConfigurations = {
···
31
32
};
32
33
};
33
34
packages = forAllSystems (pkgs: {
34
-
# Too lazy to do callPackage...
35
-
mac-home = (import ./home/mac) pkgs;
35
+
# mac-home = (import ./home/mac) {inherit pkgs;};
36
+
mac-home = dumb-manager.configuration {
37
+
inherit pkgs nixpkgs;
38
+
module = ./home/mac;
39
+
};
36
40
});
41
+
# apps = forAllSystems (pkgs: {
42
+
# update-links = {
43
+
# type = "app";
44
+
# program = "${self.packages.${pkgs.system}.update-links}";
45
+
# };
46
+
# });
37
47
formatter = forAllSystems (pkgs: pkgs.nixfmt-rfc-style);
38
48
};
39
49
}
+5
-5
home/mac/default.nix
+5
-5
home/mac/default.nix
+20
lib/dumb-manager.nix
+20
lib/dumb-manager.nix
···
1
+
{
2
+
configuration =
3
+
{
4
+
pkgs,
5
+
nixpkgs,
6
+
module,
7
+
}:
8
+
let
9
+
cfg = (import module) { inherit pkgs; };
10
+
inherit (cfg) homeDirectory;
11
+
update-links = import ./update-links.nix;
12
+
packages = (cfg.packages or [ ]) ++ [
13
+
(update-links { inherit pkgs nixpkgs homeDirectory; })
14
+
];
15
+
in
16
+
pkgs.buildEnv {
17
+
name = "dumb-manager";
18
+
paths = packages;
19
+
};
20
+
}
+33
lib/update-links.nix
+33
lib/update-links.nix
···
1
+
{
2
+
nixpkgs,
3
+
pkgs,
4
+
homeDirectory,
5
+
}:
6
+
let
7
+
registry = {
8
+
flakes = [
9
+
{
10
+
exact = true;
11
+
from = {
12
+
id = "n";
13
+
type = "indirect";
14
+
};
15
+
to = {
16
+
path = "${nixpkgs}";
17
+
type = "path";
18
+
};
19
+
}
20
+
];
21
+
version = 2;
22
+
};
23
+
registryFile = pkgs.writeTextFile {
24
+
name = "registry.json";
25
+
destination = "/.config/nix/registry.json";
26
+
text = builtins.toJSON registry;
27
+
};
28
+
in
29
+
pkgs.writeShellScriptBin "update-links" ''
30
+
#!/usr/bin/env bash
31
+
mkdir -p ${homeDirectory}/.config/nix
32
+
ln -sf ${registryFile}/.config/nix/registry.json ${homeDirectory}/.config/nix/registry.json
33
+
''