Codex (Chatgpt) Desktop Runs via xWayland at 3.25 hz

Open 💬 0 comments Opened Aug 19, 2026 by jst-zhou

What version of the Codex App are you using (From “About Codex” dialog)?

26.814.41957

What subscription do you have?

Pro

What platform is your computer?

Linux 7.0.0-30-generic x86_64 unknown

What issue are you seeing?

The Linux ChatGPT/Codex desktop app has severe UI lag under a GNOME Wayland multi-monitor session when it launches through XWayland. All UI operations are affected, including scrolling, typing, window interactions, and Codex thought-chain/progress displays.

Environment:

  • GNOME Wayland session
  • Primary: AORUS, 3840×2160 at 240 Hz, 150% scaling
  • Secondary: ASUS, 6016×3384 at approximately 60 Hz, 266.67% scaling
  • Current native .deb package: 26.814.41957
  • Electron 42.x builds are affected
  • The 2026-05-14 build, using Electron 41.2.0, does not exhibit the problem

The affected launcher detects a GNOME Wayland multi-monitor session and forces --ozone-platform=x11, along with disabled GPU compositing. Under XWayland, the app was associated with a 7680×4320 virtual output reported at only approximately 3.25 Hz. This appears to explain the extremely slow UI presentation.

Launching the same package with native Wayland completely resolves the lag:

chatgpt --ozone-platform=wayland --enable-features=WaylandWindowDecorations

After doing this, the main process, GPU process, and renderer processes all use --ozone-platform=wayland. The app no longer appears in the X11 client list, uses /dev/dri/renderD128, and is presented on the primary display at 240 Hz.

I made the workaround persistent using a user-level chatgpt.desktop override. Ideally, the launcher should not automatically force X11 or disable GPU compositing on GNOME Wayland multi-monitor configurations, particularly when the resulting XWayland output reports an invalid or extremely low refresh rate.

What steps can reproduce the bug?

As described above. xWayland is suspected to be the culprit.

What is the expected behavior?

_No response_

Additional information

_No response_

View original on GitHub ↗