flake/flake.nix

233 lines
6.9 KiB
Nix
Raw Normal View History

2024-11-16 13:38:09 -05:00
{
description = "System Configuration @ cswimr 2024";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
2024-12-14 09:08:02 -05:00
staging-next.url = "github:NixOS/nixpkgs/staging-next";
2024-11-16 13:38:09 -05:00
home-manager = {
url = "github:nix-community/home-manager/master";
inputs.nixpkgs.follows = "nixpkgs";
};
nur = {
url = "github:nix-community/NUR";
inputs.nixpkgs.follows = "nixpkgs";
};
2024-12-02 15:56:32 -05:00
plasma-manager = {
url = "github:nix-community/plasma-manager";
inputs.nixpkgs.follows = "nixpkgs";
inputs.home-manager.follows = "home-manager";
};
2024-12-02 20:50:24 -05:00
sops-nix = {
url = "github:Mic92/sops-nix";
inputs.nixpkgs.follows = "nixpkgs";
};
lanzaboote = {
url = "github:nix-community/lanzaboote/v0.4.1";
inputs.nixpkgs.follows = "nixpkgs";
};
2024-11-25 14:19:57 -05:00
nix-flatpak.url = "github:gmodena/nix-flatpak";
2024-11-20 11:41:10 -05:00
nixvim = {
url = "github:nix-community/nixvim";
inputs.nixpkgs.follows = "nixpkgs";
};
2024-12-08 19:32:32 -05:00
nix-index-database = {
url = "github:nix-community/nix-index-database";
inputs.nixpkgs.follows = "nixpkgs";
};
2024-11-16 13:38:09 -05:00
compose2nix = {
url = "github:aksiksi/compose2nix";
inputs.nixpkgs.follows = "nixpkgs";
};
nix-vscode-extensions.url = "github:nix-community/nix-vscode-extensions";
catppuccin-vsc.url = "https://flakehub.com/f/catppuccin/vscode/*.tar.gz";
2024-12-20 12:18:29 -05:00
gauntlet = {
url = "github:/project-gauntlet/gauntlet/v12";
2024-12-20 12:18:29 -05:00
inputs.nixpkgs.follows = "nixpkgs";
};
2024-11-16 13:38:09 -05:00
};
outputs =
{
self,
nixpkgs,
home-manager,
...
}@inputs:
let
2024-12-02 15:56:32 -05:00
user = "cswimr";
system = "x86_64-linux";
pkgs = import nixpkgs {
inherit system;
overlays = [
inputs.catppuccin-vsc.overlays.default
inputs.nur.overlays.default
2024-12-20 12:18:29 -05:00
inputs.gauntlet.overlays.default
];
config.allowUnfree = true;
};
2024-12-14 09:08:02 -05:00
stagingNextPkgs = import inputs.staging-next {
inherit system;
config.allowUnfree = true;
};
in
{
2024-11-16 13:38:09 -05:00
nixosConfigurations = {
eclipse = nixpkgs.lib.nixosSystem {
system = system;
specialArgs = {
inherit inputs;
inherit pkgs;
2024-12-14 09:08:02 -05:00
inherit stagingNextPkgs;
system = system;
hostname = "eclipse";
2024-12-02 20:50:24 -05:00
user = user;
};
2024-11-16 13:38:09 -05:00
modules = [
# imports
./hosts/eclipse.nix
./nixos/catppuccin.nix
2024-11-16 13:38:09 -05:00
./nixos/configuration.nix
2024-11-18 14:27:31 -05:00
./nixos/development.nix
2024-11-20 12:10:28 -05:00
./nixos/environment.nix
2024-11-25 14:19:57 -05:00
./nixos/flatpak.nix
./nixos/gaming.nix
2024-11-16 13:38:09 -05:00
./nixos/git.nix
./nixos/gui-pkgs.nix
2024-11-16 13:38:09 -05:00
./nixos/nvidia.nix
./nixos/nvim.nix
./nixos/pkg.nix
2024-11-22 09:07:36 -05:00
./nixos/shell.nix
2024-12-02 20:50:24 -05:00
./nixos/sops.nix
2024-11-16 13:38:09 -05:00
./nixos/sudo.nix
./nixos/symlinks.nix
2024-11-16 13:38:09 -05:00
./nixos/tailscale.nix
2024-12-03 16:40:01 -05:00
./nixos/tpm.nix
2024-11-16 13:38:09 -05:00
{
# enable bluetooth
hardware.bluetooth.enable = true;
}
2024-12-02 20:50:24 -05:00
inputs.sops-nix.nixosModules.sops
2024-11-20 11:41:10 -05:00
inputs.nixvim.nixosModules.nixvim
inputs.nur.modules.nixos.default
2024-11-25 14:19:57 -05:00
inputs.nix-flatpak.nixosModules.nix-flatpak
2024-11-16 13:38:09 -05:00
inputs.lanzaboote.nixosModules.lanzaboote
(
{ lib, ... }:
{
boot.loader.systemd-boot.enable = lib.mkForce false;
boot.lanzaboote = {
enable = true;
pkiBundle = "/etc/secureboot";
};
}
)
2024-12-08 19:32:32 -05:00
inputs.nix-index-database.nixosModules.nix-index
{ programs.nix-index-database.comma.enable = true; }
2024-11-16 13:38:09 -05:00
# Home Manager
home-manager.nixosModules.home-manager
{
home-manager = {
useGlobalPkgs = true;
useUserPackages = true;
sharedModules = [
inputs.nur.modules.homeManager.default
inputs.plasma-manager.homeManagerModules.plasma-manager
];
backupFileExtension = "bak";
extraSpecialArgs = {
inherit inputs;
inherit pkgs;
2024-12-14 09:08:02 -05:00
inherit stagingNextPkgs;
system = system;
hostname = "eclipse";
2024-12-02 15:56:32 -05:00
user = user;
};
2024-12-02 15:56:32 -05:00
users.${user} = {
imports = [
./home-manager/browser.nix
2024-12-20 13:50:42 -05:00
#FIXME - No idea why this is failing with a 'too many files open' error
#./home-manager/gauntlet.nix
./home-manager/plasma.nix
2024-12-03 16:40:01 -05:00
./home-manager/tpm.nix
2024-12-02 15:56:32 -05:00
./home-manager/user.nix
./home-manager/vscode.nix
{
programs.git.extraConfig.user.signingkey = "0EC431A8DA8F8087";
}
];
};
};
}
];
};
nebula = nixpkgs.lib.nixosSystem {
system = system;
specialArgs = {
inherit inputs;
inherit pkgs;
system = system;
hostname = "nebula";
};
modules = [
# imports
./hosts/nebula.nix
./nixos/catppuccin.nix
./nixos/configuration.nix
./nixos/development.nix
./nixos/environment.nix
./nixos/gaming.nix
./nixos/git.nix
./nixos/gui-pkgs.nix
./nixos/nvim.nix
./nixos/pkg.nix
./nixos/shell.nix
./nixos/sudo.nix
./nixos/symlinks.nix
./nixos/tailscale.nix
{
# enable bluetooth
hardware.bluetooth.enable = true;
}
inputs.nixvim.nixosModules.nixvim
inputs.nix-flatpak.nixosModules.nix-flatpak
# Home Manager
home-manager.nixosModules.home-manager
{
home-manager = {
useGlobalPkgs = true;
useUserPackages = true;
sharedModules = [ inputs.plasma-manager.homeManagerModules.plasma-manager ];
backupFileExtension = "bak";
extraSpecialArgs = {
inherit inputs;
inherit pkgs;
system = system;
hostname = "nebula";
2024-12-02 15:56:32 -05:00
user = user;
};
2024-12-02 15:56:32 -05:00
users.${user} = {
imports = [
./home-manager/plasma.nix
2024-12-02 15:56:32 -05:00
./home-manager/user.nix
./home-manager/vscode.nix
{
programs.git.extraConfig.user.signingkey = "082F226A1D8C0860";
}
];
};
2024-11-16 13:38:09 -05:00
};
}
];
};
};
2024-12-02 15:56:32 -05:00
};
2024-11-16 13:38:09 -05:00
}