diff --git a/dash-frontend/assets/lang/de.json b/dash-frontend/assets/lang/de.json index 37ba7ddb..4692b502 100644 --- a/dash-frontend/assets/lang/de.json +++ b/dash-frontend/assets/lang/de.json @@ -207,7 +207,8 @@ "POINTER_ACCELERATION": "Mausbeschleunigung", "POINTER_ACCELERATION_HELP": "An: Adaptive Mausbeschleunigung\nAus: Konstante Geschwindigkeit", "POINTER_SPEED": "Mausgeschwindigkeit", - "INPUT_CAPTURE_METHOD_HELP": "Ermöglicht die Nutzung physischer Peripheriegeräte innerhalb von WayVR.\n Super+Z: Eingabe zwischen WayVR und echtem Desktop umschalten\n Super+X: Zwischen WayVR-Apps umschalten" + "INPUT_CAPTURE_METHOD_HELP": "Ermöglicht die Nutzung physischer Peripheriegeräte innerhalb von WayVR.\n Super+Z: Eingabe zwischen WayVR und echtem Desktop umschalten\n Super+X: Zwischen WayVR-Apps umschalten", + "SPACE_DRAG_AFFECTS_WORLD": "Space-Drag bewegt Overlays" }, "HELLO": "Hallo!", "AUDIO": { @@ -328,4 +329,4 @@ "REMOVE_FROM_FAVOURITES": "Aus Favoriten entfernen", "EMPTY": "Leer", "PINNED_APPS": "Angepinnte Anwendungen" -} +} \ No newline at end of file diff --git a/dash-frontend/assets/lang/en.json b/dash-frontend/assets/lang/en.json index b3372560..3fc32f94 100644 --- a/dash-frontend/assets/lang/en.json +++ b/dash-frontend/assets/lang/en.json @@ -196,6 +196,7 @@ "SKYMAP_ALREADY_DOWNLOADED": "This skymap is already downloaded. Select desired action.", "SPACE_DRAG": "Space drag", "SPACE_DRAG_MULTIPLIER": "Space drag multiplier", + "SPACE_DRAG_AFFECTS_WORLD": "Space drag moves overlays", "SPACE_DRAG_UNLOCKED": "Allow space drag on all axes", "SPACE_GRAVITY_DAMPING": "Damping", "SPACE_GRAVITY_DAMPING_HELP": "Artificial drag to slow down movement. 0.1 - high drag, 1.0 - no drag", diff --git a/dash-frontend/assets/lang/es.json b/dash-frontend/assets/lang/es.json index 109fb33e..3e95ba63 100644 --- a/dash-frontend/assets/lang/es.json +++ b/dash-frontend/assets/lang/es.json @@ -207,7 +207,8 @@ "POINTER_ACCELERATION": "Aceleración del ratón", "POINTER_ACCELERATION_HELP": "Activado: Aceleración adaptativa del ratón\nDesactivado: Velocidad constante", "POINTER_SPEED": "Velocidad del ratón", - "INPUT_CAPTURE_METHOD_HELP": "Permite usar periféricos físicos dentro de WayVR.\n Super+Z: Cambiar la entrada entre WayVR y el escritorio real\n Super+X: Cambiar entre aplicaciones de WayVR" + "INPUT_CAPTURE_METHOD_HELP": "Permite usar periféricos físicos dentro de WayVR.\n Super+Z: Cambiar la entrada entre WayVR y el escritorio real\n Super+X: Cambiar entre aplicaciones de WayVR", + "SPACE_DRAG_AFFECTS_WORLD": "Space-drag mueve las superposiciones" }, "HELLO": "¡Hola!", "AUDIO": { @@ -328,4 +329,4 @@ "REMOVE_FROM_FAVOURITES": "Eliminar de favoritos", "EMPTY": "Vacío", "PINNED_APPS": "Aplicaciones ancladas" -} +} \ No newline at end of file diff --git a/dash-frontend/assets/lang/it.json b/dash-frontend/assets/lang/it.json index 4326ebe1..37e0bdc6 100644 --- a/dash-frontend/assets/lang/it.json +++ b/dash-frontend/assets/lang/it.json @@ -228,7 +228,8 @@ "POINTER_ACCELERATION": "Accelerazione del mouse", "POINTER_ACCELERATION_HELP": "Attivo: Accelerazione adattiva del mouse\nDisattivo: Velocità costante", "POINTER_SPEED": "Velocità mouse", - "INPUT_CAPTURE_METHOD_HELP": "Consente l'uso di periferiche fisiche all'interno di WayVR.\n Super+Z: Passa l'input tra WayVR e il desktop reale\n Super+X: Passa tra le app di WayVR" + "INPUT_CAPTURE_METHOD_HELP": "Consente l'uso di periferiche fisiche all'interno di WayVR.\n Super+Z: Passa l'input tra WayVR e il desktop reale\n Super+X: Passa tra le app di WayVR", + "SPACE_DRAG_AFFECTS_WORLD": "Lo Space-drag sposta gli overlay" }, "APPLICATION_LAUNCHER": "Lanciatore applicazioni", "APPLICATION_STARTED": "Applicazione avviata", @@ -328,4 +329,4 @@ "REMOVE_FROM_FAVOURITES": "Rimuovi dai preferiti", "EMPTY": "Vuoto", "PINNED_APPS": "Applicazioni fissate" -} +} \ No newline at end of file diff --git a/dash-frontend/assets/lang/ja.json b/dash-frontend/assets/lang/ja.json index 0e7bd8af..04618528 100644 --- a/dash-frontend/assets/lang/ja.json +++ b/dash-frontend/assets/lang/ja.json @@ -207,7 +207,8 @@ "POINTER_ACCELERATION": "マウス加速", "POINTER_ACCELERATION_HELP": "オン: 適応型マウス加速\nオフ: 一定速度", "POINTER_SPEED": "マウス速度", - "INPUT_CAPTURE_METHOD_HELP": "WayVR内で物理周辺機器を使用できるようにします。\n Super+Z: WayVRと実際のデスクトップ間で入力を切り替え\n Super+X: WayVRアプリ間で切り替え" + "INPUT_CAPTURE_METHOD_HELP": "WayVR内で物理周辺機器を使用できるようにします。\n Super+Z: WayVRと実際のデスクトップ間で入力を切り替え\n Super+X: WayVRアプリ間で切り替え", + "SPACE_DRAG_AFFECTS_WORLD": "スペースドラッグでオーバーレイを移動" }, "HELLO": "こんにちは!", "AUDIO": { @@ -328,4 +329,4 @@ "REMOVE_FROM_FAVOURITES": "お気に入りから削除", "EMPTY": "空", "PINNED_APPS": "ピン留めされたアプリケーション" -} +} \ No newline at end of file diff --git a/dash-frontend/assets/lang/pl.json b/dash-frontend/assets/lang/pl.json index 8aad4e36..585ffdbb 100644 --- a/dash-frontend/assets/lang/pl.json +++ b/dash-frontend/assets/lang/pl.json @@ -202,7 +202,8 @@ "POINTER_ACCELERATION": "Akceleracja myszy", "POINTER_ACCELERATION_HELP": "Wł.: Adaptacyjna akceleracja myszy\nWył.: Stała prędkość", "POINTER_SPEED": "Prędkość myszy", - "INPUT_CAPTURE_METHOD_HELP": "Umożliwia korzystanie z fizycznych urządzeń peryferyjnych wewnątrz WayVR.\n Super+Z: Przełącz wejście między WayVR a rzeczywistym pulpitem\n Super+X: Przełącz między aplikacjami WayVR" + "INPUT_CAPTURE_METHOD_HELP": "Umożliwia korzystanie z fizycznych urządzeń peryferyjnych wewnątrz WayVR.\n Super+Z: Przełącz wejście między WayVR a rzeczywistym pulpitem\n Super+X: Przełącz między aplikacjami WayVR", + "SPACE_DRAG_AFFECTS_WORLD": "Space-drag przesuwa nakładki" }, "APPLICATION_LAUNCHER": "Uruchamiacz aplikacji", "APPLICATIONS": "Aplikacje", @@ -328,4 +329,4 @@ "REMOVE_FROM_FAVOURITES": "Usuń z ulubionych", "EMPTY": "Puste", "PINNED_APPS": "Przypięte aplikacje" -} +} \ No newline at end of file diff --git a/dash-frontend/assets/lang/zh_CN.json b/dash-frontend/assets/lang/zh_CN.json index 9d8e5a52..08107d48 100644 --- a/dash-frontend/assets/lang/zh_CN.json +++ b/dash-frontend/assets/lang/zh_CN.json @@ -228,7 +228,8 @@ "POINTER_ACCELERATION": "鼠标加速", "POINTER_ACCELERATION_HELP": "开启:自适应鼠标加速\n关闭:恒定速度", "POINTER_SPEED": "鼠标速度", - "INPUT_CAPTURE_METHOD_HELP": "允许在 WayVR 中使用物理外设。\n Super+Z: 在 WayVR 和真实桌面之间切换输入\n Super+X: 在 WayVR 应用之间切换" + "INPUT_CAPTURE_METHOD_HELP": "允许在 WayVR 中使用物理外设。\n Super+Z: 在 WayVR 和真实桌面之间切换输入\n Super+X: 在 WayVR 应用之间切换", + "SPACE_DRAG_AFFECTS_WORLD": "空间拖拽移动覆盖层" }, "APPLICATION_LAUNCHER": "应用启动器", "APPLICATION_STARTED": "应用已启动", @@ -328,4 +329,4 @@ "REMOVE_FROM_FAVOURITES": "从收藏中移除", "EMPTY": "空", "PINNED_APPS": "已固定应用程序" -} +} \ No newline at end of file diff --git a/dash-frontend/src/tab/settings/mod.rs b/dash-frontend/src/tab/settings/mod.rs index 0bac4297..3f116cf3 100644 --- a/dash-frontend/src/tab/settings/mod.rs +++ b/dash-frontend/src/tab/settings/mod.rs @@ -339,6 +339,7 @@ pub(crate) enum SettingType { ScrollSpeed, SnapAngleDeg, SetsOnWatch, + SpaceDragAffectsWorld, SpaceDragMultiplier, SpaceDragUnlocked, SpaceGravityDamping, @@ -390,6 +391,7 @@ impl SettingType { Self::MouseAcceleration => &mut config.wvr_mouse_acceleration, Self::ScreenRenderDown => &mut config.screen_render_down, Self::SetsOnWatch => &mut config.sets_on_watch, + Self::SpaceDragAffectsWorld => &mut config.space_drag_affects_world, Self::SpaceDragUnlocked => &mut config.space_drag_unlocked, Self::SpaceGravityEnabled => &mut config.space_gravity_enabled, Self::SpaceRotateUnlocked => &mut config.space_rotate_unlocked, @@ -534,6 +536,7 @@ impl SettingType { Self::EnableWatch => Ok("APP_SETTINGS.ENABLE_WATCH"), Self::SetsOnWatch => Ok("APP_SETTINGS.SETS_ON_WATCH"), Self::SnapAngleDeg => Ok("APP_SETTINGS.SNAP_ANGLE_DEG"), + Self::SpaceDragAffectsWorld => Ok("APP_SETTINGS.SPACE_DRAG_AFFECTS_WORLD"), Self::SpaceDragMultiplier => Ok("APP_SETTINGS.SPACE_DRAG_MULTIPLIER"), Self::SpaceDragUnlocked => Ok("APP_SETTINGS.SPACE_DRAG_UNLOCKED"), Self::SpaceGravityDamping => Ok("APP_SETTINGS.SPACE_GRAVITY_DAMPING"), diff --git a/dash-frontend/src/tab/settings/tab_space_drag.rs b/dash-frontend/src/tab/settings/tab_space_drag.rs index 7a95f659..fab2c5c6 100644 --- a/dash-frontend/src/tab/settings/tab_space_drag.rs +++ b/dash-frontend/src/tab/settings/tab_space_drag.rs @@ -83,6 +83,8 @@ impl State { options_checkbox(par.mp, id_common_options_parent, SettingType::SpaceDragUnlocked)?; + options_checkbox(par.mp, id_common_options_parent, SettingType::SpaceDragAffectsWorld)?; + options_slider_f32( par.mp, id_common_options_parent, diff --git a/wayvr/src/backend/openvr/playspace.rs b/wayvr/src/backend/openvr/playspace.rs index 0cfcdd51..74b8903c 100644 --- a/wayvr/src/backend/openvr/playspace.rs +++ b/wayvr/src/backend/openvr/playspace.rs @@ -149,7 +149,9 @@ impl PlayspaceMover { let overlay_offset = data.pose.inverse().transform_vector3a(relative_pos) * -1.0; let before_pose = data.pose; data.pose.translation += relative_pos; - playspace_common::shift_world(overlays, &mut app.anchor, &before_pose, &data.pose); + if !app.session.config.space_drag_affects_world { + playspace_common::shift_world(overlays, &mut app.anchor, &before_pose, &data.pose); + } data.hand_pose = new_hand; if self.universe == ETrackingUniverseOrigin::TrackingUniverseStanding { diff --git a/wayvr/src/backend/openxr/playspace.rs b/wayvr/src/backend/openxr/playspace.rs index b2f8e570..e77db07d 100644 --- a/wayvr/src/backend/openxr/playspace.rs +++ b/wayvr/src/backend/openxr/playspace.rs @@ -180,7 +180,9 @@ impl PlayspaceMover { let before_pose = data.pose; data.pose.translation += relative_pos; - playspace_common::shift_world(overlays, &mut app.anchor, &before_pose, &data.pose); + if !app.session.config.space_drag_affects_world { + playspace_common::shift_world(overlays, &mut app.anchor, &before_pose, &data.pose); + } data.hand_pose = new_hand; apply_offset(data.pose, &mut monado.ipc); diff --git a/wayvr/src/config.rs b/wayvr/src/config.rs index eb6fa871..dfbc4967 100644 --- a/wayvr/src/config.rs +++ b/wayvr/src/config.rs @@ -165,6 +165,7 @@ pub struct AutoSettings { pub screen_render_down: bool, pub pointer_lerp_factor: f32, pub space_drag_unlocked: bool, + pub space_drag_affects_world: bool, pub space_gravity_damping: f32, pub space_gravity_enabled: bool, pub space_gravity_fling_strength: f32, @@ -235,6 +236,7 @@ pub fn save_settings(config: &GeneralConfig) -> anyhow::Result<()> { screen_render_down: config.screen_render_down, pointer_lerp_factor: config.pointer_lerp_factor, space_drag_unlocked: config.space_drag_unlocked, + space_drag_affects_world: config.space_drag_affects_world, space_gravity_damping: config.space_gravity_damping, space_gravity_enabled: config.space_gravity_enabled, space_gravity_fling_strength: config.space_gravity_fling_strength, diff --git a/wlx-common/src/config.rs b/wlx-common/src/config.rs index ab8b320f..b2e4585d 100644 --- a/wlx-common/src/config.rs +++ b/wlx-common/src/config.rs @@ -415,6 +415,9 @@ pub struct GeneralConfig { #[serde(default = "def_true")] pub space_drag_unlocked: bool, + #[serde(default)] + pub space_drag_affects_world: bool, + #[serde(default)] pub space_rotate_unlocked: bool,