NixOS Module System | 150 Members | |
| 30 Servers |
| Sender | Message | Time |
|---|---|---|
| 17 Apr 2024 | ||
In reply to @nbp:mozilla.orghah thanks! If I had more time, mkIf would have probably been the next topic.Also link to all the lessons if you want to share -> https://nixos-modules.nix.みんな/ | 19:40:02 | |
| 18 Apr 2024 | ||
I guess, I might be completely biais into introducing mkIf early, as it feels like a must have for implementing modules in NixOS, but I think your plan might actually make more sense from a user point of view and might be better to target non-developer, who might appreciate the lack of conditional. | 00:44:32 | |
* I guess, I might be completely biais into introducing mkIf early, as it feels like a must have for implementing modules in NixOS. On the other hand I think your plan might actually make more sense from a user point of view and might be better to target non-developer, who might appreciate the lack of conditional. | 00:45:09 | |
In reply to @nbp:mozilla.org I'd say everything I have in the "Getting Started" section must come first as it lays the foundation for how a module can be created. Anything after that is fair game. Does documentation need to come so early? Nah but it's a quick one and a good thing to reinforce that people should document their modules well. I had the types section in there because I wanted to get to submodules as it is the most ubiquitous and a very powerful type.
| 02:05:29 | |
The only issue I see with introducing mkIf early is that there needs to be a sufficient foundation so that you don't introduce anything extra. All the lessons are in an order such that only 1 or 2 new things are introduced. My hope is that this keeps the reader focused on what is currently trying to be taught and they don't have to juggle any extra information in their head. | 02:07:23 | |
| 19 Apr 2024 | ||
| infinisil: https://github.com/NixOS/nixpkgs/pull/305334#issuecomment-2067069655 can you answer this? | 18:44:37 | |
In reply to @hexa:lossy.network☑️ | 18:50:31 | |
| thansk! | 18:50:36 | |
| * thanks! | 18:50:41 | |
| 22 Apr 2024 | ||
| Is there a way I can circumvent the Two attributes I've implemented so far are Trying to think of a good solution but coming up empty. Any ideas? | 06:19:34 | |
| You probably want either the anything option type, or to define your own types | 08:29:40 | |
| Why using submodules if you have only a single instance of each attribute? | 10:28:26 | |
| You can declare options to be unused: https://github.com/NixOS/nixpkgs/blob/8e54038847aa80ee2b1ffa9e313b0ab918f1903c/lib/options.nix#L228-L244 But I do not think this answer your problem. One example of usage of it is from this PR: https://github.com/NixOS/nixpkgs/pull/152785/files | 10:36:38 | |
Maybe you can use the type nullOr and have a default value of null. | 10:37:54 | |
mkDefault should be delayed, like mkIf, so mapAttrs (name: mkDefault) should be replaceable by mkDefault.https://github.com/NixOS/nixpkgs/blob/master/lib/modules.nix#L882 | 12:24:56 | |
| nbp Nah that's not the same. The former will merge attrs with the default priority, while the latter will override it completely | 12:27:38 | |
| nbp: The reason for using submodules is because html attributes can be used in different html elements. So I want a reusable piece of code. The other reason is that I can define how html attributes are called in a standard way using the I think I got something working using | 15:45:13 | |
| Related but different question. I had trouble accessing the For example, I define an option At the top level, I can access | 15:49:55 | |
isDefined should not be used most of the time, as this is kind of an internal aspect, and it can only be used within the module itself.Adding an options argument attribute to the submodule would let you query the option tree of the submodule. | 16:06:40 | |
In reply to @nbp:mozilla.orgYeah that's how I was doing it; defining the option argument in the submodule. | 16:07:56 | |
| There is no way to get the option declaration out of a submodule, at least not without changing the submodule type. | 16:09:35 | |
| 23 Apr 2024 | ||
| Alright I've done something extremely silly and cursed. https://github.com/djacu/nix2html also featuring the new It's barely got any html elements or attributes so far so don't expect the world. | 05:15:23 | |
| Finally, we can subsume the entire internet into pure Nix | 05:16:01 | |
djacu: Ok, I am going to be pedantic :PlistOf is not modular, thus someone who might want to extend an existing "page" would have to completely replace the template describe in one of the imported modules.At first I will suggest using the DOM names such as firstChild, nextSibling to describe to tree of DOM elements. | 09:47:16 | |
Also, one might want to use shortcuts, such as in JS with getElementById("id"), we could imagine an types.attrsOf types.submodule dom.element; where the attribute name corresponds to the id, and where the definitions are forwarded to every submodule as long as the id attribtue is equal. | 09:49:30 | |
This would add tons of mkIf … but only the one with the matching identifier would be extended with the module system. | 09:50:34 | |
* djacu: Ok, I am going to be pedantic :PlistOf is not modular, thus someone who might want to extend an existing "page" would have to completely replace the template describe in one of the imported modules.At first I will suggest using the DOM names such as firstChild, nextSibling to describe the tree of DOM elements. | 10:48:37 | |
| nice try nbp you almost got me thinking seriously about about my meme project ;P | 13:38:06 | |
| 24 Apr 2024 | ||
| 14:38:14 | ||
| 14:40:57 | ||