wvr_server: actually set DISPLAY for xwayland support

This commit is contained in:
galister 2026-07-04 23:13:04 +09:00
parent ba29dc5c17
commit 7c0c699b9a
2 changed files with 10 additions and 6 deletions

View File

@ -97,8 +97,8 @@ impl WayVRCompositor {
let (wayland_env, listener) = create_wayland_listener()?;
let xwayland_satellite = Command::new("xwayland-satellite")
.arg(":20")
.env("WAYLAND_DISPLAY", wayland_env.display_num_string())
.arg(wayland_env.display_num_string())
.env("WAYLAND_DISPLAY", wayland_env.wayland_display_num_string())
.spawn()
.log_warn(
"Could not start xwayland-satellite. Xwayland apps will not work in native mode",
@ -339,7 +339,7 @@ fn create_wayland_listener() -> anyhow::Result<(super::WaylandEnv, wayland_serve
};
let listener = loop {
let display_str = env.display_num_string();
let display_str = env.wayland_display_num_string();
log::debug!("Trying to open socket \"{display_str}\"");
match wayland_server::ListeningSocket::bind(display_str.as_str()) {
Ok(listener) => {

View File

@ -80,10 +80,14 @@ pub struct WaylandEnv {
}
impl WaylandEnv {
pub fn display_num_string(&self) -> String {
pub fn wayland_display_num_string(&self) -> String {
// e.g. "wayland-20"
format!("wayland-{}", self.display_num)
}
pub fn display_num_string(&self) -> String {
// e.g. ":20"
format!(":{}", self.display_num)
}
}
#[derive(Clone)]
@ -788,10 +792,10 @@ impl WvrServerState {
}
fn configure_env(&self, cmd: &mut std::process::Command, auth_key: &str, is_flatpak: bool) {
cmd.env_remove("DISPLAY"); // Goodbye X11
cmd.env("DISPLAY", self.manager.wayland_env.display_num_string());
cmd.env(
"WAYLAND_DISPLAY",
self.manager.wayland_env.display_num_string(),
self.manager.wayland_env.wayland_display_num_string(),
);
if is_flatpak {