{ description = "Bevy project with Rust and dependencies via nixpkgs and oxalica/rust-overlay"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.05"; rust-overlay.url = "github:oxalica/rust-overlay"; flake-utils.url = "github:numtide/flake-utils"; }; outputs = { self, nixpkgs, rust-overlay, flake-utils, }: flake-utils.lib.eachDefaultSystem ( system: let overlays = [ (import rust-overlay) ]; pkgs = import nixpkgs { inherit system overlays; }; rustToolchain = pkgs.pkgsBuildHost.rust-bin.fromRustupToolchainFile ./rust-toolchain.toml; nativeBuildInputs = with pkgs; [ rustToolchain mold pkg-config ]; xorgBuildInputs = with pkgs; [ xorg.libX11 xorg.libXcursor xorg.libXi ]; waylandBuildInputs = with pkgs; [ libxkbcommon wayland ]; buildInputs = with pkgs; [ alsa-lib systemd vulkan-loader ] ++ xorgBuildInputs ++ waylandBuildInputs; in { devShells.default = pkgs.mkShell { inherit buildInputs nativeBuildInputs; RUST_BACKTRACE = 1; shellHook = '' export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${pkgs.lib.makeLibraryPath buildInputs}" ''; }; } ); }