A basic template

Sure, but this is our license. We licensed it under AGPL (our default). We should talk to Pinea about changing that to MIT if we want to let Aux pull from it.

3 Likes

pr’ed a small C template based on the rust one

2 Likes

pr is ready, if anyone willing to review :eyes:

I can take a look to confirm the nix stuff but someone more well versed in C should also take a look

1 Like

I’m pretty aware of nix stuff, so i can take a look.

1 Like

Hopefully, it’s good enough :sweat_smile:

1 Like

Is there a need to split the flake into multiple files?
It seems to only add complexity to the template to me

It allows it to have old nix compatibility. that’s the main thing for me. Also prevents redeclaring the package a few times.

1 Like

Shouldn’t be default.nix file be eelco’s flake-compat?

That’s only for channels support.

What does this do?

 overlays.default = final: prev: {
   hello = final.callPackage ./default.nix {};
 };

this allows the user to consume the overlay and it will be added the nixpkgs list. so i could use enviroment.systemPackages = [ pkgs.hello ]; instead.

doesn’t this cause conflict with the nixpkgs’s hello pkgs?

The overlay replaces it, which is the point, it is usually used to replace older versions of a package with a newer one.

I had a thought related to this and figured I’d add it to this thread instead of starting a new one. I’m trying to get my thoughts down quickly - sorry if this post seems rushed!

tl;dr: Could we create basically mini-distro templates to help new folks get started more easily?

Full post:

I think a small template to help folks get up and running is still a good idea, but I’d also propose going bigger and creating complete system templates.

For instance, what if someone came to Aux looking to get a KDE desktop? We could tell them to check the wiki and search GitHub for other people’s examples, or we could have a NixOS template with a KDE module already configured as a module. Then, they could just add or uncomment something like aux.desktops.kde.enable = true. Same for Gnome, Hyperland, Sway, etc. These configs could also include Pipewire, bluetooth, maybe import nixos-hardware if there’s a way to check system attributes.

It’d basically just be a wrapper module that condenses common system options and boilerplate into a single (ideally) config option.

8 Likes

@jakehamilton If I start hacking on something, can I check it into the Labs repo? If not, I don’t mind creating a new repo.

I personally think this could be put it in the sig:docs templates repo under a new template, best to keep them in the same place. That or a new repository for all the options we want under the aux option namespace.

4 Likes

Initial version is available to play with, and here’s the PR. Would any other docs folks care to take a look and/or leave feedback?

4 Likes

Overall I love how this is looking, Some places I’m seeing a funky Unicode single quote, wondering if maybe a backtick (`) would be better?

3 Likes