Nix-Vibe public snapshot (squashed history)

This commit is contained in:
2026-09-19 13:56:12 +01:00
commit aee8fb1e9b
119 changed files with 18895 additions and 0 deletions
+216
View File
@@ -0,0 +1,216 @@
{
description = "A vibrant NixOS configuration for multiple machines";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-24.11";
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
home-manager-stable = {
url = "github:nix-community/home-manager/release-24.11";
inputs.nixpkgs.follows = "nixpkgs-stable";
};
disko = {
url = "github:nix-community/disko";
inputs.nixpkgs.follows = "nixpkgs";
};
nixos-anywhere = {
url = "github:nix-community/nixos-anywhere";
inputs.nixpkgs.follows = "nixpkgs";
};
sops-nix = {
url = "github:Mic92/sops-nix";
inputs.nixpkgs.follows = "nixpkgs";
};
nix-flatpak.url = "github:gmodena/nix-flatpak";
# TeleportFling: standalone screen + audio sender for OBS Teleport.
teleportfling.url = "git+http://homeserver:3050/pedley/TeleportFling.git";
};
outputs =
{ self
, nixpkgs
, nixpkgs-stable
, home-manager
, home-manager-stable
, disko
, nixos-anywhere
, sops-nix
, nix-flatpak
, teleportfling
, ...
}@inputs:
let
system = "x86_64-linux";
serverOverlays = [
# Empty - antigravity removed
];
# Overlays shared by all desktops/laptops (no CUDA/NDI)
desktopOverlays = [
(final: prev: {
stable = import nixpkgs-stable {
system = final.stdenv.hostPlatform.system;
config = {
allowUnfree = true;
allowBroken = true;
};
};
})
];
# Full overlay set used by x1carbon only (CUDA + NDI for OBS Studio etc.)
overlays = [
(final: prev: {
stable = import nixpkgs-stable {
system = final.stdenv.hostPlatform.system;
config = {
allowUnfree = true;
allowBroken = true;
cudaSupport = true;
cudaCapabilities = [ "6.1" ];
};
};
})
(final: prev: {
ndi-6 = prev.ndi-6.overrideAttrs (old: {
src = prev.fetchurl {
url = "https://downloads.ndi.tv/SDK/NDI_SDK_Linux/Install_NDI_SDK_v6_Linux.tar.gz";
hash = "sha256-8DFPJFRG3vxIi2POtGiazxqWWu79ray3BXG7IWqMwYM=";
};
});
})
];
# Packages with known vulnerabilities that are explicitly permitted.
# Single-sourced here; referenced by the mkNixosSystem module below.
permittedInsecurePackages = [
"electron-39.8.10"
"qtwebengine-5.15.19"
"ventoy-1.1.17"
];
# Specific pkgs for Desktop with CUDA support (using stable to avoid broken CUDA builds)
# No longer needed as a separate input, we use overlays now.
# pkgsDesktop = ... (Removed)
# Function to generate a NixOS system configuration
hostUsers = {
x1carbon = [ "petere" ];
caitlin-x1 = [
"caitlin"
"petere"
];
x470 = [
"petere"
"guest"
];
mary-x270 = [
"mary"
"petere"
];
richmond-server = [ "petere" ];
homeserver-1 = [ "petere" ];
mcf-server = [ "petere" ];
mcf-stream = [
"guest"
"petere"
];
hp-laptop = [ "petere" ];
};
# Function to generate a NixOS system configuration
mkNixosSystem =
hostname:
{ specialArgs ? { }
, modules ? [ ]
, hostOverlays ? desktopOverlays
, nixpkgsInput ? nixpkgs
, homeManagerInput ? home-manager
,
}:
nixpkgsInput.lib.nixosSystem {
# Use the original nixpkgs.lib here
specialArgs = {
inherit inputs;
}
// specialArgs; # Removed pkgs from specialArgs
modules = [
{
nixpkgs.config.allowUnfree = true;
nixpkgs.config.permittedInsecurePackages = permittedInsecurePackages;
nixpkgs.overlays = hostOverlays;
}
sops-nix.nixosModules.sops
(./hosts + "/${hostname}/configuration.nix")
homeManagerInput.nixosModules.home-manager
nix-flatpak.nixosModules.nix-flatpak
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.backupFileExtension = "backup";
home-manager.extraSpecialArgs = { inherit inputs; };
home-manager.sharedModules = [
./home-manager/modules/zsh.nix
];
}
]
++ (nixpkgs.lib.map # Use original nixpkgs.lib here
(user: import (./home-manager/users + "/${user}.nix"))
(hostUsers.${hostname} or [ ])
)
++ modules;
};
in
{
nixosConfigurations = {
x1carbon = mkNixosSystem "x1carbon" {
hostOverlays = overlays;
};
caitlin-x1 = mkNixosSystem "caitlin-x1" { };
x470 = mkNixosSystem "x470" { };
mary-x270 = mkNixosSystem "mary-x270" { };
richmond-server = mkNixosSystem "richmond-server" {
hostOverlays = serverOverlays;
};
homeserver-1 = mkNixosSystem "homeserver-1" {
hostOverlays = serverOverlays;
};
mcf-server = mkNixosSystem "mcf-server" {
hostOverlays = serverOverlays;
};
mcf-stream = mkNixosSystem "mcf-stream" { };
hp-laptop = mkNixosSystem "hp-laptop" { };
};
packages.${system} = { };
formatter.${system} = nixpkgs.legacyPackages.${system}.nixfmt;
devShells.${system}.default =
let
devPkgs = nixpkgs.legacyPackages.${system};
in
devPkgs.mkShell {
packages = with devPkgs; [
sops
age
nixfmt
];
};
};
}