18 Sep 2025 |
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 |
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 expects a list rather than an attribute set. | 10:55:55 |
Niclas Overby Ⓝ | * This layout will 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? | 10:56:12 |
accelbread | hmm, i'll have to look into it; not sure if the module system type has enough info | 17:32:31 |
accelbread | or could be another option like for which should be imported as paths | 17:34:34 |
accelbread | maybe i can extend the option module with some sort of "import type" | 17:36:27 |
Niclas Overby Ⓝ | In reply to @accelbread:matrix.org maybe i can extend the option module with some sort of "import type" Yeah would be awesome! | 20:16:28 |
Niclas Overby Ⓝ | * This layout will not work, since with-overlays should result in a list rather than an attribute set.
Would it be possible to change Flakelight, so you can decide whether a directory should be treated as a list, rather than an attribute set?
| 20:17:30 |
20 Sep 2025 |
accelbread | https://github.com/nix-community/flakelight/commit/0326f2bf133b7f83ded8044f11b609ee96e83082
nixDirAliases are now merged when loading | 07:51:50 |
Niclas Overby Ⓝ | Wow, thank you so much! | 18:31:06 |
accelbread | https://github.com/nix-community/flakelight/commit/3f5617f2ff25b9349e11312dd84bc9aaaebb7194
List-type options can now be loaded as well | 21:01:51 |