DioxusLabs / DioxusLabs/dioxus

[desktop] Window is created but never mapped on Linux/X11 — app runs, webview starts, nothing appears

Open
#5,740 0 comments 1 reaction 0 assignees View on GitHub
Dominant language
Rust
Stars
39.1k
Forks
1.9k
Avg merge
4d 10h
Merged PRs (30d)
4

Description

**Problem**

On Linux/X11, a desktop app builds and starts fine but **no window ever appears**. The process runs, the webview initialises (both `WebKitNetworkProcess` and `WebKitWebProcess` spawn as children), and an 800x600 X11 window is created — but it is never mapped, so nothing is shown:

```
$ xdotool search --pid $PID
win 60817409: Width: 10 Height: 10 Map State: IsUnMapped
win 60817411: Width: 800 Height: 600 Map State: IsUnMapped

$ wmctrl -l | grep -c dxprobe
0
```

There is **no output at all**, including with `RUST_LOG=debug` (0 bytes on stdout and stderr). `dx serve --platform linux` reports `Build completed successfully, launching app!` and then nothing happens.

This looks distinct from the existing blank-window reports (#3453, #5191): in those the window *is* mapped and displayed, it just renders black/white. Here the window is never mapped at all, so there is nothing on screen to be blank.

**Steps To Reproduce**

- `Cargo.toml`:
```toml
[dependencies]
dioxus = { version = "=0.7.9", features = ["desktop"] }
```
(pinned to `=0.7.9` because `dx` 0.7.9 refuses `0.7.10` with *"dx and dioxus versions are incompatible"*)
- `src/main.rs`:
```rust
use dioxus::prelude::*;

fn main() {
dioxus::launch(app);
}

fn app() -> Element {
rsx! { h1 { "hello" } }
}
```
- `dx build --platform linux`, then run `target/dx//debug/linux/app/` — no window.
- `dx serve --platform linux` — same, no window.

**Expected behavior**

A window showing "hello".

**What I ruled out**

- **Not the display or session.** `xclock` launched from the same shell maps immediately and is managed by the WM, so `DISPLAY`/`XAUTHORITY` are fine from that context.
- **Not the known accelerated-surface issues.** Tried `WEBKIT_DISABLE_DMABUF_RENDERER=1` (the workaround in #3453), `WEBKIT_DISABLE_COMPOSITING_MODE=1`, and both together — no change in any case.
- **Not a mapping race.** Still `IsUnMapped` after 25s, and forcing it with `xdotool windowmap ` does not stick — it stays unmapped.
- **Not the build path.** Identical from the `dx build` output binary and from `dx serve`.
- **Not app code.** Reduced to the hello-world above; same result.

**Environment:**

- Dioxus version: 0.7.9 (`dx` 0.7.9, `bfcc111`)
- Rust version: 1.97.1
- OS info: Ubuntu 26.04 LTS, kernel 7.0.0-28-generic, X11 + XFCE
- App platform: desktop
- Graphics: Intel CometLake-U GT2 [UHD Graphics], `i915`
- webkit2gtk: 2.52.3 (`libwebkit2gtk-4.1-dev`)

Happy to run any diagnostic that would help narrow this down — the reproducer above is the whole thing.

Contributor guide

No contributing guide indexed for this repository

Research direction

Reproduce the issue with the minimal app in src/main.rs and the pinned dependency in Cargo.toml, first using dx serve --platform linux and then the built binary. Inspect the Linux/X11 desktop launch path and verify the window’s map state; done means the hello-world app opens an 800x600 window showing "hello" under the stated environment.

Written by the indexing model from the issue text.

Assessment

Tech stack
linux, rust
Domain
desktop, operating-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.