initial setup
This commit is contained in:
102
flake.nix
Normal file
102
flake.nix
Normal file
@ -0,0 +1,102 @@
|
||||
{
|
||||
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;
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
Reference in New Issue
Block a user