Containerpak / Containerpak/cpak

Debian 13 KDE Plasma, I found two different issues with the X11 isolation backend. bottles

Open
#79 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Go
Stars
191
Forks
3
Avg merge
27m
Merged PRs (30d)
16

Description

Summary

After testing cpak on Debian 13 KDE Plasma, I found two different issues with the X11 isolation backend.

Environment
  • Distribution: Debian 13 (Trixie)
  • Desktop: KDE Plasma (Wayland session)
  • Bottles installed through cpak
  • Xephyr available and used as the isolated X11 server
  • Reproduced multiple times
Issue 1: Xwayland backend

When cpak uses the Xwayland backend, some applications never reach a usable window state.

Observed behavior:

  • Application process starts.
  • Xwayland appears to start correctly.
  • The application hangs while creating its window.
  • No usable application window becomes visible.

This was the original reason I experimented with replacing the Xwayland backend.

Issue 2: Xephyr backend

I patched cpak to use Xephyr instead of Xwayland.

Results:

  • RPG Maker games run normally.
  • The isolated window appears correctly.
  • Clipboard integration appears functional.

However, Unity games behave differently:

  • The game starts.
  • The Unity window appears briefly (or begins opening).
  • The game exits immediately.
  • The failure occurs consistently with Unity titles.
Observations

While debugging the broker, I observed repeated messages such as:

TICK: windows=0 seenWindow=true primary=0x1200001

followed later by:

WATCH_CLOSED ... X11 connection closed
BONBON_STOP: nested endpoint error: X11 connection closed

I could not find evidence that the broker explicitly closes the game because no application window exists.

From the current code inspection:

  • cleanupX11Bridge() is only reached through container cleanup paths.
  • The broker receives ServerAlive() callbacks and stops when the nested X11 server disappears.
  • It is currently unclear whether the Unity process exits first and causes Xephyr shutdown, or whether Xephyr terminates first and causes the Unity process to exit.
Expected Behavior

Unity games should remain running under the Xephyr backend just like RPG Maker games.

Additional Information

I can provide:

  • Full broker debug logs
  • Process trees before and after the Unity game exits
  • A test title that reproduces the issue consistently
  • The Xephyr patch used for testing

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the broker paths around cleanupX11Bridge(), ServerAlive(), and the WATCH_CLOSED/BONBON_STOP messages. Reproduce a Unity title with the Xephyr patch while collecting the offered broker logs and process trees, then establish whether the Unity process or Xephyr exits first. Done means Unity games remain running under Xephyr without the nested X11 connection closing.

Written by the indexing model from the issue text.

Assessment

Tech stack
go, linux
Domain
desktop, operating-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.