refactor: flake

nixos
Moritz Böhme 2023-09-27 13:29:34 +02:00
parent f612173ddb
commit b6684e1c31
Signed by: moritz
GPG Key ID: 970C6E89EB0547A9
1 changed files with 75 additions and 92 deletions

167
flake.nix
View File

@ -3,59 +3,46 @@
inputs = { inputs = {
# Nix # Nix
master.url = "github:nixos/nixpkgs";
nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
stable.url = "github:nixos/nixpkgs/nixos-23.05";
flake-utils.url = "github:numtide/flake-utils";
flake-parts.url = "github:hercules-ci/flake-parts";
devshell.url = "github:numtide/devshell";
agenix.inputs.nixpkgs.follows = "nixpkgs"; agenix.inputs.nixpkgs.follows = "nixpkgs";
agenix.url = "github:ryantm/agenix"; agenix.url = "github:ryantm/agenix";
devshell.url = "github:numtide/devshell";
disko.url = "github:nix-community/disko";
flake-parts.url = "github:hercules-ci/flake-parts";
flake-utils.url = "github:numtide/flake-utils";
home-manager.inputs.nixpkgs.follows = "nixpkgs"; home-manager.inputs.nixpkgs.follows = "nixpkgs";
home-manager.url = "github:nix-community/home-manager"; home-manager.url = "github:nix-community/home-manager";
pre-commit-hooks.url = "github:cachix/pre-commit-hooks.nix";
nix-super.url = "github:privatevoid-net/nix-super";
nix-super.inputs.nixpkgs.follows = "stable";
rofi-wayland.url = "github:lbonn/rofi/wayland";
rofi-wayland.flake = false;
disko.url = "github:nix-community/disko";
impermanence.url = "github:nix-community/impermanence"; impermanence.url = "github:nix-community/impermanence";
master.url = "github:nixos/nixpkgs";
nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
pre-commit-hooks.url = "github:cachix/pre-commit-hooks.nix";
stable.url = "github:nixos/nixpkgs/nixos-23.05";
# Programs
nix-super.inputs.nixpkgs.follows = "stable";
nix-super.url = "github:privatevoid-net/nix-super";
rofi-wayland.flake = false;
rofi-wayland.url = "github:lbonn/rofi/wayland";
timers.url = "git+https://gitea.moritzboeh.me/moritz/timers.git";
# Neovim # Neovim
neovim-nightly-overlay.url = "github:nix-community/neovim-nightly-overlay";
smartcolumn-nvim.flake = false;
smartcolumn-nvim.url = "github:m4xshen/smartcolumn.nvim";
telekasten-nvim.flake = false;
telekasten-nvim.url = "github:renerocksai/telekasten.nvim";
telescope-nvim.flake = false;
telescope-nvim.url = "github:nvim-telescope/telescope.nvim";
nvim-treesitter.flake = false;
nvim-treesitter.url = "github:nvim-treesitter/nvim-treesitter/v0.9.1"; # NOTE: to fix weird latest issues
hmts-nvim.flake = false;
hmts-nvim.url = "github:calops/hmts.nvim";
actions-preview-nvim.flake = false; actions-preview-nvim.flake = false;
actions-preview-nvim.url = "github:aznhe21/actions-preview.nvim"; actions-preview-nvim.url = "github:aznhe21/actions-preview.nvim";
hmts-nvim.flake = false;
hmts-nvim.url = "github:calops/hmts.nvim";
neovim-nightly-overlay.url = "github:nix-community/neovim-nightly-overlay";
nix-lazy-nvim.url = "git+https://git.moritzboeh.me/moritz/NixLazy.nvim"; nix-lazy-nvim.url = "git+https://git.moritzboeh.me/moritz/NixLazy.nvim";
nvim-puppeteer.flake = false;
nvim-puppeteer.url = "github:chrisgrieser/nvim-puppeteer";
nvim-lspconfig.flake = false; nvim-lspconfig.flake = false;
nvim-lspconfig.url = "github:neovim/nvim-lspconfig"; nvim-lspconfig.url = "github:neovim/nvim-lspconfig";
nvim-puppeteer.flake = false;
nvim-puppeteer.url = "github:chrisgrieser/nvim-puppeteer";
nvim-treesitter.flake = false;
nvim-treesitter.url = "github:nvim-treesitter/nvim-treesitter/v0.9.1"; # NOTE: to fix weird latest issues
smartcolumn-nvim.flake = false;
smartcolumn-nvim.url = "github:m4xshen/smartcolumn.nvim";
telekasten-nvim.flake = false;
telekasten-nvim.url = "github:renerocksai/telekasten.nvim";
telescope-nvim.flake = false;
telescope-nvim.url = "github:nvim-telescope/telescope.nvim";
# Hyprland # Hyprland
hypr-contrib.url = "github:hyprwm/contrib"; hypr-contrib.url = "github:hyprwm/contrib";
@ -69,8 +56,6 @@
# Firefox user.js # Firefox user.js
arkenfox-userjs.url = "github:arkenfox/user.js"; arkenfox-userjs.url = "github:arkenfox/user.js";
arkenfox-userjs.flake = false; arkenfox-userjs.flake = false;
timers.url = "git+https://gitea.moritzboeh.me/moritz/timers.git";
}; };
outputs = inputs@{ self, flake-parts, ... }: outputs = inputs@{ self, flake-parts, ... }:
@ -78,27 +63,26 @@
defaultOverlays = [ defaultOverlays = [
inputs.hypr-contrib.overlays.default inputs.hypr-contrib.overlays.default
inputs.neovim-nightly-overlay.overlay inputs.neovim-nightly-overlay.overlay
self.overlay self.overlays.default
];
finalOverlays = defaultOverlays ++ [
(
_: prev: {
master = import inputs.master {
inherit (prev) system;
overlays = defaultOverlays;
};
stable = import inputs.stable {
inherit (prev) system;
overlays = defaultOverlays;
};
}
)
]; ];
finalOverlays =
defaultOverlays ++ [
(
_: prev: {
master = import inputs.master {
inherit (prev) system;
overlays = defaultOverlays;
};
stable = import inputs.stable {
inherit (prev) system;
overlays = defaultOverlays;
};
}
)
];
in in
flake-parts.lib.mkFlake { inherit inputs; } { flake-parts.lib.mkFlake { inherit inputs; } {
imports = [ imports = [
inputs.flake-parts.flakeModules.easyOverlay
inputs.pre-commit-hooks.flakeModule inputs.pre-commit-hooks.flakeModule
inputs.devshell.flakeModule inputs.devshell.flakeModule
]; ];
@ -163,49 +147,48 @@
packages = packages =
self.lib.filterAttrs (_: self.lib.isDerivation) self.lib.filterAttrs (_: self.lib.isDerivation)
(self.overlay pkgs pkgs); (self.overlays.default pkgs pkgs);
}; };
flake = { flake = {
lib = inputs.nixpkgs.lib.extend lib = inputs.nixpkgs.lib.extend
(self: _: { my = import ./lib { lib = self; }; }); (self: _: { my = import ./lib { lib = self; }; });
overlay = import ./overlays { overlays.default = import ./overlays {
inherit inputs; inherit inputs;
inherit (self) lib; inherit (self) lib;
}; };
nixosConfigurations = self.lib.my.mapModules nixosConfigurations = self.lib.my.mapModules
(path: (path: self.lib.nixosSystem {
self.lib.nixosSystem { inherit (self) lib;
inherit (self) lib; specialArgs = {
specialArgs = { inherit inputs self;
inherit inputs self; };
}; modules =
modules = [
[ ./modules
./modules {
{ nixpkgs = {
nixpkgs = { overlays = finalOverlays;
overlays = finalOverlays; config.allowUnfree = true;
config.allowUnfree = true; };
}; }
} {
inputs.home-manager.nixosModule home-manager = {
{ useGlobalPkgs = true;
home-manager = { useUserPackages = true;
useGlobalPkgs = true; extraSpecialArgs = { inherit inputs self; };
useUserPackages = true; sharedModules = [ inputs.nix-lazy-nvim.homeManagerModules.default ];
extraSpecialArgs = { inherit inputs self; }; };
sharedModules = [ inputs.nix-lazy-nvim.homeManagerModules.default ]; }
}; inputs.agenix.nixosModules.age
} inputs.disko.nixosModules.default
inputs.agenix.nixosModules.age inputs.home-manager.nixosModule
inputs.disko.nixosModules.default inputs.impermanence.nixosModules.impermanence
inputs.impermanence.nixosModules.impermanence path
] ];
++ [ path ]; })
})
./hosts; ./hosts;
}; };
}; };