Restyle to a clean, flat look and rename brand to SCOPENET

- Brand is now SCOPENET everywhere (defaults, UI, installer, docs)
- Launcher: solid backgrounds (no animated orbs/grain), flat Play button
  without gradient/shine/glow, quieter rail with a simple active
  indicator, smaller type scale, Inter as default font, glass off by
  default, restyled sliders
- Panel: same flat treatment; live preview mirrors the new launcher
- New flat scope-reticle logo and app icons
- Calmer default palette
- Fix: lock the shared cargo cache in the Docker build (amd64/arm64 raced)
- Fix: Windows-only clippy lint in sys.rs

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011ARcGWxLx21FwXJ3yfGriS
This commit is contained in:
Claude committed 2026-09-28 05:30:19 +00:00
1 parent 214aa6ad19
commit 1b1bb984bc
69 files changed
+378 -426

No files matched your search

+1 -1
View File
@@ -1,6 +1,6 @@
[package]
name = "scopenet-core"
description = "Minecraft install / launch engine used by the ScopeNet launcher (and meta lookups in the panel)"
description = "Minecraft install / launch engine used by the SCOPENET launcher (and meta lookups in the panel)"
version.workspace = true
edition.workspace = true
+1 -1
View File
@@ -13,7 +13,7 @@ use std::sync::Arc;
use std::time::{Duration, Instant};
use tokio::io::AsyncWriteExt;
pub const USER_AGENT: &str = concat!("ScopeNet-Launcher/", env!("CARGO_PKG_VERSION"), " (+https://github.com/scopeddlol/SCOPENET-MC)");
pub const USER_AGENT: &str = concat!("SCOPENET-Launcher/", env!("CARGO_PKG_VERSION"), " (+https://github.com/scopeddlol/SCOPENET-MC)");
pub fn client() -> reqwest::Client {
reqwest::Client::builder()
+2 -2
View File
@@ -346,7 +346,7 @@ mod tests {
resolution: Some((1280, 720)),
fullscreen: false,
join_server: join.then(|| ("play.example.net".to_string(), 25565)),
version_label: "ScopeNet".into(),
version_label: "SCOPENET".into(),
launcher_name: "scopenet".into(),
launcher_version: "0.1.0".into(),
}
@@ -368,7 +368,7 @@ mod tests {
assert!(a.contains("--width 1280 --height 720"));
assert!(a.contains("--quickPlayMultiplayer play.example.net:25565"));
assert!(!a.contains("--server"));
assert!(a.contains("--versionType ScopeNet"));
assert!(a.contains("--versionType SCOPENET"));
assert!(a.contains("-Djava.library.path=/n"));
}
+1 -1
View File
@@ -1,4 +1,4 @@
//! ScopeNet launcher engine.
//! SCOPENET launcher engine.
//!
//! The Tauri app is a thin UI shell around this crate: everything that
//! downloads, installs or launches Minecraft lives here so it can be unit
+3 -3
View File
@@ -76,9 +76,9 @@ mod tests {
fn upserts_without_losing_player_servers() {
let dir = tempfile::tempdir().unwrap();
upsert(dir.path(), "Friend", "friend.net").unwrap();
upsert(dir.path(), "ScopeNet", "play.scopenet.gg").unwrap();
upsert(dir.path(), "ScopeNet SMP", "play.scopenet.gg").unwrap();
assert_eq!(names(dir.path()), vec![("ScopeNet SMP".into(), "play.scopenet.gg".into()), ("Friend".into(), "friend.net".into())]);
upsert(dir.path(), "SCOPENET", "play.scopenet.gg").unwrap();
upsert(dir.path(), "SCOPENET SMP", "play.scopenet.gg").unwrap();
assert_eq!(names(dir.path()), vec![("SCOPENET SMP".into(), "play.scopenet.gg".into()), ("Friend".into(), "friend.net".into())]);
assert_eq!(format_address("a.b", 25565), "a.b");
assert_eq!(format_address("a.b", 25570), "a.b:25570");
}
+1 -1
View File
@@ -11,7 +11,7 @@ fn imp() -> Option<u64> {
let mut status: MEMORYSTATUSEX = unsafe { std::mem::zeroed() };
status.dwLength = std::mem::size_of::<MEMORYSTATUSEX>() as u32;
let ok = unsafe { GlobalMemoryStatusEx(&mut status) };
(ok != 0).then(|| status.ullTotalPhys / 1024 / 1024)
(ok != 0).then_some(status.ullTotalPhys / 1024 / 1024)
}
#[cfg(target_os = "linux")]