feat: break flake.nix into smaller chunks

This commit is contained in:
punkfairie 2025-05-25 12:48:11 -07:00
parent f6b9287dfc
commit 41295cff75
Signed by: punkfairie
GPG key ID: B3C5488E9A1A7CA6
5 changed files with 113 additions and 102 deletions

103
flake.nix
View file

@ -2,108 +2,7 @@
description = "marleyOS"; description = "marleyOS";
outputs = inputs: outputs = inputs:
inputs.flake-parts.lib.mkFlake {inherit inputs;} { inputs.flake-parts.lib.mkFlake {inherit inputs;} {imports = [./flake];};
imports = [inputs.easy-hosts.flakeModule];
systems = [
"x86_64-nixos"
"aarch64-darwin"
];
### Nixpkgs Config ###
perSystem = {system, ...}: {
_module.args.pkgs = import inputs.nixpkgs {
inherit system;
config = {
allowUnfree = true;
};
overlays = with inputs; [
lix.overlays.default
nur.overlays.default
agenix.overlays.default
niri-flake.overlays.niri
(import ./overlays/ddclient.nix)
(import ./overlays/firefox-addons {
inherit (inputs.nixpkgs) lib;
inherit inputs;
})
(import ./overlays/jetbrains.nix {inherit inputs;})
(import ./overlays/maple-mono-NF.nix)
(import ./overlays/marleyvim.nix {inherit inputs;})
(import ./overlays/wezterm.nix {inherit inputs;})
# Custom packages
(import ./overlays/marleyos.nix)
];
};
};
easyHosts = {
### Module Imports ###
shared.modules = with inputs; [
lix.nixosModules.default
agenix.nixosModules.default
{
home-manager.sharedModules = [
nixcord.homeModules.nixcord
];
}
];
perClass = class: {
modules = with inputs;
(nixpkgs.lib.optionals (class == "nixos") [
home-manager.nixosModules.home-manager
agenix.nixosModules.default
stylix.nixosModules.stylix
niri-flake.nixosModules.niri
])
++ (nixpkgs.lib.optionals (class == "darwin") [
home-manager.darwinModules.home-manager
agenix.darwinModules.default
stylix.darwinModules.stylix
]);
};
hosts = {
### Desktop ###
nyx = {
arch = "x86_64";
class = "nixos";
};
### Macbook Air ###
mairley = {
arch = "aarch64";
class = "darwin";
nixpkgs = inputs.nixpkgs-darwin;
};
### Servers ###
marleycentre = {
arch = "x86_64";
class = "nixos";
};
marleynet = {
arch = "x86_64";
class = "nixos";
};
};
};
flake = {
### Custom Library ###
lib.marleyos = {
module = ./lib/module.nix;
};
};
};
inputs = { inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11"; nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11";

38
flake/config.nix Normal file
View file

@ -0,0 +1,38 @@
{inputs, ...}: {
systems = [
"x86_64-nixos"
"aarch64-darwin"
];
### Nixpkgs Config ###
perSystem = {system, ...}: {
_module.args.pkgs = import inputs.nixpkgs {
inherit system;
config = {
allowUnfree = true;
};
# TODO: Move these to custom modules
overlays = with inputs; [
lix.overlays.default
nur.overlays.default
agenix.overlays.default
niri-flake.overlays.niri
(import ./overlays/ddclient.nix)
(import ./overlays/firefox-addons {
inherit (inputs.nixpkgs) lib;
inherit inputs;
})
(import ./overlays/jetbrains.nix {inherit inputs;})
(import ./overlays/maple-mono-NF.nix)
(import ./overlays/marleyvim.nix {inherit inputs;})
(import ./overlays/wezterm.nix {inherit inputs;})
# Custom packages
(import ./overlays/marleyos.nix)
];
};
};
}

8
flake/default.nix Normal file
View file

@ -0,0 +1,8 @@
{
imports = [
# ../lib
./config.nix
../hosts
];
}

66
hosts/default.nix Normal file
View file

@ -0,0 +1,66 @@
{
inputs,
self,
...
}: {
imports = [inputs.easy-hosts.flakeModule];
config.easy-hosts = {
### Module Imports ###
# TODO: Move module imports to custom module
shared.modules = with inputs; [
lix.nixosModules.default
agenix.nixosModules.default
{
home-manager.sharedModules = [
nixcord.homeModules.nixcord
];
}
];
perClass = class: {
modules = ["${self}/modules/${class}/default.nix"];
# modules = with inputs;
# (nixpkgs.lib.optionals (class == "nixos") [
# home-manager.nixosModules.home-manager
# agenix.nixosModules.default
# stylix.nixosModules.stylix
# niri-flake.nixosModules.niri
# ])
# ++ (nixpkgs.lib.optionals (class == "darwin") [
# home-manager.darwinModules.home-manager
# agenix.darwinModules.default
# stylix.darwinModules.stylix
# ]);
};
hosts = {
### Desktop ###
nyx = {
arch = "x86_64";
class = "nixos";
};
### Macbook Air ###
mairley = {
arch = "aarch64";
class = "darwin";
nixpkgs = inputs.nixpkgs-darwin;
};
### Servers ###
marleycentre = {
arch = "x86_64";
class = "nixos";
};
marleynet = {
arch = "x86_64";
class = "nixos";
};
};
};
}

0
lib/default.nix Normal file
View file