Commit Graph

119 Commits

Author SHA1 Message Date
AdiMCS b0883e81bf Switch to WheelHiRes. Add horizontal scrolling (#171)
* Switch to HiResScroll. Add horizontal scrolling

* Fix OpenVR compilation for horizontal scrolling

* fix OpenXR scroll using x axis for both scroll axes
2025-03-09 17:20:10 +00:00
Beyley Thomas 89680bf8cc Fix OpenXR IPD calculation 2025-03-03 14:22:11 -08:00
galister c5a82c2879 update libmonado 2025-02-20 06:26:35 +09:00
Aleksander e44872f831 Merge pull request #146 from olekolek1000/wayvr_dashboard_ipc
WayVR: Layouting system, state changing feedback, process userdata, various IPC changes
2025-01-31 20:12:04 +01:00
Aleksander 3c67abcebb WayVR: Layouting system, state changing feedback, process userdata, various IPC changes
WayVR:
- Layouting system (tiled and stacked)

IPC:
- Implemented routes: `WvrDisplaySetWindowLayout`, `WvrDisplayWindowList`, `WvrWindowSetVisible`, `WvrProcessGet`,

- Packet broadcasting
- State change feedback to the client (displays/windows/processes)
2025-01-31 20:00:56 +01:00
Jay da129b62b3 Add UI button actions to send arbitrary OSC values. (#140)
* osc: start adding osc buttons

a button action that sends an osc parameter.
struggling with borrows in openxr.rs and openvr.rs when getting the osc sender.

* osc: fix osc sender buttons

by passing a ref to the device list to send_params instead of the entire app state.

* osc: fix warnings

* osc: conditionally use OscSender crate in state.rs

* osc: fix button.rs compile errors without osc/wayvr features

* osc: add other types: int, bool, string. play thump noise when sent.

* osc: fix build without osc feature

i just want to use OscType directly, but since it doesn't derive serde::Deserialize, i can't just have one OscType action or list of actions...

* merge typed actions to one action, support multiple values.

i added a new struct OscValue that has Deserialize, and now the action just converts that to the corresponding OscType when sending the parameters.
perhaps not the most elegant solution, but it's the best i can think of without modifying the rosc crate.

* run `cargo fmt`
2025-01-26 11:23:18 +00:00
Aleksander 8766999e28 WayVR: Haptics support, fix warnings, EGL fix, display visibility IPC, bump dashboard resolution to 1080p 2025-01-23 20:26:34 +01:00
Aleksander 3c792608e7 config_io: Support wayvr.conf.d directory, refactoring (#139) 2025-01-20 14:26:17 +00:00
Aleksander 80d9b02ac7 WayVR: Display removal support 2025-01-19 15:20:52 +01:00
Aleksander 6c95607d44 Watch: Add "Toggle Dashboard" button by default, Toast: Show user-specific error messages in various places, WayVR: Modify example env vars 2025-01-19 00:53:59 +01:00
Aleksander eb3087f230 Merge Staging into main (#130)
* config: add use_passthrough

* do not use ALPHA_BLEND if passthrough is off

* keyboard.yaml auto_labels

* OSC: Finish XSOverlay parity (#124)

* osc-battery - utilise match return value to set parameter

this just lets parameter be a `&str` instead of a `String`, and reduces repetition.

* osc-battery - fix error where trackers were 1-indexed instead of 0-indexed

* osc-battery: xsoverlay parity! add average tracker and controller battery parameters.

this should now be in parity with xsoverlay's parameters.

gone back to 1-indexing trackers because it's more user-friendly, so other programs can standardise more easily.

* osc battery: ...that was not 1-indexed.

no idea how I made that mistake but the sent tracker parameters were actually still 0-indexed.

* Update Envision section (#123)

add directions for appimage autostart

* Add Flatpak instructions (#127)

* Add Flatpak instructions

fix small inconsistencies between instructions

* Clarify Flatpak Steam setup for SteamVR and Monado/WiVRn users

* Additional instructions

* default AltLayout is None

* WayVR: IPC [1]: Local socket server, handshake receiver

* WayVR : IPC [2]: `ListDisplays`, `GetDisplay` commands

* WayVR: IPC [3]: `ListProcesses`, `TerminateProcess` commands

* WayVR: IPC [4]: Minor refactoring

* WayVR: Move IPC to separate Git repository

* Restore default features in Cargo.toml

* WayVR: Implement `WvrDisplayCreate`, Implement `WvrProcessLaunch`, Refactoring

* WayVR: Dashboard toggle support, minor refactoring

* Update Cargo.toml

* fix formatting for openxr_actions.json5

---------

Co-authored-by: galister <22305755+galister@users.noreply.github.com>
Co-authored-by: Jay <157681441+cubee-cb@users.noreply.github.com>
Co-authored-by: Marcus Howser <mhowser.git@mailbox.org>
Co-authored-by: Joshua Vandaële <joshua@vandaele.software>
2025-01-11 08:46:54 +00:00
galister 4de6116985 do not use ALPHA_BLEND if passthrough is off 2024-12-08 02:19:06 +09:00
galister 65432ebde4 config: add use_passthrough 2024-12-07 07:26:19 +01:00
cubee 546b38204c use AppState to get device roles
i _understand_ now!
basically, i did it the "wrong" way first by modifying openxr.rs and openvr.rs to pass battery levels to osc, when really i could have just made osc get the pre-formatted device details from AppState. live and learn, i'm new to rust anyway.
2024-11-24 15:13:46 +01:00
galister bdf02ea206 update deps, back to env_logger, fix screen transform 2024-11-20 22:50:22 +01:00
galister e23444aa89 apply pipewire transforms to screens 2024-11-20 22:50:22 +01:00
galister 058baebd0c fix skybox appearing after closing an app in passtrhu mode 2024-11-04 21:23:30 +09:00
galister 5a060c28f2 support wivrn passthru mode 2024-11-04 21:19:21 +09:00
Aleksander 96db24d02e WayVR: Modify readme, Various improvements
- Add "Quick setup" and images in readme
- Implement `click_freeze_time_ms`
- Automatically show hidden display if AppClick has been triggered
2024-11-03 16:26:37 +01:00
Aleksander 7e09c010db WayVR: External process support, various tweaks and bugfixes
- Support for foreign wayland clients, WayVR process is now separated into
  managed and external one
- Add `run_compositor_at_start` global param
- Add `primary` display param
- Export WAYLAND_DISPLAY number into XDG_RUNTIME_DIR directory
- Bugfix: Redraw event is not triggered after despawning a process
- Sanitization in WayVRConfig::post_load()
2024-10-27 21:26:33 +01:00
galister cf03beef07 add alt_click 2024-10-22 05:55:25 +09:00
Aleksander 07d7afa96f WayVR: WayVRDisplayList ui type, toggle display visibility and pause rendering of them 2024-10-21 20:46:52 +02:00
Aleksander d9dddbad11 WayVR: Initial GUI integration
The format of the wayvr.yaml configuration file is subject to change at any time.
2024-10-21 20:46:52 +02:00
Aleksander edfa77e07c Integrate WayVR into wlx directly 2024-10-18 21:11:56 +02:00
Aleksander 9dbd1f994e Use strongly-typed OverlayID instead of usize 2024-10-17 21:09:19 +02:00
galister 583a5f7fe0 openxr: toggle for space rotate axis lock 2024-09-18 04:06:37 +09:00
galister 03f2eaf97f fps-stabilize openxr smoothing 2024-09-16 07:05:26 +09:00
galister 21331b5c42 fps-aware openxr pointer smoothing 2024-09-16 05:09:10 +09:00
galister 72a82530ae fix openxr space rotate 2024-09-16 05:01:15 +09:00
galister b0a33a1181 openxr: laser pointer smoothing 2024-09-09 07:54:19 +09:00
hypevhs 9d18628354 feat: XR binding for playspace reset 2024-08-15 21:30:39 +02:00
galister 50c3f49989 hmd pose from view space 2024-08-09 08:38:37 +09:00
galister c29bbbb142 review unwraps 2024-08-03 20:50:34 +09:00
Aleksander aca177635e Input source: Update monado devices only if they are available
Fixes .unwrap() panic in the simulated Monado driver
2024-08-02 20:20:34 +00:00
Torge Matthies 1de9cea397 feat: openxr battery status 2024-08-02 16:33:09 +00:00
galister 3d0611052f switch to using libmonado-rs 2024-07-31 05:28:34 +09:00
galister dcc2cd0575 openxr: configurable screen downscale 2024-07-29 22:14:25 +09:00
galister 7a6040bfee feat: ui sprites + openxr skybox 2024-07-24 21:06:37 +00:00
galister 17addcde78 fix --show behavior 2024-07-23 19:09:34 +09:00
Torge Matthies 5a45d4dd2f openxr: fix triple-click bindings on left hand reacting to the wrong hand 2024-07-22 23:27:36 +00:00
galister 9a928b1c0c Monado: support new space offset API 2024-07-20 03:33:07 +09:00
galister 106028be67 reset click counter on pass 2024-07-17 14:22:06 +00:00
galister 787a3851b3 openxr: add triple-click option 2024-07-17 14:22:06 +00:00
galister 5575e4f49f fix: openxr swapchain banding 2024-07-11 19:17:41 +09:00
galister a991c6b84a feat: toggle to show by default 2024-07-11 16:59:57 +09:00
galister bdc500973c feat: cubic filtering 2024-07-11 16:23:48 +09:00
galister d225250b77 feat: openxr space rotate 2024-06-17 15:15:16 +09:00
galister c7aa88647c feat: space drag multiplier 2024-06-17 14:36:21 +09:00
alexdenerqal b2429bce7f fix(openxr): correct default bindings for move_mouse 2024-06-09 09:57:57 +09:00
galister 4abfa3c3ac fix double-click hold not working on OpenXR 2024-06-09 00:19:42 +09:00