dotfiles/flake.nix
2025-06-26 17:03:29 +02:00

70 lines
1.6 KiB
Nix

{
description = "My NixOS and home-manager configs";
inputs = {
# Nixpkgs
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
# Home manager
home-manager.url = "github:nix-community/home-manager/master";
home-manager.inputs.nixpkgs.follows = "nixpkgs";
# Zen browser
zen-browser.url = "github:0xc000022070/zen-browser-flake";
# AGS
ags.url = "github:Aylur/ags";
ags.inputs.nixpkgs.follows = "nixpkgs";
# Neovim plugins not in nixpkgs
plugin-rainbow-delimiters-nvim.url = "gitlab:HiPhish/rainbow-delimiters.nvim";
plugin-rainbow-delimiters-nvim.flake = false;
plugin-undotree-nvim.url = "github:jiaoshijie/undotree";
plugin-undotree-nvim.flake = false;
plugin-harpoon1.url = "github:ThePrimeagen/harpoon";
plugin-harpoon1.flake = false;
};
outputs =
{
self,
nixpkgs,
...
}@inputs:
let
inherit (self) outputs;
lib = nixpkgs.lib;
rootRel = path: ./. + ("/" + path);
moduleRel = map (path: rootRel ("modules/" + path));
assetRel = path: rootRel ("assets/" + path);
createSystemConfig =
hostname:
lib.nixosSystem {
specialArgs = {
inherit
inputs
outputs
rootRel
moduleRel
assetRel
hostname
;
};
modules = [
./hosts/_base
./hosts/${hostname}
];
};
in
{
overlays = import ./overlays { inherit inputs; };
nixosConfigurations = lib.genAttrs [
"kalle-pc"
"kalle-laptop"
] createSystemConfig;
};
}