Skip to content

feat: add Linux client support - #9

Merged
usehoplite[bot] merged 3 commits into
mainfrom
feature/linux-support
Nov 13, 2026
Merged

usehoplite[bot] merged 3 commits into
mainfrom
feature/linux-support

Conversation

@usehoplite

@usehoplite usehoplite Bot commented Nov 13, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Add Linux x64 support alongside Windows x64 for managed Minecraft installation, launch, control, and shutdown.

  • Download checksum-verified Linux Java tar archives, retain executable permissions, validate archive paths and link targets, and publish runtimes through the existing staged replacement flow.
  • Select Linux library rules and native classifiers and use Linux classpath separators.
  • Use XDG data paths while retaining the managed-home override.
  • Identify Linux processes through procfs, including boot identity, process start time, executable, and exact argument boundaries. Verify identity before shutdown and handle exited processes.
  • Add regression tests, Ubuntu and Windows CI, and Linux desktop and headless setup instructions.

Verification

  • CLI build and tests pass on Linux with 32 passing tests and one Windows-only test skipped.
  • Ubuntu and Windows CI pass on the final pull request head.
  • Built all 13 bundled Minecraft control mod artifacts on Linux.
  • All 19 default Minecraft 26.3 mod tests pass.
  • Packed the CLI, installed the archive into an isolated global npm prefix, and verified help, version listing, and a real client launch through the installed command.

Sandbox outcome

Successfully ran Minecraft 1.21.4 and the default 26.3 client on Ubuntu 24.04 x64 with Xvfb at 1280 by 720 and Mesa software rendering. No physical GPU was required. The managed installer downloaded Java 21 and Java 25 itself. OpenJDK 25 was installed separately to build the mods.

Minecraft 1.21.4 reached the title screen through OpenGL. State queries, screenshots, mouse clicks, keyboard input, text input, recording, and shutdown worked.

Minecraft 26.3 initially could not create its OpenGL context, and Vulkan was unavailable. Installing Mesa Vulkan drivers and EGL/OpenGL packages resolved this. With a private XDG runtime directory, the client rendered the title screen through software Vulkan. State queries, screenshots, mouse navigation, keyboard input, and recording worked. The 26.3 client remains running in the sandbox.

The Linux documentation includes the required packages and a persistent Xvfb setup. These checks cover Linux x64 with glibc and X11. Native Wayland, physical GPU drivers, and ARM64 were not verified. Offline-profile authentication errors for Microsoft services are expected.

The existing open pull request was not used or modified.

pxlarified and others added 3 commits November 13, 2026 06:35
Install Linux Java runtimes and native libraries, use XDG data paths, and manage client processes through procfs. Add Linux regression tests, cross-platform CI, and headless setup documentation.

Co-authored-by: Hoplite <288093033+usehoplite[bot]@users.noreply.github.com>
Distinguish the Windows default directory from the documented Linux XDG data path.

Co-authored-by: Hoplite <288093033+usehoplite[bot]@users.noreply.github.com>
Include the additional graphics packages and private runtime directory used to run Minecraft 26.3 with Mesa software Vulkan in the Linux sandbox.

Co-authored-by: Hoplite <288093033+usehoplite[bot]@users.noreply.github.com>
@usehoplite
usehoplite Bot merged commit 39ba884 into main Nov 13, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant