mirror of
https://github.com/nestriness/nestri.git
synced 2026-11-03 22:22:39 +02:00
fix(nescope): give Xwayland the GL driver; a default browser in the image (#460)
- **nescope:** smithay spawned Xwayland with an empty environment, so Xwayland never saw the GL driver selection the box sets (`MESA_LOADER_DRIVER_OVERRIDE`, `GALLIUM_DRIVER`, `__GLX_VENDOR_LIBRARY_NAME`). glamor then found no driver for the card (`virtio_gpu: driver missing`), fell back to software, and the server offered no GLX — any X11 client asking for a GLX visual failed (`glXChooseVisual failed`). Those three variables are now passed through. - **Image:** `chromium` and `xdg-utils`, so applications that open sign-in pages, OAuth flows or links have somewhere to send them. Verified by hand in a box: with the nescope change, an X11 client that previously died at `glXChooseVisual` started and drew.
This commit is contained in:
@@ -438,7 +438,15 @@ impl NescopeState {
|
||||
let (xwayland, client) = XWayland::spawn(
|
||||
&self.display_handle,
|
||||
display,
|
||||
std::iter::empty::<(String, String)>(),
|
||||
// The GL selection the box was given, or Xwayland's glamor cannot
|
||||
// find a driver for the card, falls back to software, and offers
|
||||
// no GLX: Steam then dies on glXChooseVisual.
|
||||
std::env::vars().filter(|(k, _)| {
|
||||
matches!(
|
||||
k.as_str(),
|
||||
"MESA_LOADER_DRIVER_OVERRIDE" | "GALLIUM_DRIVER" | "__GLX_VENDOR_LIBRARY_NAME"
|
||||
)
|
||||
}),
|
||||
true,
|
||||
std::process::Stdio::null(), // XWayland stdout (very noisy)
|
||||
std::process::Stdio::null(), // XWayland stderr (very noisy)
|
||||
|
||||
@@ -398,6 +398,7 @@ RUN pacman -Syu --noconfirm --needed \
|
||||
python-xlib python-urllib3 python-pyzstd \
|
||||
libvpx speex libtheora libvdpau jsoncpp \
|
||||
strace lsof less \
|
||||
chromium xdg-utils \
|
||||
&& rm -f /usr/share/libalpm/hooks/dbus-reload.hook \
|
||||
&& pacman -Rdd --noconfirm systemd systemd-sysvcompat \
|
||||
&& pacman -Scc --noconfirm
|
||||
|
||||
Reference in New Issue
Block a user