| 18 Sep 2025 |
accelbread | will need {inputs, ...}: instead of just {inputs}: | 17:03:34 |
accelbread | Is there an issue with importing lib from nix/lib/default.nix? It already can take module args | 17:11:26 |
Niclas Overby Ⓝ | No I just assumed it didn't work either. | 19:06:40 |
Niclas Overby Ⓝ | Nice thanks! :) | 19:07:19 |
Niclas Overby Ⓝ | How is nixDirAliases suppose to work?
Is it really allowed to have multiple aliases, so you can e.g. have multiple folders with packages definitions like:
nixDirAliases = {
packages = ["dir1" "dir2"];
};
| 19:09:49 |
Niclas Overby Ⓝ | * How is nixDirAliases suppose to work?
Is it really allowed to have multiple aliases, so you can e.g. have multiple folders with packages definitions like:
nixDirAliases = {
packages = ["dir1" "dir2"];
};
| 19:10:05 |
accelbread | Its intended to allow using "nixos" instead of "nixosConfigurations" and so on | 19:11:55 |
accelbread | so you can give alternative names for dirs for that attribute | 19:12:24 |
accelbread | first one will be used | 19:12:28 |
accelbread | so with nixDirAliases.foo = [ "bar" ] if theres no nix/foo.nix or nix/foo/ then nix/bar.nix and nix/bar/ will be checked and used equivalently | 19:13:55 |
Niclas Overby Ⓝ | But why is it a list then? | 19:14:27 |
accelbread | multiple aliases can exist, like if you wanted nixosConf to also work | 19:15:06 |
accelbread | nixDirAliases.foo = [ "bar" "baz" ] checks all of the foo, bar, and baz paths in order and uses the first one to set foo | 19:16:05 |
Niclas Overby Ⓝ | Oh makes sense, but it could also be useful, if you could have multiple aliases that merges together :) | 19:18:02 |
accelbread | hmm, yeah that could be possible | 19:19:13 |
accelbread | Do you have an example of how you'd use it? Like for multiple dirs of packages? | 19:20:24 |
Niclas Overby Ⓝ | Redacted or Malformed Event | 19:22:02 |
Niclas Overby Ⓝ | * . | 19:22:11 |
Niclas Overby Ⓝ | With this config:
nixDirAliases = {
packages = ["apps" "scripts"];
};
And this layout:
apps:
- app1: default.nix
- app2: default.nix
scripts:
- script1: default.nix
- script2: default.nix
Then app1, app2, script1, scrip2 will be set in packages
| 19:26:59 |
Niclas Overby Ⓝ | When I noticed that nixDirAliases took a list rather than a single string, I actually expected it to behave like this | 19:28:04 |
accelbread | I see. I'll see if I can make nixDirAliases clearer
for the merging directories usecase, I'd recommend having nix/packages.nix load the other directories; there is a function exported for this (importDir) so packages.nix could be:
{ flakelight, ...}: flakelight.importDir ./apps // flakelight.importDir ./scripts
Does that work for your use case?
| 19:33:20 |
accelbread | though making flakelight merge all aliases would also not break things, I think; will need to think over it a bit | 19:35:17 |
accelbread | it does make sense that having nixosConfigurations/foo.nix and nixos/bar.nix should end up with two systems | 19:37:06 |
accelbread | though would error on nixosConfigurations/foo.nix and nixos/foo.nix both existing | 19:37:46 |
accelbread | Yeah, I think it makes sense to have nixDirAliases load all the aliases and merge them | 19:40:35 |
Niclas Overby Ⓝ | * With this config:
nixDirAliases = {
packages = ["apps" "scripts"];
};
And this layout:
apps:
- app1: default.nix
- app2: default.nix
scripts:
- script1: default.nix
- script2: default.nix
Then app1, app2, script1, script2 will be set in packages
| 19:41:00 |
| 19 Sep 2025 |
Niclas Overby Ⓝ | My motivation for using Flakelight is to reduce boilerplate from flakes and importing Nix files, so in that sense it does not work :) | 08:35:23 |
Niclas Overby Ⓝ | Another design decision, I'm curious about, is whether all directories should be treated as attribute sets. E.g when creating withOverlays directory, it should actually result in a list rather than an attribute set. | 08:38:37 |
Niclas Overby Ⓝ |  Download image.png | 08:38:39 |
Niclas Overby Ⓝ | This layout will of course not work, since with-overlays should result in a list rather than an attribute set.
Could it be possible to change Flakelight, so you can decide whether a directory should be treated as a list, rather than an attribute set? | 08:41:03 |