2025-04-07 21:06:43 -04:00
|
|
|
{
|
|
|
|
|
description = "System nixOS flake";
|
|
|
|
|
|
|
|
|
|
inputs = {
|
2025-11-12 23:34:01 -05:00
|
|
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
2025-04-07 21:06:43 -04:00
|
|
|
|
|
|
|
|
lanzaboote = {
|
|
|
|
|
url = "github:nix-community/lanzaboote";
|
|
|
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
2026-01-08 06:12:50 -05:00
|
|
|
inputs.rust-overlay.follows = "rust-overlay";
|
2025-04-07 21:06:43 -04:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
|
|
|
|
|
|
|
|
|
|
home-manager = {
|
2025-11-12 23:34:01 -05:00
|
|
|
url = "github:nix-community/home-manager";
|
2025-04-07 21:06:43 -04:00
|
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
disko = {
|
|
|
|
|
url = "github:nix-community/disko/latest";
|
|
|
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
rust-overlay = {
|
|
|
|
|
url = "github:oxalica/rust-overlay";
|
|
|
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
zen-browser = {
|
|
|
|
|
url = "github:0xc000022070/zen-browser-flake";
|
|
|
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
2025-04-14 17:08:42 -04:00
|
|
|
inputs.home-manager.follows = "home-manager";
|
2025-04-07 21:06:43 -04:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
niri = {
|
|
|
|
|
url = "github:sodiboo/niri-flake";
|
|
|
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
2025-05-15 22:20:46 -07:00
|
|
|
inputs.nixpkgs-stable.follows = "nixpkgs";
|
2025-04-07 21:06:43 -04:00
|
|
|
};
|
2025-06-05 19:22:39 -07:00
|
|
|
|
|
|
|
|
emacs-overlay = {
|
|
|
|
|
url = "github:nix-community/emacs-overlay";
|
|
|
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
|
|
|
inputs.nixpkgs-stable.follows = "nixpkgs";
|
|
|
|
|
};
|
2025-10-06 22:55:08 -04:00
|
|
|
|
|
|
|
|
nix-flatpak.url = "github:gmodena/nix-flatpak/";
|
2025-10-17 13:24:24 -04:00
|
|
|
|
|
|
|
|
nix-doom-emacs-unstraightened = {
|
|
|
|
|
url = "github:marienz/nix-doom-emacs-unstraightened";
|
|
|
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
|
|
|
inputs.emacs-overlay.follows = "emacs-overlay";
|
|
|
|
|
};
|
2025-11-16 02:49:37 -05:00
|
|
|
|
|
|
|
|
impermanence = {
|
|
|
|
|
url = "github:nix-community/impermanence";
|
2026-01-08 06:12:50 -05:00
|
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
|
|
|
inputs.home-manager.follows = "home-manager";
|
2025-11-16 02:49:37 -05:00
|
|
|
};
|
2025-11-16 19:30:08 -05:00
|
|
|
|
|
|
|
|
deploy-rs = {
|
|
|
|
|
url = "github:serokell/deploy-rs";
|
|
|
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
|
|
|
};
|
2025-11-21 10:14:31 -05:00
|
|
|
|
2025-11-25 19:44:29 -05:00
|
|
|
jovian-nixos = {
|
2026-03-04 19:22:16 -05:00
|
|
|
url = "github:Jovian-Experiments/Jovian-NixOS";
|
2025-11-21 10:14:31 -05:00
|
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
|
|
|
};
|
2025-12-09 21:52:29 -05:00
|
|
|
|
2026-02-03 13:20:14 -05:00
|
|
|
noctalia = {
|
|
|
|
|
url = "github:noctalia-dev/noctalia-shell";
|
|
|
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
|
|
|
};
|
|
|
|
|
|
2025-12-09 21:52:29 -05:00
|
|
|
llm-agents = {
|
2026-03-10 12:20:01 -04:00
|
|
|
url = "github:numtide/llm-agents.nix";
|
2026-01-28 12:16:00 -05:00
|
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
|
|
|
};
|
2026-02-25 01:57:48 -05:00
|
|
|
|
|
|
|
|
json2steamshortcut = {
|
|
|
|
|
url = "github:ChrisOboe/json2steamshortcut";
|
|
|
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
|
|
|
};
|
2025-04-07 21:06:43 -04:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
outputs =
|
|
|
|
|
{
|
|
|
|
|
self,
|
2025-11-24 16:43:16 -05:00
|
|
|
nixpkgs,
|
2025-04-07 21:06:43 -04:00
|
|
|
lanzaboote,
|
|
|
|
|
nixos-hardware,
|
|
|
|
|
home-manager,
|
2025-11-16 19:30:08 -05:00
|
|
|
deploy-rs,
|
2025-11-25 19:44:29 -05:00
|
|
|
jovian-nixos,
|
2025-04-07 21:06:43 -04:00
|
|
|
...
|
|
|
|
|
}@inputs:
|
|
|
|
|
let
|
|
|
|
|
username = "primary";
|
|
|
|
|
system = "x86_64-linux";
|
|
|
|
|
hostnames = [
|
|
|
|
|
"mreow"
|
|
|
|
|
"yarn"
|
|
|
|
|
];
|
2025-11-21 10:14:31 -05:00
|
|
|
niri-package = inputs.niri.packages.${system}.niri-unstable;
|
2025-04-07 21:06:43 -04:00
|
|
|
in
|
|
|
|
|
{
|
2026-01-12 15:22:16 -05:00
|
|
|
formatter.${system} = nixpkgs.legacyPackages.${system}.nixfmt-tree;
|
2025-11-16 19:30:08 -05:00
|
|
|
|
2025-11-24 16:43:16 -05:00
|
|
|
nixosConfigurations = nixpkgs.lib.foldl' (
|
2025-04-07 21:06:43 -04:00
|
|
|
config: hostname:
|
|
|
|
|
config
|
|
|
|
|
// {
|
2025-11-24 16:43:16 -05:00
|
|
|
"${hostname}" = nixpkgs.lib.nixosSystem {
|
2025-04-07 21:06:43 -04:00
|
|
|
specialArgs = {
|
2025-04-07 21:39:19 -04:00
|
|
|
inherit
|
|
|
|
|
inputs
|
|
|
|
|
username
|
|
|
|
|
hostname
|
2025-11-21 10:14:31 -05:00
|
|
|
niri-package
|
2025-04-07 21:39:19 -04:00
|
|
|
;
|
2025-04-07 21:06:43 -04:00
|
|
|
};
|
|
|
|
|
modules = [
|
|
|
|
|
home-manager.nixosModules.home-manager
|
|
|
|
|
(
|
2025-06-24 23:28:25 -07:00
|
|
|
{ config, ... }:
|
2025-04-07 21:06:43 -04:00
|
|
|
{
|
2025-04-07 21:34:13 -04:00
|
|
|
# home-manager.useGlobalPkgs = true;
|
|
|
|
|
home-manager.useUserPackages = true;
|
|
|
|
|
home-manager.extraSpecialArgs = {
|
2025-11-21 14:14:45 -05:00
|
|
|
inherit
|
|
|
|
|
inputs
|
|
|
|
|
hostname
|
|
|
|
|
username
|
|
|
|
|
niri-package
|
|
|
|
|
;
|
2025-04-07 21:34:13 -04:00
|
|
|
homeDirectory = "/home/${username}";
|
2025-06-24 23:28:25 -07:00
|
|
|
stateVersion = config.system.stateVersion;
|
2025-04-07 21:34:13 -04:00
|
|
|
};
|
|
|
|
|
home-manager.users.${username} = import ./home-manager/home-${hostname}.nix;
|
2025-04-07 21:06:43 -04:00
|
|
|
}
|
|
|
|
|
)
|
2025-11-21 12:19:28 -05:00
|
|
|
./system/system-${hostname}.nix
|
2025-04-07 21:06:43 -04:00
|
|
|
];
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
) { } hostnames;
|
2025-11-16 19:30:08 -05:00
|
|
|
|
|
|
|
|
# Deploy-rs configuration for yarn host only
|
|
|
|
|
deploy.nodes.yarn = {
|
|
|
|
|
hostname = "desktop";
|
|
|
|
|
profiles.system = {
|
2025-11-16 20:02:22 -05:00
|
|
|
sshUser = "root";
|
2025-11-16 19:30:08 -05:00
|
|
|
path = deploy-rs.lib.${system}.activate.nixos self.nixosConfigurations.yarn;
|
|
|
|
|
};
|
|
|
|
|
};
|
2025-04-07 21:06:43 -04:00
|
|
|
};
|
|
|
|
|
}
|