103 lines
3.0 KiB
Nix
103 lines
3.0 KiB
Nix
{
|
|
description = "Moe.OS";
|
|
inputs = {
|
|
nixpkgs.url = "nixpkgs/nixos-unstable";
|
|
home-manager = {
|
|
url = "github:nix-community/home-manager/master";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
plasma-manager = {
|
|
url = "github:nix-community/plasma-manager/trunk";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
inputs.home-manager.follows = "home-manager";
|
|
};
|
|
nur = {
|
|
url = "github:nix-community/NUR";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
};
|
|
|
|
outputs = { nixpkgs, home-manager, plasma-manager, nur, ... }:
|
|
let
|
|
|
|
system = "x86_64-linux";
|
|
lib = nixpkgs.lib;
|
|
pkgs = import nixpkgs {inherit system;};
|
|
|
|
filterNixFiles = dir: lib.filter (n: lib.strings.hasSuffix ".nix" n) (lib.filesystem.listFilesRecursive dir);
|
|
|
|
root.base = filterNixFiles ./root/base;
|
|
root.desktop = filterNixFiles ./root/desktop;
|
|
root.filesystem.client = filterNixFiles ./root/filesystem/client;
|
|
root.filesystem.server = filterNixFiles ./root/filesystem/server;
|
|
root.gaming.desktop = filterNixFiles ./root/gaming/desktop;
|
|
root.gaming.console = filterNixFiles ./root/gaming/console;
|
|
root.gnome = filterNixFiles ./root/gnome;
|
|
root.hyprland = filterNixFiles ./root/hyprland;
|
|
root.plasma = filterNixFiles ./root/plasma;
|
|
root.services = filterNixFiles ./root/services;
|
|
|
|
home.base = filterNixFiles ./home/base;
|
|
home.gaming = filterNixFiles ./home/gaming;
|
|
home.gnome = filterNixFiles ./home/gnome;
|
|
#home.hyprland = filterNixFiles ./home/hyprland;
|
|
home.plasma = filterNixFiles ./home/plasma;
|
|
|
|
root.external = [
|
|
home-manager.nixosModules.home-manager
|
|
nur.modules.nixos.default
|
|
];
|
|
|
|
home.external = [
|
|
plasma-manager.homeManagerModules.plasma-manager
|
|
];
|
|
|
|
in
|
|
{
|
|
nixosConfigurations = {
|
|
Computer-Mo =
|
|
let
|
|
user = "mo";
|
|
hostName = "Computer-Mo";
|
|
in
|
|
lib.nixosSystem {
|
|
specialArgs = { inherit user; inherit hostName; inherit system; };
|
|
modules =
|
|
root.external ++
|
|
root.base ++
|
|
root.desktop ++
|
|
root.filesystem.client ++
|
|
root.hyprland ++
|
|
root.gaming.desktop ++[
|
|
{
|
|
home-manager.users.${user}.imports =
|
|
home.base ++
|
|
home.hyprland ++
|
|
home.gaming;
|
|
home-manager.sharedModules = home.external;
|
|
}
|
|
];
|
|
};
|
|
server =
|
|
let
|
|
user = "administrator";
|
|
hostName = "server";
|
|
in
|
|
lib.nixosSystem {
|
|
specialArgs = { inherit user; inherit hostName; inherit system; };
|
|
modules =
|
|
root.external ++
|
|
root.base ++
|
|
root.services ++
|
|
root.filesystem.server ++ [
|
|
{
|
|
home-manager.users.${user}.imports =
|
|
home.base;
|
|
home-manager.sharedModules = home.external;
|
|
}
|
|
];
|
|
};
|
|
};
|
|
};
|
|
}
|