Files
Unlucky-Launcher/packaging/release-notes.md
T
AskaEth e827f7a0ef fix(docs): M118 r2 —— 发布页第二形态换成实测可用的 --renderer=cpu,NOTICE 停止声称 RF-2.0 已履行
复审 r2 的 2 条 P1 + 3 条 p2 小账,全部只动文档(5 份,0 个 .rs)。

P1-1(`SLINT_BACKEND` → `ICED_BACKEND` 换了个名字的死开关):
`packaging/release-notes.md` 的「No GPU」小节原来把 `ICED_BACKEND=tiny-skia` 当作
`--software-renderer` 的等价替代命令给用户。实测该值会被本进程无条件覆盖:
- `ICED_BACKEND=tiny-skia ./unlucky-launcher-iced.exe --screenshot …`
  → `[probe] … request=auto -> ICED_BACKEND=wgpu` / `[shot] … renderer=wgpu` / `[backend] final=wgpu`
- `--software-renderer --screenshot …` → `request=cpu -> ICED_BACKEND=tiny-skia` / `renderer=tiny-skia`
- `--renderer=cpu --screenshot …`      → `request=cpu -> ICED_BACKEND=tiny-skia` / `renderer=tiny-skia`
所以改成两条都实测可用的形态(`--software-renderer` / `--renderer=cpu`),不再把环境变量当用户开关。

P1-2(RF-2.0 履行方式的措辞与上游 §2 冲突):
`NOTICE` 第 1 条原写「由 v0.1.0 的 NOTICE、发布页说明与本文件的历史记录共同承担」——§2 只承认
(a) AboutSlint 部件 / (b) 公开下载页的官方徽章两种履行,NOTICE 文本不是履行。改为:义务仍挂在
v0.1.0 已发布资产上(条件挂在每次分发,不挂版本号);§2 只承认两种形式;**按本仓库记录,该项义务
在 v0.1.0 上尚未以任一形式落地**(部件一直只有排期,发布页那行是文字链接不是徽章图);NOTICE /
发布页说明 / 本节都只是记录。

p2 小账:
- `NOTICE` 第 3 条的依赖许可:`tiny-skia` 从「Apache-2.0 / MIT」改正为 BSD-3-Clause,并把
  winit(Apache-2.0)/ wgpu(MIT OR Apache-2.0)分别写明;README(中英)同款写法一并对齐。
- `packaging/README.md` §4:`libGL/libEGL` 行改成「Slint 版 femtovg / iced 版 wgpu(推断,未实测)」,
  并把限定语改成「除标注『推断,未实测』的那一行外,整表是 Slint 版实测」,消除表内与限定语打架。
- `README.md` / `README.zh-CN.md` 的 Slint 义务段补 `v0.1.0` 限定并按 §2 口径重写,避免读者以为
  「Made with Slint」说的是下一版。

证据:`git diff --name-only` = NOTICE, README.md, README.zh-CN.md, packaging/README.md,
packaging/release-notes.md;`packaging/README.md` 仍 399 行(守卫上限 400);release body 模板用
`{{VERSION}}=0.2.0` 渲染通过(5956 字符,全篇 Slint 命中 4 行,均在「本版不含 Slint」的解释段)。
2026-11-04 00:09:39 +08:00

5.9 KiB

Unlucky Launcher {{VERSION}}

Rust-native single-file Minecraft launcher: iced 0.14 + Material 3 Expressive UI, built-in AI agent (chat / config edits / crash diagnosis) and an MCP server other agent tools can attach to. No WebView, no bundled runtime, no JRE download needed to start the launcher itself.

Downloads

Platform Asset Notes
Windows 10/11 x64 unlucky-launcher-{{VERSION}}-windows-x64.exe single exe, double-click to run
Windows 11 ARM64 unlucky-launcher-{{VERSION}}-windows-arm64.exe single exe, runs natively on ARM64 Windows
Linux x64 (X11/Wayland) unlucky-launcher-{{VERSION}}-linux-x64.tar.gz single binary inside, no installer
Linux arm64 (X11/Wayland) unlucky-launcher-{{VERSION}}-linux-arm64.tar.gz single binary inside; needs glibc 2.35+
macOS 12+ Apple Silicon unlucky-launcher-{{VERSION}}-macos-arm64.tar.gz single binary inside, no installer
macOS 12+ Intel unlucky-launcher-{{VERSION}}-macos-x64.tar.gz single binary inside, no installer

LICENSE, NOTICE and README.md ship in every archive; on Windows they are attached to this release next to the .exe (a lone exe cannot carry them), so the license terms travel with the download on every platform.

Every slot also ships the command line as its own small asset — ull-{{VERSION}}-<slot> (.exe on Windows):

chmod +x ull-{{VERSION}}-linux-x64             # Release 资产不带可执行位,先补上
./ull-{{VERSION}}-linux-x64 instances list     # servers / CI / Termux: no graphics stack needed
unlucky-launcher instances list                # desktops: the GUI binary answers the same commands

ull runs instances, install, launch, accounts, sessions, logs, diag, config, java and agent, and links no graphics library at all. The GUI binary accepts the same set before it ever opens a window, so on a machine with a desktop you do not need ull.

Support matrix

Platform Level Runtime requirements
Windows 10/11 x64 first class nothing beyond the OS (UCRT is part of Win10+)
Windows 11 ARM64 first class (launcher artifact) nothing extra; launcher runs natively, the game itself runs through the OS x64 emulation layer with an x64 JDK
macOS 12+ (arm64 / x64) first class nothing; unsigned build, see Gatekeeper note
Linux x64, X11 first class libxkbcommon, fontconfig, libGL (or software renderer), libxcb
Linux x64, Wayland supported wayland-client, libxkbcommon, plus the X11 set for XWayland apps
Linux arm64, X11 first class glibc 2.35+ (built on ubuntu-22.04-arm, same floor as x64), libxkbcommon, fontconfig, libGL, libxcb
Linux arm64, Wayland supported the above plus wayland-client
Windows 8.1/8/7 unsupported baseline was raised to Win10 (decision D21)
Android — Termux + X11 experimental, not promised CLI only (the ull asset, or build from source), GUI unverified; not part of this release matrix

Both arm64 rows are formally released slots (the assets ship in this release and in SHA256SUMS.txt), not the experimental Termux path: Linux arm64 is built and smoke-tested on a native ARM64 runner, Windows ARM64 is cross-built with the same static-CRT gate as x64.

Install

Windows — put the .exe anywhere and run it (pick -windows-arm64.exe on ARM64 Windows, -windows-x64.exe everywhere else). Portable data lives next to the exe when a portable.marker file is present, otherwise under %APPDATA%.

Linux

tar -xzf unlucky-launcher-{{VERSION}}-linux-x64.tar.gz   # use linux-arm64 on aarch64
cd unlucky-launcher-{{VERSION}}-linux-x64                # ditto
chmod +x unlucky-launcher && ./unlucky-launcher

macOS

tar -xzf unlucky-launcher-{{VERSION}}-macos-arm64.tar.gz
cd unlucky-launcher-{{VERSION}}-macos-arm64
xattr -d com.apple.quarantine unlucky-launcher   # unsigned build, Gatekeeper quarantine
chmod +x unlucky-launcher && ./unlucky-launcher

No GPU? Software renderer

The UI renders through wgpu (GPU) and falls back to the tiny-skia CPU rasteriser when no usable adapter is present. Force the CPU path on any machine with:

unlucky-launcher --software-renderer          # the documented switch
unlucky-launcher --renderer=cpu               # equivalent: pick the CPU renderer explicitly

Verify the download

# Linux / macOS
sha256sum -c SHA256SUMS.txt --ignore-missing
# Windows (PowerShell)
Get-FileHash .\unlucky-launcher-{{VERSION}}-windows-x64.exe -Algorithm SHA256

Checksums

{{SUMS}}

Known limitations of this build

  • Microsoft (MSA) account login depends on a Mojang app-id whitelist that is still pending; until it is granted, use offline accounts or authlib-injector (the 403 is reported with a readable diagnostic instead of a silent failure).
  • Binaries are not code-signed / notarized yet: Windows SmartScreen and macOS Gatekeeper warn on first launch. Checksums above are the integrity reference for now.
  • macOS ships the bare binary (single-file promise), not a .app bundle: no Dock icon or Finder double-click — launch it from a terminal.

License

Apache-2.0. Third-party notices are in NOTICE. Unlucky Launcher is not affiliated with Mojang or Microsoft; it does not ship game files.

UI framework in this build

Every asset in this release is built from the iced UI (crates/app-iced, iced 0.14, MIT) — no Slint code is linked into it. The earlier Slint UI (crates/app) stays in the repository as historical source only: excluded from the cargo workspace, not built, not part of any asset here and not part of the release matrix. It did ship in the previous v0.1.0 release; that release's Slint Royalty-Free 2.0 attribution remains where it was published, and no asset in this build carries that obligation. There is deliberately no "Made with Slint" badge on this page: the obligation follows a Slint-linked binary, and this release has none.