Commit Graph

368 Commits

Author SHA1 Message Date
Aleksander
91af7c99b1 WayVR: Read the WAYVR_DISPLAY_AUTH environment variable from external processes, matching it to our virtual display.
This enables applications to be run via Flatpak or any other wrapper application.
2025-03-09 21:14:50 +01:00
galister
0b7cd61d05 wayvr modifiers 2025-03-10 03:45:00 +09:00
galister
59b489680a fix wayvr keyboard focus 2025-03-10 02:21:19 +09:00
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
Aleksander
36074307b7 Use tracing-subscriber for logging (#175) 2025-03-09 17:05:18 +00:00
Beyley Thomas
89680bf8cc Fix OpenXR IPD calculation 2025-03-03 14:22:11 -08:00
Aleksander
075e55a8e8 WayVR: Add DashboardShown and DashboardHidden events, add WlxInputState support (#167)
Wlx: Fix various Clippy warnings
2025-02-28 21:05:27 +00:00
galister
c5a82c2879 update libmonado 2025-02-20 06:26:35 +09:00
Diamond White
965174c781 seperate combined UInputHandle into two handles for mouse and keyboard each (#155) 2025-02-12 19:24:42 +00:00
Aleksander
4701d2b734 WayVR: Do not hard-error in case if the user bought NVIDIA 2025-02-11 22:30:38 +01: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
ba5228c643 WayVR: def_false fix 2025-01-21 18:42:00 +01:00
Aleksander
b22af57000 WayVR: Add config default values (Fixes #142) 2025-01-20 23:22:48 +01:00
galister
2bf8984ba1 fix uidev build (#141) 2025-01-20 21:27:47 +00: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
83026deaab WayVR: Add dmabuf (backend_drm) to the compositor. Fixes crash for webkitgtk apps 2025-01-16 22:27:13 +01:00
Aleksander
d8180bb4ed WayVR: Update IPC, send runtime info, update deps 2025-01-14 22:42:18 +01:00
Aleksander
de6c5b8ad9 WayVR: Fix process launching calling create_display two times 2025-01-12 16:30:07 +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
ab6b5c0b46 default AltLayout is None 2025-01-04 22:05:43 +09:00
Jay
c6ff314e93 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.
2024-12-29 08:21:59 +00:00
galister
1903271d05 keyboard.yaml auto_labels 2024-12-23 17:16:24 +09: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
a71f4de0ff fix osc timer and give battery parameters their own timer 2024-11-24 15:13:46 +01:00
cubee
18b2e96079 make parameter String instead of &str
this means parameter can be immutable if left unset at initialisation, and we can use format!() macro in the match statements. silly workarounds no more!
2024-11-24 15:13:46 +01:00
cubee
c09da86659 add parameters for device charging state 2024-11-24 15:13:46 +01:00
cubee
e818259b5b default to -1 if a device has no battery level.
this is just to make sure the unwrap() doesn't crash; -1 (or any negative value) is used as the "disconnected" value.
2024-11-24 15:13:46 +01:00
cubee
c96ead7cf0 send osc parameters based on device role, cleanup usings 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
galister
12218828d4 persist keyboard hide state across sessions 2024-11-24 17:37:35 +09:00
galister
26a872e685 bump max curvature to 180deg 2024-11-24 17:23:21 +09:00
galister
add121bd52 screen_render_down default on 2024-11-24 14:35:31 +09:00
galister
8d6ff1d3a7 EMEA starts at UTC-1 2024-11-23 20:07:13 +09:00
galister
51174b64d3 move timezones out of watch.yaml + sane defaults 2024-11-23 20:01:49 +09:00
galister
54737b02d3 mouse_move_interval_ms defaults to 10 2024-11-23 18:32:47 +09:00
galister
2c31d57afe add mouse_move_interval_ms setting 2024-11-23 18:29:12 +09:00
galister
689fbbe5e4 mute zbus spam 2024-11-20 22:50:22 +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
Aleksander
02faf693dc WayVR: WlOutput support 2024-11-18 19:31:01 +01:00
Aleksander
502cf5d372 WayVR: Display auto-hide support (Fixes #98), keyboard settings in config 2024-11-05 16:40:03 +01:00
Aleksander
d212098a98 WayVR: Add Navi33 GPU to the whitelist (7600xt) 2024-11-05 15:28:23 +01:00
galister
ced753235e clippy 2024-11-05 03:45:22 +09:00
galister
9da1c509e3 fix font loading for 3+ byte codepoints 2024-11-05 03:41:21 +09:00