Launcher overhaul: FlatLaf UI, managed runtimes, per-instance settings, and package installer - #548
Open
Magi1053 wants to merge 29 commits into
Open
Launcher overhaul: FlatLaf UI, managed runtimes, per-instance settings, and package installer#548Magi1053 wants to merge 29 commits into
Magi1053 wants to merge 29 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.
Route HttpRequest through host-specific download handlers that attach x-api-key for CurseForge/CurseMaven hosts, fixing 401s on .url.txt mods.
Validate declared or inferred library outputs instead of relying only on the opaque update cache, and avoid downloading processor-generated libraries during pack builds.
Swap the news panel to weblite so Windows uses WebView2 and Linux uses WebKitGTK instead of SWT/WKWebView. Theme changes now drive prefers-color-scheme live: Windows via ICoreWebView2Profile PreferredColorScheme COM, Linux via GTK prefer-dark-theme / theme name. Loading chrome stays opaque and theme-correct so activateBrowser no longer strips overlay backgrounds into a white flash. Add host dependency install prompts for missing WebView2/WebKitGTK, move AppImage-safe xdg-open and LD_* cleanup onto LinuxBrowserPlatform, and point SwingHelper.openURL through BrowserPlatform.openExternalUrl. Trim unused WebpagePanel factories, news load-error helper, and simplify BrowserBootstrap.prepare.
Enable optional Linux/macOS legacy home-folder migration when configured in installer.properties.
Magi1053
force-pushed
the
feature/launcher-overhaul
branch
from
July 28, 2026 17:08
0b7e203 to
8c5f54f
Compare
Magi1053
marked this pull request as ready for review
July 28, 2026 17:32
Streamline the account switcher and Microsoft device-login dialog, extract reusable painted icons, and prefer theme-aware borders with clearer panel naming.
Trim dead code/strings, finish half-wired listing UI, fix TestServer pack matching, and tighten bootstrap self-update helpers/naming.
Magi1053
force-pushed
the
feature/launcher-overhaul
branch
from
July 28, 2026 20:18
8c5f54f to
958c49b
Compare
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, lightweight 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. Shared Swing icon helpers for account/instance UI. Closes Migrate launcher-fancy from Insubstantial Substance to Radiance #549 (Radiance/launcher-fancymigration superseded by FlatLaf).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, Linux AppImage/tar/deb, macOS dmg/pkg. Bootstrap seeds bundled launcher payloads, resolves install-dir data, optional Linux/macOS legacy-home migration in postinstall, logs to disk, checks updates before launch.Scope: 28 commits, 232 files, ~+17.2k / −2.4k lines.
Test plan
gradlew.bat buildnewsUrloverride render in weblite; theme follows launchernewsUrlfields work in manifest editorlegacyHomeFolder*set — postinstall migrates legacy data