diff --git a/theseus/src/state/settings.rs b/theseus/src/state/settings.rs index 92f20a6f5..dda34bc57 100644 --- a/theseus/src/state/settings.rs +++ b/theseus/src/state/settings.rs @@ -35,6 +35,8 @@ pub struct Settings { #[serde(default)] pub hide_on_process: bool, #[serde(default)] + pub native_decorations: bool, + #[serde(default)] pub default_page: DefaultPage, #[serde(default)] pub developer_mode: bool, @@ -99,6 +101,7 @@ impl Settings { collapsed_navigation: false, disable_discord_rpc: false, hide_on_process: false, + native_decorations: false, default_page: DefaultPage::Home, developer_mode: false, opt_out_analytics: false, diff --git a/theseus_gui/src/App.vue b/theseus_gui/src/App.vue index 601a69d91..957c527dc 100644 --- a/theseus_gui/src/App.vue +++ b/theseus_gui/src/App.vue @@ -51,6 +51,7 @@ const isLoading = ref(true) const videoPlaying = ref(false) const offline = ref(false) const showOnboarding = ref(false) +const nativeDecorations = ref(false) const onboardingVideo = ref() @@ -60,7 +61,7 @@ const os = ref('') defineExpose({ initialize: async () => { isLoading.value = false - const { theme, opt_out_analytics, collapsed_navigation, advanced_rendering, fully_onboarded } = + const { native_decorations, theme, opt_out_analytics, collapsed_navigation, advanced_rendering, fully_onboarded } = await get() // video should play if the user is not on linux, and has not onboarded os.value = await getOS() @@ -69,6 +70,9 @@ defineExpose({ const version = await getVersion() showOnboarding.value = !fully_onboarded + nativeDecorations.value = native_decorations + if (os !== "MacOS") appWindow.setDecorations(native_decorations) + themeStore.setThemeState(theme) themeStore.collapsedNavigation = collapsed_navigation themeStore.advancedRendering = advanced_rendering @@ -341,7 +345,7 @@ command_listener(async (e) => { -
+
diff --git a/theseus_gui/src/pages/Settings.vue b/theseus_gui/src/pages/Settings.vue index fd296d8df..6722d972a 100644 --- a/theseus_gui/src/pages/Settings.vue +++ b/theseus_gui/src/pages/Settings.vue @@ -21,6 +21,7 @@ import JavaSelector from '@/components/ui/JavaSelector.vue' import ModrinthLoginScreen from '@/components/ui/tutorial/ModrinthLoginScreen.vue' import { mixpanel_opt_out_tracking, mixpanel_opt_in_tracking } from '@/helpers/mixpanel' import { open } from '@tauri-apps/api/dialog' +import { getOS } from '@/helpers/utils.js' const pageOptions = ['Home', 'Library'] @@ -242,6 +243,24 @@ async function refreshDir() { " /> +
+ + +