nix-flakes/flake.nix
2026-07-26 03:29:26 +09:00

154 lines
4.3 KiB
Nix

{
description = "imnyang's Nix Configuration";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
nixpkgs-2511.url = "github:NixOS/nixpkgs/nixos-25.11";
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
spicetify-nix.url = "github:Gerg-L/spicetify-nix";
catppuccin.url = "github:catppuccin/nix";
nix-flatpak.url = "github:gmodena/nix-flatpak/";
plasma-manager = {
url = "github:nix-community/plasma-manager";
inputs.nixpkgs.follows = "nixpkgs";
inputs.home-manager.follows = "home-manager";
};
darwin = {
url = "github:nix-darwin/nix-darwin";
inputs.nixpkgs.follows = "nixpkgs";
};
nix-homebrew.url = "github:zhaofengli/nix-homebrew";
sops-nix = {
url = "github:Mic92/sops-nix";
inputs.nixpkgs.follows = "nixpkgs";
};
nixcord.url = "github:FlameFlag/nixcord";
# nixcord.url = "path:/home/imnyang/workspaces/git/imnyang/nixcord";
vscode-nigo = {
url = "git+https://git.pari.ng/imnyang/vscode-nigo.git?ref=main";
inputs.nixpkgs.follows = "nixpkgs";
};
notion-desktop = {
url = "github:heytcass/notion-mac-flake";
inputs.nixpkgs.follows = "nixpkgs";
};
# notion-calendar-electron.url = "github:czlabinger/notion-calendar-electron";
millennium.url = "github:SteamClientHomebrew/Millennium?dir=packages/nix";
vicinae.url = "github:vicinaehq/vicinae";
vicinae-extensions = {
url = "github:vicinaehq/extensions";
inputs.nixpkgs.follows = "nixpkgs";
};
nixos-wsl.url = "github:nix-community/NixOS-WSL/main";
codex-app = {
url = "github:ilysenko/codex-desktop-linux";
};
quadlet-nix.url = "github:SEIAROTg/quadlet-nix";
rustfs = {
url = "github:rustfs/rustfs-flake";
inputs.nixpkgs.follows = "nixpkgs";
};
imnyang.url = "git+https://git.mizuki.guru/imnyang/nix-packages.git";
paring.url = "git+https://git.pari.ng/paring/nix-packages.git";
mizuki-nc.url = "git+https://git.mizuki.guru/imnyang/mizuki.guru.git?rev=70b1c9a2befc933c63f2b3197655b4f1166f9fbb";
muvel.url = "github:imnyang/muvel-nix";
# Git source filtering keeps config.toml and state.json out of the Nix store.
amiaBot = {
url = "git+file:///home/imnyang/workspaces/git/imnyang/amia";
flake = false;
};
};
outputs =
inputs@{
imnyang,
paring,
...
}:
let
# Overlays
overlays = [
paring.overlays.default
imnyang.overlays.default
inputs.millennium.overlays.default
(import ./overlays/spotx.nix)
(final: prev: {
vulkan-validation-layers = prev.vulkan-validation-layers.overrideAttrs (old: {
cmakeFlags = (old.cmakeFlags or [ ]) ++ [
# Fixed upstream; keep this until the locked nixpkgs includes it.
"-DUPDATE_DEPS=OFF"
];
});
pythonPackagesExtensions = (prev.pythonPackagesExtensions or [ ]) ++ [
(python-final: python-prev: {
uefi-firmware-parser = python-prev.uefi-firmware-parser.overridePythonAttrs (old: {
build-system = (old.build-system or [ ]) ++ [
python-final.setuptools-scm
];
});
})
];
})
(import ./overlays/hoffice)
];
mkHost =
hostPath: overlays:
import hostPath {
inherit inputs overlays;
};
in
{
nixosConfigurations = {
# Machine
mafuyu = mkHost ./hosts/machine/mafuyu overlays;
mizuki = mkHost ./hosts/machine/mizuki overlays;
ena = mkHost ./hosts/machine/ena overlays;
ribbon = mkHost ./hosts/machine/ribbon [
paring.overlays.default
imnyang.overlays.default
];
installer = mkHost ./hosts/installer overlays;
# Server
hikari = mkHost ./hosts/server/hikari/default overlays;
hako = mkHost ./hosts/server/hikari/hako overlays;
amia = mkHost ./hosts/server/hikari/amia overlays;
natsu = mkHost ./hosts/server/natsu overlays;
kazusa = mkHost ./hosts/server/kazusa overlays;
};
darwinConfigurations = {
# Machine
kanade = mkHost ./hosts/machine/kanade overlays;
};
};
}