summaryrefslogtreecommitdiff
path: root/flake.nix
diff options
context:
space:
mode:
Diffstat (limited to 'flake.nix')
-rw-r--r--flake.nix164
1 files changed, 64 insertions, 100 deletions
diff --git a/flake.nix b/flake.nix
index 7e6ca6e..c6b85d8 100644
--- a/flake.nix
+++ b/flake.nix
@@ -5,22 +5,17 @@
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
nixpkgs-stable.url = "github:NixOS/nixpkgs/nixos-26.05";
- # Hardware and gaming
- nixos-hardware.url = "github:NixOS/nixos-hardware/master";
+ flake-parts.url = "github:hercules-ci/flake-parts";
- impermanence = {
- url = "github:nix-community/impermanence";
- inputs.nixpkgs.follows = "nixpkgs";
- };
+ nixos-hardware.url = "github:NixOS/nixos-hardware/master";
- nixos-mailserver = {
- # url = "gitlab:simple-nixos-mailserver/nixos-mailserver/nixos-26.05";
- url = "gitlab:simple-nixos-mailserver/nixos-mailserver/main";
+ hjem = {
+ url = "github:feel-co/hjem";
inputs.nixpkgs.follows = "nixpkgs";
};
- microvm = {
- url = "github:microvm-nix/microvm.nix";
+ impermanence = {
+ url = "github:nix-community/impermanence";
inputs.nixpkgs.follows = "nixpkgs";
};
@@ -34,117 +29,86 @@
inputs.nixpkgs.follows = "nixpkgs";
};
- # System Utilities
sops-nix = {
url = "github:Mic92/sops-nix";
inputs.nixpkgs.follows = "nixpkgs";
};
- home-manager = {
- url = "github:nix-community/home-manager/master";
- inputs.nixpkgs.follows = "nixpkgs";
- };
-
disko = {
url = "github:nix-community/disko/latest";
inputs.nixpkgs.follows = "nixpkgs";
};
- # UI and apps
- niri = {
- url = "github:sodiboo/niri-flake";
- inputs.nixpkgs.follows = "nixpkgs";
- };
-
- waybar = {
- url = "github:Alexays/Waybar";
- inputs.nixpkgs.follows = "nixpkgs";
- };
-
- yazi = {
- url = "github:sxyazi/yazi";
- inputs.nixpkgs.follows = "nixpkgs";
- };
-
- satty = {
- url = "github:gabm/Satty";
- inputs.nixpkgs.follows = "nixpkgs";
- };
-
- # Other
omnisearch = {
- url = "git+https://git.bwaaa.monster/omnisearch?shallow=0&rev=24f9909badd4e7aa1f3aeef717b93e9b71c20a4e";
- inputs.nixpkgs.follows = "nixpkgs";
+ url = "git+https://git.bwaaa.monster/omnisearch?shallow=0";
+ # inputs.nixpkgs.follows = "nixpkgs";
};
otter-launcher = {
url = "github:kuokuo123/otter-launcher";
inputs.nixpkgs.follows = "nixpkgs";
};
+ };
- fsel = {
- url = "github:Mjoyufull/fsel";
- inputs.nixpkgs.follows = "nixpkgs";
- };
+ outputs =
+ inputs@{ flake-parts, ... }:
+ flake-parts.lib.mkFlake { inherit inputs; } {
- nixvim = {
- url = "github:nix-community/nixvim";
- inputs.nixpkgs.follows = "nixpkgs";
- };
+ imports = [
+ (inputs.flake-parts.lib.importTree ./modules)
+ ];
- nvf = {
- url = "github:NotAShelf/nvf";
- inputs.nixpkgs.follows = "nixpkgs";
- };
- };
+ perSystem = { pkgs, ... }: {
+ formatter = pkgs.nixfmt-rfc-style;
+ };
- outputs =
- {
- self,
- nixpkgs,
- nixpkgs-stable,
- ...
- }@inputs:
- let
- unstablePkgs = import nixpkgs { };
- stablePkgs = import nixpkgs-stable { };
- mkHost =
- {
- hostname,
- user ? "adam",
- isStable ? false,
- path ? ./hosts/${hostname}/configuration.nix,
- }:
- nixpkgs.lib.nixosSystem {
- specialArgs = {
- inherit inputs;
- username = user;
- pkgs-unstable = unstablePkgs;
- pkgs-stable = stablePkgs;
- masterDomain = "bibus.top";
- };
- modules = [
- path
- { networking.hostName = hostname; }
- ];
- };
- in
- {
- nixosConfigurations = {
- szpont = mkHost {
- hostname = "szpont";
- path = ./hosts/desktop/configuration.nix;
- };
- thinkpad = mkHost { hostname = "thinkpad"; };
- pendrive = mkHost {
- hostname = "pendrive";
- user = "user";
- };
- bibus-lab = mkHost {
- hostname = "bibus-lab";
- user = "opc";
- isStable = true;
+ flake = {
+ nixosModules.default = {
+ imports = [ inputs.hjem.nixosModules.default ];
};
+
+ nixosConfigurations =
+ let
+ mkHost =
+ {
+ hostname,
+ user ? "adam",
+ pkgsInput ? inputs.nixpkgs,
+ path ? ./hosts/${hostname}/configuration.nix,
+ }:
+ pkgsInput.lib.nixosSystem {
+ specialArgs = {
+ inherit inputs;
+ username = user;
+ pkgs-unstable = import inputs.nixpkgs {
+ system = "x86_64-linux";
+ config.allowUnfree = true;
+ };
+ pkgs-stable = import inputs.nixpkgs-stable {
+ system = "x86_64-linux";
+ config.allowUnfree = true;
+ };
+ };
+ modules = [
+ inputs.hjem.nixosModules.default
+ inputs.disko.nixosModules.disko
+ inputs.impermanence.nixosModules.impermanence
+ inputs.sops-nix.nixosModules.sops
+
+ path
+ { networking.hostName = hostname; }
+ ];
+ };
+ in
+ {
+ szpont = mkHost { hostname = "szpont"; };
+ thinkpad = mkHost { hostname = "thinkpad"; };
+ pendrive = mkHost {
+ hostname = "pendrive";
+ user = "user";
+ pkgsInput = inputs.nixpkgs-stable;
+ };
+ };
};
};
}