flake/flake.nix
cswimr 4b31769241
switch from zen-browser to floorp
this change was made for a multitude of reasons:
1. Zen's constant updates would be completely fine if they didn't almost always result in some part of my workflow being broken. I want my browser to be stable, I don't want updating to break the address bar completely like the latest update as of writing (1.0.2b)
2. Floorp is supported by Home Manager, allowing me to declaratively manage my browser configuration.
2024-12-11 15:05:31 -05:00

218 lines
6.3 KiB
Nix

{
description = "System Configuration @ cswimr 2024";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
home-manager = {
url = "github:nix-community/home-manager/master";
inputs.nixpkgs.follows = "nixpkgs";
};
nur = {
url = "github:nix-community/NUR";
inputs.nixpkgs.follows = "nixpkgs";
};
plasma-manager = {
url = "github:nix-community/plasma-manager";
inputs.nixpkgs.follows = "nixpkgs";
inputs.home-manager.follows = "home-manager";
};
sops-nix = {
url = "github:Mic92/sops-nix";
inputs.nixpkgs.follows = "nixpkgs";
};
lanzaboote = {
url = "github:nix-community/lanzaboote/v0.4.1";
inputs.nixpkgs.follows = "nixpkgs";
};
nix-flatpak.url = "github:gmodena/nix-flatpak";
nixvim = {
url = "github:nix-community/nixvim";
inputs.nixpkgs.follows = "nixpkgs";
};
nix-index-database = {
url = "github:nix-community/nix-index-database";
inputs.nixpkgs.follows = "nixpkgs";
};
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";
};
outputs =
{
self,
nixpkgs,
home-manager,
...
}@inputs:
let
user = "cswimr";
system = "x86_64-linux";
pkgs = import nixpkgs {
inherit system;
overlays = [
inputs.catppuccin-vsc.overlays.default
inputs.nur.overlays.default
];
config.allowUnfree = true;
};
in
{
nixosConfigurations = {
eclipse = nixpkgs.lib.nixosSystem {
system = system;
specialArgs = {
inherit inputs;
inherit pkgs;
system = system;
hostname = "eclipse";
user = user;
};
modules = [
# imports
./hosts/eclipse.nix
./nixos/catppuccin.nix
./nixos/configuration.nix
./nixos/development.nix
./nixos/environment.nix
./nixos/flatpak.nix
./nixos/gaming.nix
./nixos/git.nix
./nixos/gui-pkgs.nix
./nixos/nvidia.nix
./nixos/nvim.nix
./nixos/pkg.nix
./nixos/shell.nix
./nixos/sops.nix
./nixos/sudo.nix
./nixos/symlinks.nix
./nixos/tailscale.nix
./nixos/tpm.nix
{
# enable bluetooth
hardware.bluetooth.enable = true;
}
inputs.sops-nix.nixosModules.sops
inputs.nixvim.nixosModules.nixvim
inputs.nur.modules.nixos.default
inputs.nix-flatpak.nixosModules.nix-flatpak
inputs.lanzaboote.nixosModules.lanzaboote
(
{ lib, ... }:
{
boot.loader.systemd-boot.enable = lib.mkForce false;
boot.lanzaboote = {
enable = true;
pkiBundle = "/etc/secureboot";
};
}
)
inputs.nix-index-database.nixosModules.nix-index
{ programs.nix-index-database.comma.enable = true; }
# 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;
system = system;
hostname = "eclipse";
user = user;
};
users.${user} = {
imports = [
./home-manager/browser.nix
./home-manager/plasma.nix
./home-manager/tpm.nix
./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";
user = user;
};
users.${user} = {
imports = [
./home-manager/plasma.nix
./home-manager/user.nix
./home-manager/vscode.nix
{
programs.git.extraConfig.user.signingkey = "082F226A1D8C0860";
}
];
};
};
}
];
};
};
};
}