nix-config/flake.nix
2026-02-22 00:14:18 +01:00

87 lines
2.1 KiB
Nix

{
description = "My nix configuration.";
inputs = {
nixpkgs = {
url = "github:NixOS/nixpkgs/nixpkgs-unstable";
};
darwin = {
url = "github:LnL7/nix-darwin";
inputs.nixpkgs.follows = "nixpkgs";
};
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
nix-rosetta-builder = {
url = "github:cpick/nix-rosetta-builder";
inputs.nixpkgs.follows = "nixpkgs";
};
zen-browser = {
url = "github:0xc000022070/zen-browser-flake";
inputs.nixpkgs.follows = "nixpkgs";
};
nanostatus.url = "github:larstvei/nanostatus";
emacs-larstvei.url = "github:larstvei/emacs-flake";
};
outputs =
{
self,
darwin,
nixpkgs,
home-manager,
nix-rosetta-builder,
...
}@inputs:
let
sharedArgs = { inherit inputs self; };
in
{
nixosModules = {
base = ./modules/base;
nixos = ./modules/nixos;
graphical = ./modules/nixos/graphical;
};
homeModules = {
full = ./modules/home/full;
desktop = ./modules/desktop;
minimal = ./modules/home/minimal;
};
darwinModules = {
base = ./modules/darwin;
};
darwinConfigurations.larstvei-macbookpro = darwin.lib.darwinSystem {
system = "aarch64-darwin";
specialArgs = sharedArgs;
modules = [
home-manager.darwinModules.default
./machines/macbook
nix-rosetta-builder.darwinModules.default
{ nix-rosetta-builder.onDemand = true; }
];
};
nixosConfigurations =
let
mkLinux =
system: path:
nixpkgs.lib.nixosSystem {
system = system;
specialArgs = sharedArgs;
modules = [
home-manager.nixosModules.default
path
];
};
in
{
thinkpad = mkLinux "x86_64-linux" ./machines/thinkpad;
vm-aarch64 = mkLinux "aarch64-linux" ./machines/vm-aarch64;
};
};
}