dotfiles/flake.nix

79 lines
2.1 KiB
Nix
Raw Permalink Normal View History

2025-01-23 23:28:22 +00:00
{
description = "NixOS system";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
2025-01-23 23:50:13 +00:00
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
2025-01-24 00:22:01 +00:00
stylix.url = "github:danth/stylix";
nixvim.url = "github:nix-community/nixvim";
nur = {
url = "github:nix-community/NUR";
inputs.nixpkgs.follows = "nixpkgs";
};
2025-01-26 11:57:38 +00:00
nix-matlab = {
url = "gitlab:doronbehar/nix-matlab";
inputs.nixpkgs.follows = "nixpkgs";
};
2025-02-08 22:06:32 +00:00
flake-utils.url = "github:numtide/flake-utils";
2025-02-23 13:53:00 +00:00
nixos-cosmic.url = "github:lilyinstarlight/nixos-cosmic";
2025-01-23 23:28:22 +00:00
};
outputs =
2025-01-24 00:22:01 +00:00
{
2025-02-08 22:06:32 +00:00
self,
2025-01-24 00:22:01 +00:00
nixpkgs,
home-manager,
stylix,
nixvim,
nur,
2025-01-26 11:57:38 +00:00
nix-matlab,
2025-02-23 13:53:00 +00:00
nixos-cosmic,
2025-01-24 00:22:01 +00:00
...
}:
let
2025-02-17 11:49:33 +00:00
mkConfig =
2025-02-17 13:52:57 +00:00
system: machineConfig: userConfig:
(nixpkgs.lib.nixosSystem {
2025-02-17 13:52:57 +00:00
inherit system;
specialArgs = { inherit system; };
modules = [
machineConfig
home-manager.nixosModules.home-manager
{
2025-02-23 13:53:00 +00:00
nix.settings = {
substituters = [ "https://cosmic.cachix.org/" ];
trusted-public-keys = [ "cosmic.cachix.org-1:Dya9IyXD4xdBehWjrkPv6rtxpmMdRel02smYzA85dPE=" ];
};
machine.users = userConfig;
2025-02-17 13:52:57 +00:00
home-manager.extraSpecialArgs = { inherit system; };
home-manager.sharedModules = [
stylix.homeManagerModules.stylix
nixvim.homeManagerModules.nixvim
nur.modules.homeManager.default
2025-01-26 11:57:38 +00:00
{
nixpkgs.overlays = [
nix-matlab.overlay
2025-02-23 13:53:00 +00:00
nixos-cosmic.overlays.default
2025-01-26 11:57:38 +00:00
];
}
];
}
2025-01-24 00:22:01 +00:00
];
});
2025-01-24 00:22:01 +00:00
in
2025-01-23 23:28:22 +00:00
{
nixosConfigurations = {
2025-02-17 13:52:57 +00:00
"20212060" = mkConfig "x86_64-linux" ./machines/laptop.nix {
jan = {
sudo = true;
configuration = ./users/jan.nix;
};
2025-01-23 23:28:22 +00:00
};
};
2025-02-08 22:06:32 +00:00
lib = import ./shell-modules/default.nix self.inputs;
2025-01-23 23:28:22 +00:00
};
}