From a991c6b84a467a67971a31d8215494081e4b3709 Mon Sep 17 00:00:00 2001 From: galister <22305755+galister@users.noreply.github.com> Date: Thu, 11 Jul 2024 16:59:57 +0900 Subject: [PATCH] feat: toggle to show by default --- src/backend/common.rs | 4 ++-- src/backend/openvr/mod.rs | 4 ++-- src/backend/openxr/mod.rs | 4 ++-- src/main.rs | 8 ++++++-- 4 files changed, 12 insertions(+), 8 deletions(-) diff --git a/src/backend/common.rs b/src/backend/common.rs index 51422c9..71fba69 100644 --- a/src/backend/common.rs +++ b/src/backend/common.rs @@ -60,7 +60,7 @@ impl OverlayContainer where T: Default, { - pub fn new(app: &mut AppState) -> anyhow::Result { + pub fn new(app: &mut AppState, show_by_default: bool) -> anyhow::Result { let mut overlays = IdMap::new(); let mut wl = create_wl_client(); @@ -95,7 +95,7 @@ where for (meta, mut state, backend) in data.screens { if show_screens.arc_get(state.name.as_ref()) { state.show_hide = true; - state.want_visible = false; + state.want_visible = show_by_default; } overlays.insert( state.id, diff --git a/src/backend/openvr/mod.rs b/src/backend/openvr/mod.rs index 7966dbd..e86b762 100644 --- a/src/backend/openvr/mod.rs +++ b/src/backend/openvr/mod.rs @@ -61,7 +61,7 @@ pub fn openvr_uninstall() { let _ = uninstall_manifest(&mut app_mgr); } -pub fn openvr_run(running: Arc) -> Result<(), BackendError> { +pub fn openvr_run(running: Arc, show_by_default: bool) -> Result<(), BackendError> { let app_type = EVRApplicationType::VRApplication_Overlay; let Ok(context) = ovr_overlay::Context::init(app_type) else { log::warn!("Will not use OpenVR: Context init failed"); @@ -105,7 +105,7 @@ pub fn openvr_run(running: Arc) -> Result<(), BackendError> { let _ = install_manifest(&mut app_mgr); - let mut overlays = OverlayContainer::::new(&mut state)?; + let mut overlays = OverlayContainer::::new(&mut state, show_by_default)?; let mut notifications = NotificationManager::new(); notifications.run_dbus(); notifications.run_udp(); diff --git a/src/backend/openxr/mod.rs b/src/backend/openxr/mod.rs index 4ccb39e..494c638 100644 --- a/src/backend/openxr/mod.rs +++ b/src/backend/openxr/mod.rs @@ -48,7 +48,7 @@ struct XrState { stage_offset: Affine3A, } -pub fn openxr_run(running: Arc) -> Result<(), BackendError> { +pub fn openxr_run(running: Arc, show_by_default: bool) -> Result<(), BackendError> { let (xr_instance, system) = match helpers::init_xr() { Ok((xr_instance, system)) => (xr_instance, system), Err(e) => { @@ -66,7 +66,7 @@ pub fn openxr_run(running: Arc) -> Result<(), BackendError> { AppState::from_graphics(graphics)? }; - let mut overlays = OverlayContainer::::new(&mut app_state)?; + let mut overlays = OverlayContainer::::new(&mut app_state, show_by_default)?; let mut lines = LinePool::new(app_state.graphics.clone())?; let mut notifications = NotificationManager::new(); diff --git a/src/main.rs b/src/main.rs index a7cd7f6..407599b 100644 --- a/src/main.rs +++ b/src/main.rs @@ -34,6 +34,10 @@ struct Args { #[arg(long)] openxr: bool, + /// Show the working set of overlay on startup + #[arg(long)] + show: bool, + /// Uninstall OpenVR manifest and exit #[arg(long)] uninstall: bool, @@ -109,7 +113,7 @@ fn auto_run(running: Arc, args: Args) { #[cfg(feature = "openxr")] if !args_get_openvr(&args) { use crate::backend::openxr::openxr_run; - match openxr_run(running.clone()) { + match openxr_run(running.clone(), args.show) { Ok(()) => return, Err(BackendError::NotSupported) => (), Err(e) => { @@ -122,7 +126,7 @@ fn auto_run(running: Arc, args: Args) { #[cfg(feature = "openvr")] if !args_get_openxr(&args) { use crate::backend::openvr::openvr_run; - match openvr_run(running.clone()) { + match openvr_run(running.clone(), args.show) { Ok(()) => return, Err(BackendError::NotSupported) => (), Err(e) => {