{ description = "NixOS Configuration"; inputs = { # General NixOS config nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; nixpkgs-24-11.url = "github:NixOS/nixpkgs/nixos-24.11"; # Colmena unstable colmena = { url = "github:zhaofengli/colmena"; # inputs.nixpkgs.follows = "nixpkgs"; }; # Nixpkgs index for command-not-found support nix-index-database = { url = "github:nix-community/nix-index-database"; inputs.nixpkgs.follows = "nixpkgs"; }; # NixOS Grub Themes (hyperfluent) nixos-grub-themes = { url = "github:jeslie0/nixos-grub-themes"; inputs.nixpkgs.follows = "nixpkgs"; }; # SDDM Sugar Candy sddm-sugar-candy-nix = { url = "github:Zhaith-Izaliel/sddm-sugar-candy-nix"; inputs.nixpkgs.follows = "nixpkgs"; }; # Home Manager + Plasma home-manager = { url = "github:nix-community/home-manager/master"; inputs.nixpkgs.follows = "nixpkgs"; }; plasma-manager = { url = "github:nix-community/plasma-manager"; inputs.nixpkgs.follows = "nixpkgs"; inputs.home-manager.follows = "home-manager"; }; # Firefox Nightly + Addons firefox-nightly = { url = "github:nix-community/flake-firefox-nightly"; inputs.nixpkgs.follows = "nixpkgs"; }; firefox-addons = { type = "gitlab"; owner = "rycee"; repo = "nur-expressions"; dir = "/pkgs/firefox-addons"; inputs.nixpkgs.follows = "nixpkgs"; }; # VSCode extensions vscode-extensions = { url = "github:nix-community/nix-vscode-extensions"; inputs.nixpkgs.follows = "nixpkgs"; }; # VSCode server support vscode-server.url = "github:nix-community/nixos-vscode-server"; }; outputs = inputs@{ self, nixpkgs, home-manager, nix-index-database, vscode-server, colmena, ... }: let system = "x86_64-linux"; pkgs = nixpkgs.legacyPackages.${system}; secrets = import ./secrets.nix; in { nixosConfigurations.ty-nixos = nixpkgs.lib.nixosSystem { inherit system; modules = [ ./hosts/laptop # Better command-not-found nix-index-database.nixosModules.nix-index { programs.nix-index-database.comma.enable = true; } # Home manager home-manager.nixosModules.home-manager ./home-manager { meta.home-manager.preset = "plasma-desktop"; } ]; specialArgs = { inherit inputs system secrets; }; }; nixosConfigurations."ty-laptop-server" = nixpkgs.lib.nixosSystem { inherit system; modules = [ ./hosts/laptop-server # Better command-not-found nix-index-database.nixosModules.nix-index { programs.nix-index-database.comma.enable = true; } # Home manager home-manager.nixosModules.home-manager ./home-manager { meta.home-manager.preset = "cli"; } # VSCode server support vscode-server.nixosModules.default ({ pkgs, ... }: { services.vscode-server = { enable = true; nodejsPackage = pkgs.nodejs-18_x; installPath = "$HOME/.vscodium-server"; }; }) ]; specialArgs = { inherit inputs system secrets; }; }; colmenaHive = colmena.lib.makeHive self.outputs.colmena; colmena = { meta = { nixpkgs = import nixpkgs { system = "x86_64-linux"; }; specialArgs = { inherit inputs secrets; system = "x86_64-linux"; }; allowApplyAll = false; }; "ty-laptop-server" = { config, ... }: { deployment = { replaceUnknownProfiles = false; targetUser = "root"; targetHost = "old-lenovo-laptop"; # i should rename my tailscale devices properly targetPort = 22; }; imports = [ ./hosts/laptop-server # Better command-not-found nix-index-database.nixosModules.nix-index { programs.nix-index-database.comma.enable = true; } # Home manager home-manager.nixosModules.home-manager ./home-manager { ty-home-manager-options = { plasma.enable = false; beets.enable = false; firefox.enable = false; thunderbird.enable = false; rescrobbled.enable = false; vscode.enable = false; }; } # VSCode server support vscode-server.nixosModules.default ({ pkgs, ... }: { services.vscode-server = { enable = true; nodejsPackage = pkgs.nodejs-18_x; installPath = "$HOME/.vscodium-server"; }; }) ]; }; }; }; }