diff --git a/pkgs/by-name/wa/wayvr/package.nix b/pkgs/by-name/wa/wayvr/package.nix index d120bb8db6ce..4264bf2cd5aa 100644 --- a/pkgs/by-name/wa/wayvr/package.nix +++ b/pkgs/by-name/wa/wayvr/package.nix @@ -18,11 +18,13 @@ pkg-config, procps, pulseaudio, + replaceVars, rustPlatform, shaderc, stdenv, testers, wayvr, + xwayland-satellite, withOpenVR ? !stdenv.hostPlatform.isAarch64, }: rustPlatform.buildRustPackage (finalAttrs: { @@ -36,6 +38,12 @@ rustPlatform.buildRustPackage (finalAttrs: { hash = "sha256-0llU19bFJJ4yJvA6eGzOzyW8TnnurTS9js3/r+UAVCQ="; }; + patches = [ + (replaceVars ./use-system-xwayland-satellite.patch { + xwayland-satellite = lib.getExe xwayland-satellite; + }) + ]; + cargoHash = "sha256-yUHLtB3/cBEWVAN1vuGLLlLFqJ25ucIy6qqInTGaOvA="; nativeBuildInputs = [ diff --git a/pkgs/by-name/wa/wayvr/use-system-xwayland-satellite.patch b/pkgs/by-name/wa/wayvr/use-system-xwayland-satellite.patch new file mode 100644 index 000000000000..3f539add55e1 --- /dev/null +++ b/pkgs/by-name/wa/wayvr/use-system-xwayland-satellite.patch @@ -0,0 +1,25 @@ +diff --git a/wayvr/src/backend/wayvr/client.rs b/wayvr/src/backend/wayvr/client.rs +index 734e8b68..17058705 100644 +--- a/wayvr/src/backend/wayvr/client.rs ++++ b/wayvr/src/backend/wayvr/client.rs +@@ -98,7 +98,7 @@ impl WayVRCompositor { + ) -> anyhow::Result { + let (wayland_env, listener) = create_wayland_listener()?; + +- let xwayland_satellite = Command::new(bundled_executable("xwayland-satellite")) ++ let xwayland_satellite = Command::new("@xwayland-satellite@") + .arg(wayland_env.display_num_string()) + .env("WAYLAND_DISPLAY", wayland_env.wayland_display_num_string()) + .spawn() +@@ -468,11 +468,3 @@ fn accumulate_discrete_scroll(acc: &mut f32, delta_v120: i32) -> i32 { + + steps + } +- +-/// Runs executable from APPDIR, falling back to PATH +-fn bundled_executable(name: impl AsRef) -> PathBuf { +- match std::env::var_os("APPDIR") { +- Some(appdir) => PathBuf::from(appdir).join("usr").join("bin").join(name), +- None => PathBuf::from(name.as_ref()), +- } +-}