nix-config/flake.nix

109 lines
3.5 KiB
Nix

{
description = "dnsc-server NixOS flake";
inputs = {
agenix.url = "github:ryantm/agenix";
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
nixpkgs-stable.url = "github:NixOS/nixpkgs/nixos-25.11";
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
nix-darwin.url = "github:LnL7/nix-darwin/master";
nix-darwin.inputs.nixpkgs.follows = "nixpkgs";
ip-whitelist.url = "github:Oak-Digital/nixos-ip-whitelist-firewall";
nix-homebrew.url = "github:zhaofengli/nix-homebrew";
zellij-switch.url = "github:mostafaqanbaryan/zellij-switch";
zen-browser.url = "github:0xc000022070/zen-browser-flake";
firefox-addons.url = "gitlab:rycee/nur-expressions?dir=pkgs/firefox-addons";
nixvim.url = "github:nix-community/nixvim";
noctalia = {
url = "github:noctalia-dev/noctalia-shell";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs =
{
self,
nixpkgs,
home-manager,
nix-darwin,
nix-homebrew,
agenix,
zellij-switch,
nixvim,
noctalia,
...
}@inputs:
let
inherit (self) outputs;
in
{
# Custom nixosModules
nixosModules.base = import ./modules/base;
nixosModules.macos = import ./modules/macos;
nixosModules.homebrew = import ./modules/homebrew;
nixosModules.aerospace = import ./modules/aerospace;
nixosModules.keyd = import ./modules/keyd;
nixosModules.ly = import ./modules/wm/ly;
nixosModules.unix = import ./modules/unix;
nixosModules.nvidia = import ./modules/unix/nvidia.nix;
nixosModules.bluetooth = import ./modules/unix/bluetooth.nix;
nixosModules.audio = import ./modules/unix/audio.nix;
nixosModules.printing = import ./modules/unix/printing.nix;
nixosModules.tablet = import ./modules/unix/tablet.nix;
nixosModules.steam = import ./modules/steam;
nixosModules.niriSystem = import ./modules/wm/niri-system;
nixosModules.direnv = import ./modules/direnv;
nixosConfigurations.dnsc-machine = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = { inherit inputs outputs; };
modules = [
./hosts/dnsc-machine
];
};
nixosConfigurations.dnsc-server = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = { inherit inputs outputs; };
modules = [
./hosts/dnsc-server
agenix.nixosModules.default
];
};
nixosConfigurations.dnsc-vps-sm = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = { inherit inputs outputs; };
modules = [
./hosts/dnsc-vps-sm
agenix.nixosModules.default
];
};
darwinConfigurations.dnsc-air = nix-darwin.lib.darwinSystem {
system = "aarch64-darwin";
specialArgs = { inherit inputs outputs; };
modules = [
nix-homebrew.darwinModules.nix-homebrew
./hosts/dnsc-air
];
};
darwinConfigurations.dnsc-work = nix-darwin.lib.darwinSystem {
system = "aarch64-darwin";
specialArgs = { inherit inputs outputs; };
modules = [
nix-homebrew.darwinModules.nix-homebrew
./hosts/dnsc-work
];
};
homeConfigurations."dnsc-deck" = home-manager.lib.homeManagerConfiguration {
pkgs = nixpkgs.legacyPackages.x86_64-linux;
modules = [ ./home/deck.nix ];
};
};
}