51 lines
No EOL
1.5 KiB
Nix
51 lines
No EOL
1.5 KiB
Nix
# flake.nix — place this in the root of your nixos-config repo
|
|
{
|
|
description = "FredOS NixOS configuration";
|
|
|
|
inputs = {
|
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
|
|
|
home-manager = {
|
|
url = "github:nix-community/home-manager";
|
|
inputs.nixpkgs.follows = "nixpkgs"; # shares your nixpkgs, no double download
|
|
};
|
|
|
|
omnisearch = {
|
|
url = "git+https://git.bwaaa.monster/omnisearch/omnisearch";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
|
|
zen-browser = {
|
|
url = "github:youwen5/zen-browser-flake";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
|
|
nix-flatpak = {
|
|
url = "github:gmodena/nix-flatpak";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
};
|
|
|
|
outputs = { self, nixpkgs, home-manager, omnisearch, zen-browser, nix-flatpak, ... } @ inputs:
|
|
let
|
|
system = "x86_64-linux";
|
|
|
|
# Helper so each host doesn't have to repeat the boilerplate
|
|
mkHost = hostname: nixpkgs.lib.nixosSystem {
|
|
inherit system;
|
|
specialArgs = { inherit inputs; }; # makes 'inputs' available in all your .nix files
|
|
modules = [
|
|
./hosts/${hostname}.nix # your existing per-host file
|
|
./common.nix # your existing shared config
|
|
home-manager.nixosModules.homeManager
|
|
nix-flatpak.nixosModules.nix-flatpak
|
|
];
|
|
};
|
|
in {
|
|
nixosConfigurations = {
|
|
FredOS-Gaming = mkHost "FredOS-Gaming";
|
|
FredOS-Mediaserver = mkHost "FredOS-Mediaserver";
|
|
FredOS-Macbook = mkHost "FredOS-Macbook";
|
|
};
|
|
};
|
|
} |