Commit Graph

58 Commits

Author SHA1 Message Date
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
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
cubee
a71f4de0ff fix osc timer and give battery parameters their own timer 2024-11-24 15:13:46 +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
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
galister
17addcde78 fix --show behavior 2024-07-23 19:09:34 +09:00
galister
a991c6b84a feat: toggle to show by default 2024-07-11 16:59:57 +09:00
galister
698c447e34 fix: mouse click when pointing at 2 screens 2024-06-04 20:42:27 +09:00
galister
065ce8f136 fix: dont overload xr runtime with notify spam 2024-04-24 06:34:01 +02:00
galister
1fa842bb44 feat: anchor point for working set 2024-04-24 10:19:26 +09:00
galister
c02edb7a43 feat: handle screen changes at runtime 2024-04-04 20:06:53 +09:00
galister
4843aeef5d feat: toast topics 2024-03-29 12:21:12 +01:00
galister
810c0cac63 feat: ipd label 2024-03-28 11:51:15 +01:00
galister
3907e089de openvr: re-upload line texs on show-hide to prevent disappearing lasers 2024-03-19 17:16:35 +01:00
galister
b57b77b06a openvr: reset offsets reloads from disk 2024-03-10 14:08:12 +01:00
galister
5a077e394c openvr: reload playspace on scene app change 2024-03-10 13:23:00 +01:00
galister
38395c9183 openvr: universe-aware overlays 2024-03-08 23:08:30 +01:00
galister
ed096fffce fix space drag 2024-03-08 00:00:49 +01:00
galister
cd297376a8 openvr: throttle using WaitFrameSync 2024-03-07 17:57:07 +01:00
galister
e7456a9b0a WIP: space drag rework 2024-03-07 13:17:12 +01:00
galister
507c0677c8 ShowUi & ShowMirror: no implicit show/hide 2024-03-06 20:43:40 +01:00
galister
b045f46b12 modular ui rework 2024-02-25 19:27:48 +01:00
galister
b93ddfce5b openxr: fix segfault 2024-02-22 12:22:50 +01:00
galister
ce573f52ea fix alpha, remove sound for dbus toasts 2024-02-22 00:32:10 +01:00
galister
e7710b56d9 notifications 2024-02-21 19:52:42 +01:00
galister
d31b3ca6c0 omg big commit 2024-02-20 20:54:06 +01:00
galister
0eebc206a2 error handling lol 2024-02-19 03:30:16 +01:00
galister
5d812c3b09 even more error handling 2024-02-19 03:21:00 +01:00
galister
1d9fa95ea0 more error handling 2024-02-19 01:05:50 +01:00
galister
63b43c0e59 improve error handling 2024-02-18 22:24:54 +01:00
galister
979a51ec08 fix building without osc support 2024-02-17 20:00:15 +01:00
galister
ba9ba876dc openxr: hide watch via transform 2024-02-12 21:25:37 +01:00
galister
8116864416 hide watch, switch hands, store actions.json on disk 2024-02-09 00:31:04 +01:00
galister
c1841243ce auto-hide watch 2024-02-06 21:25:38 +01:00
galister
fd2b96c0d6 experimental battery display 2024-02-06 21:14:10 +01:00
galister
754241f6bd osc for openvr; configurable osc port 2024-02-05 23:33:27 +01:00
galister
dddd4db9ef openvr manifest installer 2024-02-05 00:34:42 +01:00
galister
82f53e6668 rework interactions 2024-02-04 14:25:09 +01:00
galister
d7c8b49efa openvr haptics 2024-02-04 03:16:30 +01:00
galister
b5d970e5fd recenter on show 2024-02-04 02:11:32 +01:00
galister
c249b5ec2a laser billboard & sorting fix 2024-02-03 13:44:21 +01:00
galister
832e5a7ecb show-hide binding 2024-02-01 19:49:37 +01:00
galister
9f0856998a playspace mover 2024-01-31 02:16:49 +01:00
Aleksander
dded4f6398 Port changes from -x repo (#3)
* Port config support from -x repo

* Port changes from -x repo
2024-01-29 17:14:54 +00:00