Files
Olympus/flake.nix
2025-08-31 14:53:21 -05:00

194 lines
6.0 KiB
Nix

{
description = "Nixos config flake";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-25.05";
nixpkgs-us.url = "github:nixos/nixpkgs/nixos-unstable";
home-manager = {
url = "github:nix-community/home-manager/release-25.05";
inputs.nixpkgs.follows = "nixpkgs";
};
nix-on-droid = {
url = "github:nix-community/nix-on-droid";
inputs.nixpkgs.follows = "nixpkgs";
inputs.home-manager.follows = "home-manager";
};
disko = {
url = "github:nix-community/disko";
inputs.nixpkgs.follows = "nixpkgs";
};
sops-nix = {
url = "github:Mic92/sops-nix";
inputs.nixpkgs.follows = "nixpkgs";
};
firefox-addons = {
url = "gitlab:rycee/nur-expressions?dir=pkgs/firefox-addons";
inputs.nixpkgs.follows = "nixpkgs";
};
nix-minecraft.url = "github:Infinidoge/nix-minecraft";
#simple-nixos-mailserver.url = "gitlab:simple-nixos-mailserver/nixos-mailserver/nixos-24.05";
hyprland.url = "git+https://github.com/hyprwm/Hyprland?submodules=1";
nixvim.url = "git+https://gitea.blunkall.us/Blunkall-Technologies/Moirai";
};
outputs = { self, nixpkgs, home-manager, ... } @ inputs: {
nixosConfigurations = {
homebox = nixpkgs.lib.nixosSystem {
specialArgs = {
inputs = inputs // {
nathan = import ./home-manager/users/nathan;
home-manager-config = import ./home-manager;
inherit self;
};
};
modules = [
./system-config/configuration/homebox
./system-config
];
};
laptop = nixpkgs.lib.nixosSystem {
specialArgs = {
inputs = inputs // {
nathan = import ./home-manager/users/nathan;
home-manager-config = import ./home-manager;
inherit self;
};
};
modules = [
./system-config/configuration/laptop
./system-config
];
};
jesstop = nixpkgs.lib.nixosSystem {
specialArgs = {
inputs = inputs // {
};
};
modules = [
./system-config/configuration/jesstop
./system-config
];
};
pi4 = {
system = "aarch64-linux";
specialArgs = {
inputs = inputs // {
nathan = import ./home-manager/users/nathan;
home-manager-config = import ./home-manager;
inherit self;
};
};
modules = [
./system-config/configuration/pi4
./system-config
];
};
live = nixpkgs.lib.nixosSystem {
specialArgs = {
inputs = inputs // {
nathan = import ./home-manager/users/nathan;
home-manager-config = import ./home-manager;
inherit self;
};
};
modules = [
./system-config/configuration/live
./system-config
];
};
container = nixpkgs.lib.nixosSystem {
specialArgs = {
inputs = inputs // {
nathan = import ./home-manager/users/nathan;
home-manager-config = import ./home-manager;
inherit self;
};
};
modules = [
./system-config/configuration/containers/nathan
./system-config
];
};
iso = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = {
inputs = inputs // {
nathan = import ./home-manager/users/nathan;
home-manager-config = import ./home-manager;
inherit self;
};
};
modules = [
./system-config/configuration/iso
./system-config
];
};
};
nixOnDroidConfigurations.default = inputs.nix-on-droid.lib.nixOnDroidConfiguration {
pkgs = import nixpkgs {
system = "aarch64-linux";
overlays = [ inputs.nix-on-droid.overlays.default ];
};
modules = [
./system-config/configuration/android
];
extraSpecialArgs = {
inputs = inputs // {
nathan = import ./home-manager/users/nathan;
home-manager-config = import ./home-manager;
};
};
};
homeConfigurations = {
nathan = home-manager.lib.homeManagerConfiguration {
pkgs = import nixpkgs {
system = builtins.currentSystem;
};
modules = [
./home-manager
{
homeconfig = {
username = "nathan";
graphical = false;
minimal = false;
};
}
];
extraSpecialArgs = {
inherit inputs;
};
};
};
iso = self.nixosConfigurations.iso.config.system.build.isoImage;
};
}