diff options
Diffstat (limited to 'flake.nix')
| -rw-r--r-- | flake.nix | 164 |
1 files changed, 64 insertions, 100 deletions
@@ -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; + }; + }; }; }; } |
