Commit Graph

393 Commits

Author SHA1 Message Date
galister 412f199f91 openvr: native is srgb, set image_view for lines 2025-04-11 04:41:04 +09:00
Aleksander 4e30bb8cbe
WayVR: doc: Rename executable name in the wayvr.yaml (#192)
[skip ci]
2025-04-10 19:30:44 +00:00
galister 45e53c15a3 steamvr staging texture to use native_format 2025-04-11 04:14:27 +09:00
galister a8ecc973a4 use srgb for openxr, linear for openvr 2025-04-11 02:13:02 +09:00
galister f12d151abf workaround attempt for cosmic desktop 2025-04-11 02:05:11 +09:00
galister bffb4c12cf fix build with non-default features 2025-04-08 19:52:34 +09:00
galister f13a473048 use multi-threaded capture if vk queues ≥ 2 2025-04-08 00:49:34 +09:00
galister b2a7d3c4cb use-bigger-hammer style fix for wayvr dmabufs 2025-04-07 07:56:01 +09:00
galister 4cb12a2a01 Revert "WayVR: Vulkano dmabuf attempt"
This reverts commit 45ab38c310.
2025-04-07 07:34:56 +09:00
galister b830c826a0 separate transfer and capture queues 2025-04-07 05:41:02 +09:00
Aleksander 45ab38c310 WayVR: Vulkano dmabuf attempt 2025-04-06 22:03:40 +02:00
galister bc6c510af1 get rid of cstr dependency 2025-04-07 04:46:47 +09:00
galister 3dd31ec468 fix mouse renderer 2025-04-07 03:38:16 +09:00
galister 60850d8d70 get rid of once_cell 2025-04-07 03:31:58 +09:00
galister 7ac3072506 move drm modifiers to WlxGraphics 2025-04-07 03:06:22 +09:00
galister 2952a3cea1 update vulkano 2025-04-07 02:33:40 +09:00
Aleksander bb2f8380fd WayVR: Fix frame_meta returning `None` 2025-04-06 19:03:29 +02:00
galister 1deae19f92 refactors & clippy recommendations 2025-04-07 00:58:03 +09:00
galister cf29682e66 rework rendering backend 2025-04-06 22:12:56 +09:00
Jay 5f93bc9cac
Config notification/toast sound (#179)
* try adding config to load different sound

looks like include_bytes!() doesn't take a variable parameter, so will need a different solution lol.

* no errors in loading, but toast.rs now has a lifetime issue

* hey, config toast sound works now!

the sound is loaded in AppState now, since Toast are created in several different places at different times, and i don't want to load the sound every time a toast is made.

also put back the original sound since i accidentally commited my custom one.

* clean up

* change custom toast sound leak to happen on load rather than every play

* move toast sound loading into a function

so it can be reused in the future, for example if we want to load arbitrary keypress sounds or other [u8] data.

* remove label from try_load_bytes, return early when failing
2025-03-24 11:32:29 +00:00
Aleksander a55d0d74bb WayVR: Convert `target_display` to lowercase at runtime (Closes #158)
[skip ci]
2025-03-12 17:55:05 +01:00
Aleksander 6d39380ebc
WayVR: Implement software texture blitting as an alternative to dmabuf (Closes #174) (#178) 2025-03-11 22:42:37 +00:00
galister a1cc41f541 cargo fmt 2025-03-12 03:07:35 +09:00
galister bca6376b50 only log keys if debug build and log level trace 2025-03-12 03:06:52 +09:00
Aleksander 05b3baa5d9 WayVR: Clean-up destroyed toplevel windows 2025-03-09 22:04:46 +01:00
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