diff --git a/.envrc b/.envrc index dbd5ca9..e3eefe2 100644 --- a/.envrc +++ b/.envrc @@ -1,3 +1,4 @@ export DIRENV_WARN_TIMEOUT=20s +export __NV_DISABLE_EXPLICIT_SYNC=1 eval "$(devenv direnvrc)" use devenv diff --git a/app/src-tauri/src/account/store.rs b/app/src-tauri/src/account/store.rs index 430d162..e0bb7a0 100644 --- a/app/src-tauri/src/account/store.rs +++ b/app/src-tauri/src/account/store.rs @@ -169,6 +169,10 @@ impl AccountStore { let auth = ms_mc_login(&self.client, &self.handle).await?; let profile = get_profile_info(&self.client, &auth.mc_token).await?; + if self.active.is_empty() { + self.active = profile.id.clone(); + } + self .accounts .insert(profile.id.clone(), Some(AccountInfo { auth, profile })); diff --git a/app/src-tauri/src/lib.rs b/app/src-tauri/src/lib.rs index 1c6c995..20de0a3 100644 --- a/app/src-tauri/src/lib.rs +++ b/app/src-tauri/src/lib.rs @@ -20,7 +20,7 @@ use profiles::commands::{ profile_repair, profile_runs_list, profile_update, profile_update_icon, }; use settings::{settings_get, settings_set}; -use tauri::{AppHandle, Emitter, Manager, webview::PageLoadEvent}; +use tauri::{AppHandle, Emitter, Manager, Url, webview::PageLoadEvent}; use tauri_plugin_log::{RotationStrategy, Target, TargetKind, TimezoneStrategy}; use tokio::sync::Mutex; use versions::{ @@ -30,7 +30,7 @@ use versions::{ use crate::{ offline::{MANIFEST_REFRESH_ERROR, OfflineState, is_offline, try_reconnect}, - settings::{MaxMem, SettingsExt}, + settings::{MaxMem, SETTINGS_KEY, SettingsExt}, utils::{log::ResultLogExt, updater::default_client}, versions::{event::UpdateLimiterStore, loader::LoaderType, paths::MCVersionPath}, }; @@ -153,16 +153,30 @@ pub fn run() { if view.label() == "main" && payload.event() == PageLoadEvent::Started && let Ok(current_url) = view.url() - && let Ok(settings) = view.app_handle().app_settings() + && let Ok(mut settings) = view.app_handle().app_settings() && let Some(url) = settings.url && url != current_url { #[cfg(debug_assertions)] if url.scheme() == "tauri" { + let url = Url::parse("http://localhost:1420").unwrap(); + settings.url = Some(url.clone()); + let _ = view.navigate(url); + + if let Ok(store) = view.app_handle().app_store() { + let _ = store.set(SETTINGS_KEY, &settings); + } return; } #[cfg(not(debug_assertions))] - if url.scheme() != "http" && url.scheme() != "https" { + if url.scheme() == "http" || url.scheme() == "https" { + let url = Url::parse("tauri://localhost").unwrap(); + settings.url = Some(url.clone()); + let _ = view.navigate(url); + + if let Ok(store) = view.app_handle().app_store() { + let _ = store.set(SETTINGS_KEY, &settings); + } return; } let _ = view.navigate(url); diff --git a/app/src-tauri/src/settings.rs b/app/src-tauri/src/settings.rs index ba6ee16..0715187 100644 --- a/app/src-tauri/src/settings.rs +++ b/app/src-tauri/src/settings.rs @@ -8,7 +8,7 @@ use crate::{ utils::updater::{UpdateType, update_data}, }; -const SETTINGS_KEY: &str = "settings"; +pub const SETTINGS_KEY: &str = "settings"; pub struct MaxMem { max_mem: u64, diff --git a/app/src-tauri/src/versions/download/manifest.rs b/app/src-tauri/src/versions/download/manifest.rs index 7a3fd55..1d9a5e4 100644 --- a/app/src-tauri/src/versions/download/manifest.rs +++ b/app/src-tauri/src/versions/download/manifest.rs @@ -91,6 +91,7 @@ pub async fn check_java_manifest( Component::JavaRuntimeAlpha => &version.java_runtime_alpha, Component::JavaRuntimeBeta => &version.java_runtime_beta, Component::JavaRuntimeDelta => &version.java_runtime_delta, + Component::JavaRuntimeEpsilon => &version.java_runtime_epsilon, Component::JavaRuntimeGamma => &version.java_runtime_gamma, Component::JavaRuntimeGammaSnapshot => &version.java_runtime_gamma_snapshot, Component::JreLegacy => &version.jre_legacy, diff --git a/app/src-tauri/src/versions/meta/java.rs b/app/src-tauri/src/versions/meta/java.rs index 3f456cc..817b2be 100644 --- a/app/src-tauri/src/versions/meta/java.rs +++ b/app/src-tauri/src/versions/meta/java.rs @@ -29,6 +29,7 @@ pub enum Component { JavaRuntimeAlpha, JavaRuntimeBeta, JavaRuntimeDelta, + JavaRuntimeEpsilon, JavaRuntimeGamma, JavaRuntimeGammaSnapshot, JreLegacy, @@ -99,6 +100,7 @@ pub struct PlatformVersion { pub java_runtime_alpha: Vec, pub java_runtime_beta: Vec, pub java_runtime_delta: Vec, + pub java_runtime_epsilon: Vec, pub java_runtime_gamma: Vec, pub java_runtime_gamma_snapshot: Vec, pub jre_legacy: Vec, diff --git a/app/src/routes/profiles/info/+layout.svelte b/app/src/routes/profiles/info/+layout.svelte index 6be11f4..0d377a7 100644 --- a/app/src/routes/profiles/info/+layout.svelte +++ b/app/src/routes/profiles/info/+layout.svelte @@ -124,10 +124,10 @@ {/snippet} - + profile_open_path(profile.id)} - class="cursor-pointer" + class="cursor-pointer text-nowrap" > Open Directory Repair Profile (deleteOpen = true)} > diff --git a/devenv.nix b/devenv.nix index ebf05df..05bee32 100644 --- a/devenv.nix +++ b/devenv.nix @@ -47,6 +47,8 @@ let webkitgtk_4_1 wayland libxkbcommon + glib-networking + gsettings-desktop-schemas ]; in { @@ -73,6 +75,8 @@ in }; env = { + XDG_DATA_DIRS = "${pkgs.gsettings-desktop-schemas}/share/gsettings-schemas/${pkgs.gsettings-desktop-schemas.name}:$XDG_DATA_DIRS"; + GIO_MODULE_DIR = "${pkgs.glib-networking}/lib/gio/modules"; LD_LIBRARY_PATH = "${lib.makeLibraryPath mcLibs}:$LD_LIBRARY_PATH"; }; } diff --git a/flake.nix b/flake.nix index bca49b4..0ebc3ee 100644 --- a/flake.nix +++ b/flake.nix @@ -137,6 +137,7 @@ ${pkgs.lib.optionalString pkgs.stdenv.hostPlatform.isLinux '' --prefix PATH : ${pkgs.lib.makeBinPath [ pkgs.xrandr ]} --set LD_LIBRARY_PATH ${runtimeDependencies} + --set __NV_DISABLE_EXPLICIT_SYNC 1 ''} )