Files
dotfiles/flake.nix

160 lines
4.0 KiB
Nix
Raw Permalink Normal View History

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/";
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";
};
jovian-nixos = {
2026-03-04 19:22:16 -05:00
url = "github:Jovian-Experiments/Jovian-NixOS";
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 = {
url = "github:numtide/llm-agents.nix";
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,
nixpkgs,
2025-04-07 21:06:43 -04:00
lanzaboote,
nixos-hardware,
home-manager,
2025-11-16 19:30:08 -05:00
deploy-rs,
jovian-nixos,
2025-04-07 21:06:43 -04:00
...
}@inputs:
let
username = "primary";
system = "x86_64-linux";
hostnames = [
"mreow"
"yarn"
];
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
nixosConfigurations = nixpkgs.lib.foldl' (
2025-04-07 21:06:43 -04:00
config: hostname:
config
// {
"${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
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
};
}