!yUrHuDcxUngfTlDbiy:matrix.org

flakelight

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

Load older messages


SenderMessageTime
1 Mar 2026
@accelbread:matrix.orgaccelbreadHuh, overlays are applying properly. Its just the lib attr that isnt working10:52:18
@accelbread:matrix.orgaccelbreadhome-manager is doing something weird with lib10:52:35
@accelbread:matrix.orgaccelbread
--- a/flake.nix
+++ b/flake.nix
@@ -24,7 +24,7 @@
         ];
 
         withOverlays = [
-          (self: super: { lib = super.lib.recursiveUpdate super.lib { lunik1.myTrue = true; }; })
+          (self: super: { lib = super.lib.extend (final: prev: { lunik1.myTrue = true; }); })
         ];
       }
     );

lunik1: with above change it works. Home manager uses extend to add stuff to lib. recursiveUpdate doesnt update the extend function so changes get lost with home-manager's extension

11:29:36
@accelbread:matrix.orgaccelbreadI could put a safeguard in flakelight that fixes up extend on lib before passing to home-manager, hmm11:31:09
@accelbread:matrix.orgaccelbreadthough need to see if that could break stuff11:31:27
@lunik1:lunik.onelunik1could just warn abut it for now if that's a concern?20:39:19
@lunik1:lunik.onelunik1and thanks!20:39:26
@lunik1:lunik.onelunik1
A function that applies patches onto the nixpkgs library. Usage is discouraged for most scenarios.

🙃
20:43:23
@lunik1:lunik.onelunik1 Unfortunately, using extends does not seem to compose well. Setting withOverlays to
        withOverlays = [
          (self: super: { lib = super.lib.extend (self: super: { lunik1.myTrue = true; }); })
          (self: super: { lib = super.lib.extend (self: super: { lunik1.myOtherTrue = true; }); })
        ];
means my configurations can no longer see myTrue.
21:03:34
@lunik1:lunik.onelunik1 Unfortunately, using extends does not seem to compose well. Setting withOverlays to
withOverlays = [
          (self: super: { lib = super.lib.extend (self: super: { lunik1.myTrue = true; }); })
          (self: super: { lib = super.lib.extend (self: super: { lunik1.myOtherTrue = true; }); })
        ];
means my configurations can no longer see myTrue.
21:03:42
2 Mar 2026
@accelbread:matrix.orgaccelbread yeah, extend is just applying an overlay, so the second one is replacing the whole lunik1 attr 00:00:35
@accelbread:matrix.orgaccelbreadyou'd need to do the merging thing inside of the lib overlay00:01:35
@accelbread:matrix.orgaccelbreadprobably discouraged since nested overlays is annoying. but home-manager is using it00:02:59
@accelbread:matrix.orgaccelbreadNot sure if warning would be possible; would need to detect lib was modified without extend00:03:29
@lunik1:lunik.onelunik1is this just the wrong way to pass common functions to all my system/home configurations?16:40:19
3 Mar 2026
@accelbread:matrix.orgaccelbreadyeah, modifying lib is a bit of a minefield so I usually add my own attr. You could either add your own personal lib attr to packages, or use a module to make it a module argument for nixos/home configs03:26:41
4 Mar 2026
@accelbread:matrix.orgaccelbreadby the way, I'll be at SCaLE if anyones there and wants to say hi09:08:07
8 Aug 2025
@0x4a6f:nixos.dev0x4A6F joined the room.07:02:20
14 Sep 2025
@emma:rory.gayEmma [it/its] joined the room.08:39:50
15 Sep 2025
@bestlem:matrix.org@bestlem:matrix.org left the room.10:22:07
18 Sep 2025
@niclas:overby.meNiclas Overby Ⓝimage.png
Download image.png
10:21:01
@niclas:overby.meNiclas Overby Ⓝ Hi accelbread !
Have you considered supporting something like this in Flakelight, so that input overlays can be moved to the withOverlays folder?
10:22:56
@niclas:overby.meNiclas Overby ⓃAnd actually the same for lib, so you can use pkgs in lib10:25:48
@niclas:overby.meNiclas Overby Ⓝ* And actually the same for lib, so you can use pkgs in the lib folder10:27:02
@accelbread:matrix.orgaccelbreadthat should already work, right?14:36:21
@niclas:overby.meNiclas Overby ⓃIt seems to cause an infinite recursion14:39:24
@niclas:overby.meNiclas Overby Ⓝimage.png
Download image.png
14:39:26
@accelbread:matrix.orgaccelbreadAh, I see. I'll take a look14:41:40
@accelbread:matrix.orgaccelbread

interestingly, something like the following in nix/withOverlays/default.nix works:

final: prev: (prev.lib.composeManyExtensions [
  prev.inputs.nixgl.overlays.default
  prev.inputs.emacs-overlay.overlays.package
  prev.inputs.self.overlays.overrides
  prev.inputs.self.overlays.lix
]) final prev

So computing the module arguments is triggering evaluation of withOverlays... hmm

15:10:09
@niclas:overby.meNiclas Overby Ⓝ

Does it make sense that this is supported?: (How does Flakelight know whether it is an overlay or a function to setup multiple overlays, like in my example ?)

withOverlays = overlay; 

Shouldn't it only support?:

withOverlays = [overlay, ...];
15:18:28

Show newer messages


Back to Room ListRoom Version: 10