this repo has no description
4
fork

Configure Feed

Select the types of activity you want to include in your feed.

refactor(treewide): improve how pkgs, overlays, etc. are imported and handled

dusk d78f744c 26935bab

+81 -69
+19 -26
flake.nix
··· 48 48 inputs: 49 49 let 50 50 lib = inputs.nixpkgs.lib; 51 - tlib = (import ./lib lib).extend ( 52 - _: prev: rec { 53 - makePkgs = 54 - system: 55 - import ./pkgs-set { 56 - inherit system lib inputs; 57 - tlib = prev; 58 - }; 59 - genPkgs = f: prev.genSystems (system: f (makePkgs system)); 60 - } 61 - ); 51 + tlib = import ./lib lib; 52 + l = lib; 62 53 63 - allPkgs = tlib.genPkgs (x: x); 54 + makePkgsSet = system: import ./pkgs-set { 55 + inherit system inputs lib tlib; 56 + }; 57 + allPkgsSets = tlib.genSystems makePkgsSet; 64 58 65 59 miscApps = 66 - lib.mapAttrs 60 + l.mapAttrs 67 61 ( 68 62 _: cmds: 69 - lib.mapAttrs (_: cmd: { 63 + l.mapAttrs (_: cmd: { 70 64 type = "app"; 71 65 program = cmd; 72 66 }) cmds 73 67 ) 74 68 ( 75 - lib.mapAttrs 76 - (_: pkgs: ( 77 - lib.mapAttrs 69 + l.mapAttrs 70 + (_: set: ( 71 + l.mapAttrs 78 72 (_: app: app.program) 79 - (inputs.ncr.makeApps {inherit pkgs; inherit (inputs) self;}) 73 + (inputs.ncr.makeApps {inherit (set) pkgs; inherit (inputs) self;}) 80 74 ) // { 81 - generate-firefox-addons = toString "${pkgs.generate-firefox-addons}/bin/generate-firefox-addons"; 82 - dns = toString "${pkgs.dnsmngmt}/bin/dns"; 75 + generate-firefox-addons = toString "${set.pkgs.generate-firefox-addons}/bin/generate-firefox-addons"; 76 + dns = toString "${set.pkgs.dnsmngmt}/bin/dns"; 83 77 }) 84 - allPkgs 78 + allPkgsSets 85 79 ); 86 80 in 87 81 { 88 82 lib = tlib; 89 - nixosConfigurations = import ./hosts { inherit lib tlib inputs allPkgs; }; 90 - homeConfigurations = import ./users { inherit lib tlib inputs allPkgs; }; 83 + nixosConfigurations = import ./hosts { inherit lib tlib inputs allPkgsSets; }; 84 + homeConfigurations = import ./users { inherit lib tlib inputs allPkgsSets; }; 91 85 92 - packages = lib.mapAttrs (_: pkgs: pkgs._exported) allPkgs; 93 - legacyPackages = allPkgs; 86 + packages = l.mapAttrs (_: set: set.exported) allPkgsSets; 94 87 apps = miscApps; 95 88 96 89 # topology = lib.mapAttrs (_: pkgs: ··· 100 93 # }) 101 94 # allPkgs; 102 95 103 - devShells = import ./shells { inherit lib tlib inputs; }; 96 + devShells = import ./shells { inherit lib inputs allPkgsSets; }; 104 97 }; 105 98 }
+10 -7
hosts/default.nix
··· 2 2 inputs, 3 3 lib, 4 4 tlib, 5 - allPkgs, 5 + allPkgsSets, 6 6 ... 7 7 }: 8 8 let ··· 13 13 ]; 14 14 15 15 mkSystem = 16 - name: pkgs: 16 + name: set: 17 17 lib.nixosSystem { 18 - system = pkgs.system; 18 + system = set.pkgs.system; 19 19 modules = baseModules ++ [ 20 20 { networking.hostName = name; } 21 - { nixpkgs.pkgs = pkgs; } 21 + { nixpkgs.pkgs = set.pkgs; } 22 22 (import (./. + "/${name}/default.nix")) 23 23 ]; 24 - specialArgs = { inherit inputs tlib; }; 24 + specialArgs = { 25 + inherit (set) terra; 26 + inherit inputs tlib; 27 + }; 25 28 }; 26 29 27 30 systems = { 28 31 # lungmen = "x86_64-linux"; 29 32 # tkaronto = "x86_64-linux"; 30 - wolumonde = allPkgs.x86_64-linux; 31 - wsl = allPkgs.x86_64-linux; 33 + wolumonde = allPkgsSets.x86_64-linux; 34 + wsl = allPkgsSets.x86_64-linux; 32 35 }; 33 36 in 34 37 lib.mapAttrs mkSystem systems
+2 -2
hosts/wolumonde/modules/perses.nix
··· 1 - { pkgs, config, ... }: 1 + { pkgs, terra, config, ... }: 2 2 let 3 3 domain = "dash.gaze.systems"; 4 4 port = 7412; ··· 62 62 secrets = config.age.secrets; 63 63 in 64 64 { 65 - environment.systemPackages = [ pkgs.percli ]; 65 + environment.systemPackages = [ terra.percli ]; 66 66 67 67 users.users.${user} = { 68 68 isNormalUser = true;
+29 -17
pkgs-set/default.nix
··· 7 7 }: 8 8 let 9 9 l = lib // builtins; 10 - overlays = l.mapAttrsToList ( 11 - name: _: 12 - let 13 - o = import "${./.}/overlays/${name}"; 14 - in 15 - if (l.functionArgs o) ? inputs then o { inherit inputs; } else o 16 - ) (l.readDir ./overlays); 17 - newPkgs = l.mapAttrsToList (name: _: final: prev: { 18 - ${l.removeSuffix ".nix" name} = final.callPackage "${./pkgs}/${name}" { inherit inputs tlib; }; 19 - }) (l.readDir ./pkgs); 10 + overlays = l.flatten ( 11 + l.mapAttrsToList 12 + ( 13 + name: _: 14 + if name != "disabled" 15 + then 16 + let 17 + o = import "${./overlays}/${name}"; 18 + in 19 + if (l.functionArgs o) ? inputs 20 + then o { inherit inputs; } 21 + else o 22 + else 23 + [] 24 + ) 25 + (l.readDir ./overlays) 26 + ); 20 27 pkgs = import inputs.nixpkgs { 21 - inherit system; 28 + inherit system overlays; 22 29 config.allowUnfree = true; 23 30 # config.allowBroken = true; 24 31 # config.permittedInsecurePackages = ["electron-25.9.0"]; 25 - overlays = overlays ++ newPkgs; 26 32 }; 27 - pkgsToExport = import ./pkgs-to-export.nix pkgs; 28 - in 29 - pkgs 30 - // { 31 - _exported = pkgsToExport; 33 + terraPkgs = 34 + l.genAttrs 35 + (l.map (l.removeSuffix ".nix") (l.attrNames (l.readDir ./pkgs))) 36 + (name: pkgs.callPackage "${./pkgs}/${name}.nix" { 37 + inherit inputs tlib; 38 + }); 39 + pkgsToExport = pkgs.lib.getAttrs (import ./exported.nix) (pkgs // terraPkgs); 40 + in { 41 + inherit pkgs; 42 + terra = terraPkgs; 43 + exported = pkgsToExport; 32 44 }
+4
pkgs-set/exported.nix
··· 1 + [ 2 + "comic-mono" 3 + "percli" 4 + ]
pkgs-set/overlays/bitwig.nix pkgs-set/overlays/disabled/bitwig/default.nix
pkgs-set/overlays/calf.nix pkgs-set/overlays/disabled/calf.nix
pkgs-set/overlays/prismlauncher.nix pkgs-set/overlays/disabled/prismlauncher/default.nix
pkgs-set/patches/bitwig.jar pkgs-set/overlays/disabled/bitwig/bitwig.jar
pkgs-set/patches/prismlauncher-offline.patch pkgs-set/overlays/disabled/prismlauncher/prismlauncher-offline.patch
-7
pkgs-set/pkgs-to-export.nix
··· 1 - pkgs: 2 - (pkgs.lib.getAttrs [ 3 - "phantom" 4 - "comic-mono" 5 - "bitwig-studio" 6 - "percli" 7 - ] pkgs)
+9 -5
shells/default.nix
··· 1 1 { 2 - tlib, 2 + lib, 3 + allPkgsSets, 3 4 inputs, 4 5 ... 5 6 }: 6 - tlib.genPkgs ( 7 - pkgs: 7 + lib.mapAttrs 8 + ( 9 + system: set: 8 10 let 11 + inherit (set) pkgs; 9 12 mkNakedShell = pkgs.callPackage inputs.naked-shell { }; 10 13 agenix-wrapped = pkgs.writeShellApplication { 11 14 name = "agenix"; 12 - runtimeInputs = [ pkgs.agenix ]; 15 + runtimeInputs = [ inputs.agenix.packages.${system}.default ]; 13 16 text = '' 14 17 if [ -z "''${1-}" ]; then 15 18 agenix ··· 32 35 treefmt 33 36 rage 34 37 nh 35 - percli 36 38 go 37 39 gopls 38 40 # golangci-lint ··· 43 45 agenix-wrapped 44 46 commit 45 47 deploy 48 + set.terra.percli 46 49 ]; 47 50 shellHook = '' 48 51 echo \"$(tput bold)welcome to PRTS, $USER$(tput sgr0)\" ··· 51 54 }; 52 55 } 53 56 ) 57 + allPkgsSets
+8 -5
users/default.nix
··· 2 2 inputs, 3 3 lib, 4 4 tlib, 5 - allPkgs, 5 + allPkgsSets, 6 6 ... 7 7 }: 8 8 let 9 9 mkHome = 10 - name: pkgs: 10 + name: set: 11 11 import "${inputs.home}/modules" { 12 - inherit pkgs; 12 + inherit (set) pkgs; 13 13 configuration = import (./. + "/${name}/default.nix"); 14 - extraSpecialArgs = {inherit tlib inputs pkgs;}; 14 + extraSpecialArgs = { 15 + inherit (set) pkgs terra; 16 + inherit tlib inputs; 17 + }; 15 18 }; 16 19 17 20 users = { 18 - "dusk@devel.mobi" = allPkgs.x86_64-linux; 21 + "dusk@devel.mobi" = allPkgsSets.x86_64-linux; 19 22 }; 20 23 in 21 24 lib.mapAttrs mkHome users