Modular, context-aware and aspect-oriented dendritic Nix configurations. Discussions: https://oeiuwq.zulipchat.com/join/nqp26cd4kngon6mo3ncgnuap/ den.oeiuwq.com
configurations den dendritic nix aspect oriented
at cross 50 lines 1.5 kB view raw
1# This is a fully working example configuration. 2# Feel free to remove it, adapt or split into several modules. 3# See documentation at <den>/nix/types.nix 4{ inputs, ... }: 5{ 6 den.hosts.aarch64-darwin.honeycrisp.users.alice = { }; 7 8 den.hosts.aarch64-linux.emperor.users.alice = { }; 9 10 den.hosts.x86_64-linux = { 11 rockhopper = { 12 description = "rockhopper is a kind of penguin"; 13 users.alice = { }; 14 }; 15 16 adelie = { 17 description = "wsl on windows"; 18 users.will = { }; 19 intoAttr = "wslConfigurations"; 20 # custom nixpkgs channel. 21 instantiate = inputs.nixpkgs-stable.lib.nixosSystem; 22 # custom attribute (see home-manager.nix) 23 hm-module = inputs.home-manager-stable.nixosModules.home-manager; 24 # custom attribute (see primary-user.nix) 25 wsl = { }; 26 }; 27 }; 28 29 # move these inputs to any module you want. 30 # they are here for all our examples to work on CI. 31 flake-file.inputs = { 32 33 # these stable inputs are for wsl 34 nixpkgs-stable.url = "github:nixos/nixpkgs/release-25.05"; 35 home-manager-stable.url = "github:nix-community/home-manager/release-25.05"; 36 home-manager-stable.inputs.nixpkgs.follows = "nixpkgs-stable"; 37 38 nixos-wsl = { 39 url = "github:nix-community/nixos-wsl"; 40 inputs.nixpkgs.follows = "nixpkgs-stable"; 41 inputs.flake-compat.follows = ""; 42 }; 43 44 darwin = { 45 url = "github:nix-darwin/nix-darwin"; 46 inputs.nixpkgs.follows = "nixpkgs"; 47 }; 48 }; 49 50}