{ description = "Development host"; inputs = { # Release branches may advance; flake.lock records every exact snapshot. nixpkgs.url = "github:NixOS/nixpkgs/nixos-26.05"; home-manager = { url = "github:nix-community/home-manager/release-26.05"; inputs.nixpkgs.follows = "nixpkgs"; }; # Fast-moving developer tools can lag behind stable release branches. # flake.lock still records the exact resolved snapshot. nixpkgs-latest.url = "github:NixOS/nixpkgs/master"; neovim-dots = { url = "git+https://git.cyber.ayyalasomayajula.net/marsultor/neovim-dots?ref=main&rev=380eb86778a7c53a0f1c18e84f14037456155347"; flake = false; }; }; outputs = inputs@{ nixpkgs, home-manager, ... }: { nixosConfigurations.dev = nixpkgs.lib.nixosSystem { specialArgs = { inherit inputs; }; modules = [ ./configuration.nix home-manager.nixosModules.home-manager ]; }; # Physical laptop: dev + managed Hyprland; preserve its boot/storage. nixosConfigurations.nixos = nixpkgs.lib.nixosSystem { specialArgs = { inherit inputs; }; modules = [ ./physical.nix home-manager.nixosModules.home-manager ]; }; formatter.x86_64-linux = nixpkgs.legacyPackages.x86_64-linux.nixfmt; packages.x86_64-linux.element-nightly = import ./element-nightly.nix { pkgs = nixpkgs.legacyPackages.x86_64-linux; }; nixosModules = { desktop = ./desktop.nix; apps = ./apps.nix; tools = ./tools.nix; network = ./network.nix; workstation = ./workstation.nix; nvidia = ./nvidia.nix; }; checks.x86_64-linux = let pkgs = nixpkgs.legacyPackages.x86_64-linux; in { desktop = import ./desktop-test.nix { inherit inputs pkgs; }; tools = import ./tools-test.nix { inherit pkgs; config = inputs.self.nixosConfigurations.nixos.config; }; physical-config = import ./physical-test.nix { inherit pkgs; config = inputs.self.nixosConfigurations.nixos.config; }; desktop-actions = pkgs.runCommand "desktop-actions-check" { nativeBuildInputs = [ pkgs.python3 ]; } '' python ${./desktop-actions-test.py} ${./desktop-actions.py} touch "$out" ''; desktop-config = pkgs.runCommand "hyprland-config-check" { nativeBuildInputs = [ pkgs.hyprland ]; } '' export HOME="$TMPDIR/home" XDG_RUNTIME_DIR="$TMPDIR/runtime" mkdir -m 700 -p "$HOME" "$XDG_RUNTIME_DIR" Hyprland --verify-config -c ${ inputs.self.nixosConfigurations.nixos.config.home-manager.users.dev.xdg.configFile."hypr/hyprland.lua".source } touch "$out" ''; updates = pkgs.runCommand "update-workflow-check" { nativeBuildInputs = with pkgs; [ python3 git bash coreutils util-linux ]; } '' python ${./update-test.py} ${./update-system.sh} touch "$out" ''; }; }; }