Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 24 additions & 3 deletions flake.nix
Original file line number Diff line number Diff line change
Expand Up @@ -83,16 +83,37 @@
};

outputs =
{ flake-parts, ... }@inputs:
inputs@{ flake-parts, ... }:
let
mkSystemLib = import ./lib/mkSystem.nix { inherit inputs; };
mkPkgsWithSystem =
system:
import inputs.nixpkgs {
inherit system;
overlays = builtins.attrValues (import ./overlays { inherit inputs system; });
config.allowUnfree = true;
};
mkSystemLib = import ./lib/mkSystem.nix { inherit inputs mkPkgsWithSystem; };
in
flake-parts.lib.mkFlake { inherit inputs; } {
imports = [ ];

systems = [
"x86_64-linux"
"aarch64-darwin"
];

perSystem =
{
system,
pkgs,
...
}:
{
# override pkgs used by everything in `perSystem` to have my overlays
_module.args.pkgs = mkPkgsWithSystem system;
# accessible via `nix build .#<name>`
packages = import ./pkgs { inherit pkgs inputs; };
};

flake = {
nixosConfigurations = {
laptop = mkSystemLib.mkWslSystem "x86_64-linux" "laptop";
Expand Down
97 changes: 84 additions & 13 deletions lib/mkSystem.nix
Original file line number Diff line number Diff line change
@@ -1,45 +1,116 @@
{ inputs, ... }:
{
inputs,
mkPkgsWithSystem,
...
}:
let
baseLib = import ./modules/basesystem.nix { inherit inputs; };
sharedModules = [
inputs.catppuccin.homeManagerModules.catppuccin
inputs.krewfile.homeManagerModules.krewfile
inputs.nix-index-database.hmModules.nix-index
inputs.nixvim.homeManagerModules.nixvim
inputs.sops-nix.homeManagerModules.sops
];
in
{
mkNixosSystem =
system: hostname:
baseLib.mkBaseSystem {
inherit system hostname;
systemFunction = inputs.nixpkgs.lib.nixosSystem;
inputs.nixpkgs.lib.nixosSystem {
inherit system;
pkgs = mkPkgsWithSystem system;
modules = [
inputs.sops-nix.nixosModules.sops
{
nixpkgs.hostPlatform = system;
_module.args = {
inherit inputs system;
};
}
inputs.home-manager.nixosModules.home-manager
{
home-manager = {
inherit sharedModules;
useUserPackages = true;
useGlobalPkgs = true;
extraSpecialArgs = {
inherit inputs hostname system;
};
users.stianrs = ../. + "/homes/stianrs";
};
}
../hosts/_modules/common
../hosts/_modules/nixos
../hosts/${hostname}
];
specialArgs = {
inherit inputs hostname;
};
};

mkWslSystem =
system: hostname:
baseLib.mkBaseSystem {
inherit system hostname;
systemFunction = inputs.nixpkgs.lib.nixosSystem;
inputs.nixpkgs.lib.nixosSystem {
inherit system;
pkgs = mkPkgsWithSystem system;
modules = [
{
nixpkgs.hostPlatform = system;
_module.args = {
inherit inputs system;
};
}
inputs.home-manager.nixosModules.home-manager
inputs.nixos-wsl.nixosModules.default
{
home-manager = {
inherit sharedModules;
useUserPackages = true;
useGlobalPkgs = true;
extraSpecialArgs = {
inherit inputs hostname system;
};
users.stianrs = ../. + "/homes/stianrs";
};
}
../hosts/_modules/common
../hosts/_modules/nixos
../hosts/_modules/wsl
../hosts/${hostname}
];
specialArgs = {
inherit inputs hostname;
};
};

mkDarwinSystem =
system: hostname:
baseLib.mkBaseSystem {
inherit system hostname;
systemFunction = inputs.nix-darwin.lib.darwinSystem;
inputs.nix-darwin.lib.darwinSystem {
inherit system;
pkgs = mkPkgsWithSystem system;
modules = [
{
nixpkgs.hostPlatform = system;
_module.args = {
inherit inputs;
};
}
inputs.home-manager.darwinModules.home-manager
inputs.nixvim.nixDarwinModules.nixvim
{
home-manager = {
inherit sharedModules;
useUserPackages = true;
useGlobalPkgs = true;
extraSpecialArgs = {
inherit inputs hostname system;
};
users.stianrs = ../. + "/homes/stianrs";
};
}
../hosts/_modules/common
../hosts/_modules/darwin
../hosts/${hostname}
];
specialArgs = {
inherit inputs hostname;
};
};
}
38 changes: 0 additions & 38 deletions lib/modules/basesystem.nix

This file was deleted.

32 changes: 0 additions & 32 deletions lib/modules/homemanager.nix

This file was deleted.

59 changes: 29 additions & 30 deletions overlays/default.nix
Original file line number Diff line number Diff line change
@@ -1,34 +1,33 @@
{ inputs, ... }:
let
overlays = system: [
inputs.rust-overlay.overlays.default
{
inputs,
system,
...
}:
{
additions =
final: _prev:
import ../pkgs {
inherit inputs;
pkgs = final;
};

(final: prev: {
unstable = import inputs.nixpkgs-unstable {
inherit (final) system;
config.allowUnfree = true;
};
})
# The unstable nixpkgs set (declared in the flake inputs) will
# be accessible through `pkgs.unstable`
unstable-packages = final: prev: {
unstable = import inputs.nixpkgs-unstable {
inherit (final) system;
config.allowUnfree = true;
overlays = [
# overlays of unstable packages are declared here
];
};
};

(final: prev: {
# Packages from inputs
})
# Your own overlays for stable nixpkgs should be declared here
nixpkgs-overlays = final: prev: {
talhelper = inputs.talhelper.packages.${system}.default;
};

(
final: prev:
import ../pkgs {
inherit inputs system;
pkgs = final;
}
)
];
in
{
perSystem =
{ system, ... }:
{
_module.args = {
overlays = overlays system;
};
};
# Overlays from inputs
rust-overlay = inputs.rust-overlay.overlays.default;
}
4 changes: 1 addition & 3 deletions pkgs/default.nix
Original file line number Diff line number Diff line change
@@ -1,13 +1,11 @@
{
inputs,
system,
pkgs,
...
}:
{
gh-copilot = pkgs.callPackage ./gh-copilot.nix { };
gh-tidy = pkgs.callPackage ./gh-tidy.nix { };
kubecolor-catppuccin = pkgs.callPackage ./kubecolor-catppuccin.nix { };
talhelper = inputs.talhelper.packages.${system}.default;
talosctl = pkgs.callPackage ./talosctl.nix { };
usage = pkgs.callPackage ./usage.nix { };
}
Loading