Launcher overhaul: FlatLaf UI, managed runtimes, per-instance settings, and package installer#548
Draft
Magi1053 wants to merge 22 commits into
Draft
Launcher overhaul: FlatLaf UI, managed runtimes, per-instance settings, and package installer#548Magi1053 wants to merge 22 commits into
Magi1053 wants to merge 22 commits into
Conversation
Magi1053
force-pushed
the
feature/launcher-overhaul
branch
2 times, most recently
from
June 10, 2026 03:24
8315c99 to
a2e3c15
Compare
Magi1053
marked this pull request as ready for review
June 10, 2026 03:25
Magi1053
marked this pull request as draft
June 10, 2026 03:26
Migrate to Gradle 8.14 and the GradleUp shadow plugin. Raise the Java toolchain to 17 and resolve the fancy launcher Substance dependency via the CottonMC fork mirror. Fixes SKCraft#546
Per-instance settings now own JVM args, memory limits, and runtime selection so each modpack can be tuned independently.
Magi1053
force-pushed
the
feature/launcher-overhaul
branch
from
June 10, 2026 20:44
a2e3c15 to
588c270
Compare
Download and cache required Java runtimes per instance before launch. Creator tools can pin a managed runtime in the modpack builder. Closes SKCraft#539
…artup Introduce jlink/jpackage-based app images and platform package tasks (Windows NSIS Setup.exe, Linux AppImage/tar/deb, macOS dmg) driven by InstallerPackager, with a root `package` task that delegates to the host OS. Bootstrap now resolves data from the install directory on Windows, migrates legacy Documents data, logs to disk, checks for updates before launch, and drops portable mode in favor of a single configured data directory.
Read newsUrl from each manifest entry so modpacks can override the launcher default news page. Creator tools expose the field in the manifest entry editor.
Skip optional registry lookup instead of logging a warning stack trace when the official launcher is not installed.
Magi1053
force-pushed
the
feature/launcher-overhaul
branch
from
June 10, 2026 20:49
588c270 to
0ce8e57
Compare
Remove the launcher-fancy module and its custom skin/L&F stack in favor of FlatLaf (FlatMacLight/FlatMacDark) integrated into the main launcher. - Add persisted themeMode (light, dark, system) with migration from the legacy darkTheme flag - Expose theme picker in Configuration > Advanced and apply changes live - Restyle dialogs with FlatLaf button classes and drop manual opaqueness hacks - Rework main window layout: MigLayout side-by-side panels instead of JSplitPane, primary launch button, Enter-to-launch on instance list - Sync news WebView with launcher theme via preferred color scheme - Theme-aware link colors and panel borders
Magi1053
force-pushed
the
feature/launcher-overhaul
branch
from
June 10, 2026 20:58
0ce8e57 to
a72da99
Compare
Drop JavaFX WebView and embed news via SWT/WebView2 on Windows/Linux and WKWebView on macOS. Browser runtime resolves outside the fat jar via BrowserBootstrap and SwtRuntimeResolver.
Bundle WebView2 on Windows, SWT natives, and per-OS data directories in the bootstrap installer. Add Docker-based Linux packaging from any host, hand off Windows AppUserModelID to the launcher JVM, and extend InstallerPackager for platform-specific naming and runtime assembly.
…lors Stream process output through a ring buffer and batched Document updates. Delay the game log until the client window is ready (or launch fails), optionally maximize on ready, and keep launcher console history in a LogBuffer.
Show pack icons and status text in larger rows, wrap the list and news pane in shared table borders, and clarify instance menu actions.
Support offline play profiles with stable UUIDs, persist the active account, and let users switch or manage accounts from the main frame.
Enforce system RAM limits, verify modpack updates before launch, share HTTP client/download threads, and harden runtime discovery across creator and launcher.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Major launcher refresh on
feature/launcher-overhaul— modern FlatLaf UI, per-instance JVM/runtime config, managed Java runtimes, native embedded news, improved auth/accounts, and cross-platform packaging.launcher-fancy/Substance; integrate FlatLaf with light/dark/system themes (live switch). MigLayout main window, primary launch button, Enter-to-launch. Instance list shows pack icons, status rows, and shared table chrome; remember last launched instance.newsUrloverride in manifests and creator tools; theme sync via preferred color scheme.ProcessorEntryrespects cache before queueing processor tasks; reload instances when game key changes on save.InstallerPackager: Windows NSISSetup.exe(+ WebView2), Linux AppImage/tar/deb (Docker-based Linux packaging from any host), macOS dmg. Bootstrap resolves install-dir data, migrates legacy Documents data, logs to disk, checks updates before launch.Scope: 22 commits, 212 files, ~+15.6k / −2.2k lines.
Test plan
gradlew.bat buildnewsUrloverride render in native browser; theme follows launchernewsUrlfields work in manifest editor