| 27 Apr 2025 |
K900 | OK we're done then | 17:39:00 |
K900 | You need to understand what you're doing | 17:39:07 |
K900 | Not copy/paste the word vomit machine output | 17:39:12 |
Adam Neverwas | This is a several time modified version | 17:39:45 |
K900 | Do you understand every line of it? | 17:40:26 |
K900 | (no, you don't) | 17:40:31 |
Adam Neverwas | not every | 17:40:38 |
K900 | Then start with something you actually understand | 17:40:56 |
Adam Neverwas | Okay, but an empty project with bevy 0.16 producing my problem, what without it doesnt happen | 17:41:48 |
K900 | The problem isn't bevy, it's your shell | 17:42:27 |
K900 | And I am not wading through two screens of LLM gunk to figure out why | 17:42:39 |
@awwpotato:envs.net | also bevy has an example shell.nix that you can use https://github.com/bevyengine/bevy/blob/main/docs/linux_dependencies.md#nix | 17:46:25 |
Adam Neverwas | thnak :V | 17:53:45 |
Adam Neverwas | So the problem of the rust-analyzer running in vscodium solvable in flake? | 18:08:30 |
K900 | Yes | 18:08:43 |
K900 | Please try it with the example bevy shell | 18:08:51 |
K900 | And make sure you're running vscode from the shell | 18:08:57 |
K900 | Or using the direnv/nix-shell plugins to load the environment into your vscode | 18:09:10 |
Adam Neverwas | This is the answer for every of my questions, thanks | 18:11:06 |
Ilan Joselevich (Kranzes) | In reply to @adam_neverwas:matrix.org
{
description = "Rust development environment with latest Bevy";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
flake-utils.url = "github:numtide/flake-utils";
rust-overlay = {
url = "github:oxalica/rust-overlay";
inputs = {
nixpkgs.follows = "nixpkgs";
flake-utils.follows = "flake-utils";
};
};
};
outputs = { self, nixpkgs, flake-utils, rust-overlay }:
flake-utils.lib.eachDefaultSystem (system:
let
overlays = [ (import rust-overlay) ];
pkgs = import nixpkgs {
inherit system overlays;
};
rustToolchain = pkgs.rust-bin.stable.latest.default.override {
extensions = [ "rust-src" "rust-analyzer" "clippy" "rustfmt" ];
targets = [ "wasm32-unknown-unknown" ];
};
graphicsLibs = with pkgs; [
vulkan-loader
xorg.libX11
xorg.libXcursor
xorg.libXrandr
xorg.libXi
libxkbcommon
wayland
libGL
libGLU
xorg.libXext
];
audioLibs = with pkgs; [
alsa-lib
libjack2
libpulseaudio
];
systemLibs = with pkgs; [
udev
systemd
openssl
pkg-config
];
buildLibs = with pkgs; [
cmake
clang
gcc
binutils
lld
];
devTools = with pkgs; [
rustToolchain
rustup
cargo-watch
cargo-expand
cargo-audit
cargo-outdated
cargo-geiger
wasm-pack
];
allLibs = graphicsLibs ++ audioLibs ++ systemLibs;
wrapperScript = pkgs.writeScriptBin "create-wrappers" (builtins.readFile ./wrapper/generate_wrappers.sh);
devEnv = pkgs.mkShell {
buildInputs = devTools ++ buildLibs ++ allLibs ++ [ wrapperScript ];
shellHook = ''
echo "🦀 Rust + Bevy dev environment loading..."
# Find libudev.pc file in the Nix store
LIBUDEV_PC=$(find /nix/store -path "*/lib/pkgconfig/libudev.pc" | head -n 1)
if [ ! -z "$LIBUDEV_PC" ]; then
echo "✅ Found libudev.pc at: $LIBUDEV_PC"
export PKG_CONFIG_PATH=$(dirname "$LIBUDEV_PC"):$PKG_CONFIG_PATH
else
echo "❌ Could not find libudev.pc in Nix store"
fi
export LD_LIBRARY_PATH=${pkgs.lib.makeLibraryPath allLibs}:$LD_LIBRARY_PATH
export PKG_CONFIG_PATH=$(IFS=:; echo ${pkgs.lib.concatStringsSep ":" (builtins.map (pkg: "${pkg}/lib/pkgconfig") allLibs)}):$PKG_CONFIG_PATH
# Ensure Rust can find the standard library
export RUST_SRC_PATH=${rustToolchain}/lib/rustlib/src/rust/library
export RUSTFLAGS="-C link-arg=-fuse-ld=lld"
export BEVY_ASSET_ROOT="$(pwd)/assets"
export CC=gcc
export CXX=g++
create-wrappers
PATH="$(echo "$PATH" | sed -e "s#:$HOME/.local/bin##g" -e "s#$HOME/.local/bin:##g" -e "s#$HOME/.local/bin##g")"
# LAST ROW
export PATH="$HOME/.local/bin:$PATH"
echo "✅ Rust + Bevy development environment ready!"
'';
};
in
{
devShells.default = devEnv;
}
);
} I wanna frame this | 18:43:12 |
Ilan Joselevich (Kranzes) | Piece of abstract art | 18:43:25 |
Ilan Joselevich (Kranzes) | Hahaha | 18:43:48 |
Adam Neverwas | theres nothing wrong with this | 18:43:53 |
Ilan Joselevich (Kranzes) | The more i look into it the crazier it is | 18:44:07 |
Adam Neverwas | u sure? | 18:44:16 |
Ilan Joselevich (Kranzes) | Yes | 18:44:45 |
Ilan Joselevich (Kranzes) | Nothing about it makes sense | 18:45:22 |
Adam Neverwas | It's a flake | 18:45:40 |
Ilan Joselevich (Kranzes) | Pure vibe coded hallucination | 18:45:46 |
Adam Neverwas | if you say so | 18:50:50 |