1
0
Files
nix-shared/flake.nix
2025-12-02 17:03:31 -08:00

94 lines
2.2 KiB
Nix

{
description = "Timo's Shared Nix Modules";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.11";
};
outputs = { self, nixpkgs, ... }: {
# Set up formatter.
formatter.x86_64-linux = nixpkgs.legacyPackages.x86_64-linux.nixpkgs-fmt;
# Global all-hosts configuration
nixosModules.default = { ... }: {
imports = [
./system/default/editor.nix
./system/default/nix.nix
./system/default/packages.nix
./system/default/prompt.nix
./system/default/scripts.nix
./system/default/ssh-authorized-keys.nix
];
};
# Linux specific system configuration
nixosModules.linux = { ... }: {
imports = [
./system/linux/i18n.nix
./system/linux/openssh.nix
./system/linux/system.nix
./system/linux/user-tb.nix
];
};
# MacOS specific system configuration
nixosModules.macos = { ... }: {
imports = [
./system/macos/environment.nix
./system/macos/fonts.nix
./system/macos/hotkeys.nix
./system/macos/nix.nix
./system/macos/system.nix
./system/macos/yabai.nix
];
};
# Tools on all development machines
nixosModules.develop = { ... }: {
imports = [
./system/develop/packages.nix
./system/develop/scripts.nix
];
};
# Home Manager Modules
homeManagerModules.default = { ... }: {
imports = [
./home/default/bash.nix
./home/default/basic.nix
./home/default/direnv.nix
./home/default/git.nix
];
};
# Add private homelab and cloud host aliases
homeManagerModules.private = { ... }: {
imports = [
./home/private/git.nix
./home/private/ssh-hosts.nix
];
};
# MacOS specific home configuration
homeManagerModules.macos = { ... }: {
imports = [
./home/macos/home.nix
];
};
# Emacs Configuration
homeManagerModules.develop = { ... }: {
imports = [
./home/develop/emacs.nix
];
};
# Claude Code configuration
homeManagerModules.claude = { ... }: {
imports = [
./home/claude/config.nix
];
};
};
}