initial setup

This commit is contained in:
2025-05-29 13:53:53 +02:00
commit 9f1f69cf9b
112 changed files with 3344 additions and 0 deletions

102
flake.nix Normal file
View 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;
}
];
};
};
};
}