复审 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」的解释段)。
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
.appbundle: 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.