From 65fd75eb4ad80087eaea7aff85b8bdc8f3e7419e Mon Sep 17 00:00:00 2001 From: galister <22305755+galister@users.noreply.github.com> Date: Thu, 2 Jul 2026 03:56:00 +0900 Subject: [PATCH] remove some profiles, skip saving none values --- dash-frontend/assets/bindings.json.lz4 | Bin 5519 -> 4942 bytes dash-frontend/update-bindings-json.sh | 2 -- wlx-common/src/openxr_actions.rs | 20 ++++++++++++++++++++ 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/dash-frontend/assets/bindings.json.lz4 b/dash-frontend/assets/bindings.json.lz4 index d76de600ad93c44c62da197469219dbff0184717..2bc2e74256def4e37240185f55359757f7d7f971 100644 GIT binary patch delta 3380 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 MY%s^{;r=!M2LS-cUH||9 delta 3890 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 T6*cqQx5~!=`8+rM(ii^^UyUpp diff --git a/dash-frontend/update-bindings-json.sh b/dash-frontend/update-bindings-json.sh index 2c3058e8..edb2ea49 100755 --- a/dash-frontend/update-bindings-json.sh +++ b/dash-frontend/update-bindings-json.sh @@ -7,12 +7,10 @@ readonly ALLOWED_PROFILES="$( /interaction_profiles/htc/vive_controller /interaction_profiles/htc/vive_cosmos_controller /interaction_profiles/htc/vive_focus3_controller -/interaction_profiles/khr/generic_controller /interaction_profiles/khr/simple_controller /interaction_profiles/ml/ml2_controller /interaction_profiles/microsoft/motion_controller /interaction_profiles/mndx/flipvr -/interaction_profiles/mndx/hydra /interaction_profiles/mndx/pssense_controller_mndx /interaction_profiles/oculus/touch_controller /interaction_profiles/oppo/mr_controller_oppo diff --git a/wlx-common/src/openxr_actions.rs b/wlx-common/src/openxr_actions.rs index f8611797..f3326889 100644 --- a/wlx-common/src/openxr_actions.rs +++ b/wlx-common/src/openxr_actions.rs @@ -13,30 +13,50 @@ pub enum OneOrMany { #[derive(Debug, Default, Clone, Serialize, Deserialize)] pub struct OpenXrInputAction { + #[serde(skip_serializing_if = "Option::is_none")] pub left: Option>, + #[serde(skip_serializing_if = "Option::is_none")] pub right: Option>, + #[serde(skip_serializing_if = "Option::is_none")] pub handsfree: Option>, + #[serde(skip_serializing_if = "Option::is_none")] pub threshold: Option<[f32; 2]>, + #[serde(skip_serializing_if = "Option::is_none")] pub double_click: Option, + #[serde(skip_serializing_if = "Option::is_none")] pub triple_click: Option, } #[derive(Debug, Default, Clone, Serialize, Deserialize)] pub struct OpenXrInputProfile { pub profile: String, + #[serde(skip_serializing_if = "Option::is_none")] pub pose: Option, + #[serde(skip_serializing_if = "Option::is_none")] pub click: Option, + #[serde(skip_serializing_if = "Option::is_none")] pub grab: Option, + #[serde(skip_serializing_if = "Option::is_none")] pub alt_click: Option, + #[serde(skip_serializing_if = "Option::is_none")] pub show_hide: Option, + #[serde(skip_serializing_if = "Option::is_none")] pub toggle_dashboard: Option, + #[serde(skip_serializing_if = "Option::is_none")] pub space_drag: Option, + #[serde(skip_serializing_if = "Option::is_none")] pub space_rotate: Option, + #[serde(skip_serializing_if = "Option::is_none")] pub space_reset: Option, + #[serde(skip_serializing_if = "Option::is_none")] pub click_modifier_right: Option, + #[serde(skip_serializing_if = "Option::is_none")] pub click_modifier_middle: Option, + #[serde(skip_serializing_if = "Option::is_none")] pub move_mouse: Option, + #[serde(skip_serializing_if = "Option::is_none")] pub scroll: Option, + #[serde(skip_serializing_if = "Option::is_none")] pub haptic: Option, }