14 Dec 2024 |
| ren joined the room. | 18:17:03 |
31 Dec 2024 |
| subfractal joined the room. | 06:07:23 |
1 Jan 2025 |
| NixOS Moderation Botchanged room power levels. | 14:26:09 |
2 Jan 2025 |
| Oluwapelumi Adeosun joined the room. | 10:15:34 |
| error_pro joined the room. | 10:42:45 |
7 Jan 2025 |
| Renato Trevisan set a profile picture. | 21:58:24 |
15 Feb 2025 |
| BenjB83 joined the room. | 10:17:49 |
| BenjB83 changed their display name from BenjamĂn Buske to BenjB83. | 10:43:33 |
21 Feb 2025 |
| clay53 joined the room. | 01:12:47 |
15 Mar 2025 |
| galactic_starfish joined the room. | 03:02:32 |
25 Apr 2025 |
| Marek RychlĂ˝ joined the room. | 08:58:08 |
28 Apr 2025 |
| nicoty joined the room. | 18:54:23 |
9 Jun 2025 |
| SigmaSquadron joined the room. | 13:14:45 |
11 Jun 2025 |
| Zhenxing He joined the room. | 09:41:35 |
Zhenxing He | Hi, How can I extend flakelight to support a new way of configuring nixos system. For example, I want to add a new directory hosts under nix directory, and also adding some new attributes not current supported. I think I need to add some new options for the host configuration and functions to convert the host configuation to nixos configuration supported by flakelight, but I don't have a clue how to do this. Any help would be greatly appreciated! | 09:49:20 |
Zhenxing He | Also thank you for the great work, I'm new to nix, flakelight is the best flake module library I found. | 09:52:52 |
accelbread | Hi, that should totally be possible. I'll put together a quick example | 15:18:23 |
accelbread | In your flake.nix you can import a module that adds your options (can also just directly add but a module is probably cleaner):
{
inputs.flakelight.url = "github:nix-community/flakelight";
outputs = { flakelight, ... }:
flakelight ./. {
imports = [ ./nix/flakelightModules/my_module.nix ];
};
}
Then in your module file, you can add options and config using them (same as for nixos or home-manager modules but setting the flakelight options):
{ config, lib, src, flakelight, ... }:
let
inherit (lib.types) lazyAttrsOf any;
in
{
options = {
hosts = mkOption {
type = lazyAttrsOf any;
default = {};
};
};
config = {
nixosConfigurations = fnThatConvertsHostsToNixosConf config.hosts;
};
}
| 17:24:56 |
accelbread | this adds a hosts option to flakelight. The loading from ./nix/hosts will work automatically. | 17:25:54 |
accelbread | * this adds a hosts option to flakelight. The loading from ./nix/hosts/ will work automatically. | 17:26:03 |
accelbread | Theres some docs on using the Nix module system here: https://nixos.org/manual/nixos/stable/#sec-writing-modules
Also looks like some docs here: https://nix.dev/tutorials/module-system/index.html | 17:29:15 |
accelbread | Feel free to ask more questions, and I can help with more specifics | 17:31:13 |
Zhenxing He | Thank you for the quick response, it works like a charm! I had thought I might need to use the extend or extraModules of mkFlake, what are those for and how to use them? | 23:39:38 |
12 Jun 2025 |
accelbread | Those are intended for making flakes providing project integration with flakelight, i.e. stuff like https://github.com/accelbread/flakelight-rust or https://github.com/accelbread/flakelight-zig | 01:46:15 |