!yUrHuDcxUngfTlDbiy:matrix.org

flakelight

37 Members
https://github.com/nix-community/flakelight12 Servers

Load older messages


SenderMessageTime
2 Jan 2025
@hashphoenix:matrix.orgOluwapelumi Adeosun joined the room.10:15:34
@error_pro:matrix.orgerror_pro joined the room.10:42:45
7 Jan 2025
@renato-trevisan:matrix.orgRenato Trevisan set a profile picture.21:58:24
15 Feb 2025
@benjb83:matrix.orgBenjB83 joined the room.10:17:49
@benjb83:matrix.orgBenjB83 changed their display name from BenjamĂ­n Buske to BenjB83.10:43:33
21 Feb 2025
@clay53:claytonhickey.meclay53 joined the room.01:12:47
15 Mar 2025
@galactic_starfish:kde.orggalactic_starfish joined the room.03:02:32
25 Apr 2025
@marek:rychly.orgMarek RychlĂ˝ joined the room.08:58:08
28 Apr 2025
@nicoty:kde.orgnicoty joined the room.18:54:23
9 Jun 2025
@sigmasquadron:matrix.orgSigmaSquadron joined the room.13:14:45
11 Jun 2025
@hezhenxing:matrix.orgZhenxing He joined the room.09:41:35
@hezhenxing:matrix.orgZhenxing HeHi, 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
@hezhenxing:matrix.orgZhenxing HeAlso thank you for the great work, I'm new to nix, flakelight is the best flake module library I found.09:52:52
@accelbread:matrix.orgaccelbreadHi, that should totally be possible. I'll put together a quick example15:18:23
@accelbread:matrix.orgaccelbread

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:matrix.orgaccelbread this adds a hosts option to flakelight. The loading from ./nix/hosts will work automatically. 17:25:54
@accelbread:matrix.orgaccelbread * this adds a hosts option to flakelight. The loading from ./nix/hosts/ will work automatically. 17:26:03
@accelbread:matrix.orgaccelbreadTheres 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.html17:29:15
@accelbread:matrix.orgaccelbreadFeel free to ask more questions, and I can help with more specifics17:31:13
@hezhenxing:matrix.orgZhenxing HeThank 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:matrix.orgaccelbreadThose 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-zig01:46:15
@accelbread:matrix.orgaccelbreadIts used here: https://github.com/nix-community/flakelight/blob/master/nix/flakelightModules/flakelightModule.nix01:46:36
@accelbread:matrix.orgaccelbread Those other repos use this module so that instead of calling flakelight ./. { imports = [ flakelight-zig.flakelightModules.default ], ... } in the consuming flakes, you can instead call flakelight-zig ./. { ... } 01:48:21
@accelbread:matrix.orgaccelbreadextend takes mkFlake and returns a version that automatically includes some modules01:49:13
@accelbread:matrix.orgaccelbread* extend takes mkFlake and returns a mkFlake function that automatically includes some modules01:49:32
@accelbread:matrix.orgaccelbreadextraModules is part of implementation of extend01:50:46
@accelbread:matrix.orgaccelbreadSo not really something consumers of flakelight really need to touch01:51:46
@accelbread:matrix.orgaccelbreadI should probably add to the comment where those are defined01:52:23
@hezhenxing:matrix.orgZhenxing HeThat's a lot of information, thanks a lot, it looks very cool, I actually have tried writing github:hezhenxing/flakelight-haskell, but I do not fully understand it when I wrote it. Just copy the others.01:57:15
@accelbread:matrix.orgaccelbreadoh cool! Yeah, copying from others should be fine for that. If you get the haskell project building =working, feel free to add it to the flakelight readme as an available module01:58:59

Show newer messages


Back to Room ListRoom Version: 10