Commit Graph

412 Commits

Author SHA1 Message Date
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
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
Anon_11487 24096b7b5a Configurable Purple laser modifier 2024-11-03 09:34:44 +01:00
Anon_11487 f941f76339 Enable CTRL modifier key with purple laser 2024-11-03 09:34:44 +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
Aleksander 9195a338fd WayVR: Redraw only if needed 2024-10-26 21:57:11 +02:00
Aleksander cf5eabdfdf WayVR: `shown_at_start` app param support 2024-10-26 18:44:08 +02:00
Aleksander 8d82993704 WayVR: `attach_to`, `pos` and `rotation` spawn parameters in wayvr.yaml config script 2024-10-24 22:44:37 +02:00
galister cf03beef07 add alt_click 2024-10-22 05:55:25 +09:00
Aleksander 83bf0fff5d WayVR: Process cleanup support, Refactoring 2024-10-21 20:46:52 +02: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 bc9bac8c40 Fix compilation issues with uidev target or without wayland target 2024-10-17 22:53:17 +02:00
Aleksander 9dbd1f994e Use strongly-typed OverlayID instead of usize 2024-10-17 21:09:19 +02:00
galister 7f72abc62a release modifiers on keyboard hide 2024-09-28 01:53:20 +09:00
galister 83ae798215 add virtualkey action for modular button 2024-09-27 02:23:13 +09:00
galister bdbdbea20b screen notification popups 2024-09-26 23:51:46 +09:00
galister a077f2dda4 fix dragging cursor off-screen 2024-09-26 23:51:44 +09:00
galister 8d35b45c2b rollback vulkano 2024-09-24 11:45:29 +02:00
galister 6a2d8b9f90 fresh watch style 2024-09-19 03:09:09 +09: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 13d9284bb8 move mouse move-scroll exclusivity to hid module 2024-09-11 06:03:22 +09:00
galister b0a33a1181 openxr: laser pointer smoothing 2024-09-09 07:54:19 +09:00
galister 4f38d1ad44 make pipewire default on wlroots 2024-08-24 02:21:43 +09:00
galister c6bc880bc3 add logging for screen pipeline 2024-08-20 16:49:35 +09:00
galister 6a3b60f298 feat: screen_render_down 2024-08-20 13:54:18 +09:00
hypevhs 9d18628354 feat: XR binding for playspace reset 2024-08-15 21:30:39 +02:00
galister d9287f3250 Release 0.4.4 2024-08-11 06:23:38 +09:00
hypevhs 378ea120c8 Fix mirrors spawning behind head 2024-08-10 20:34:55 +00:00
galister f4cc49ca69 fix keyboard macro regex 2024-08-09 23:25:59 +00:00
galister 57ff3aa1dd clippy 2024-08-09 10:19:57 +00:00
galister 0808383e70 corner_radius is optional 2024-08-09 10:19:57 +00:00
galister c71911998e upright screen fix 2024-08-09 08:38:37 +09:00
galister 50c3f49989 hmd pose from view space 2024-08-09 08:38:37 +09:00
Aleksander b6a07c43a5 Fix scrolling for all Electron-based applications 2024-08-07 18:12:20 +00: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
galister c3c8694e1a update deps 2024-08-02 16:49:55 +00:00
Torge Matthies 1de9cea397 feat: openxr battery status 2024-08-02 16:33:09 +00:00
galister 939a537d20 fix: ipd label not visible on uidev 2024-08-01 18:36:03 +09: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 57ff3ec3bc settings: auto-close on fix floor & reset offset 2024-07-25 09:10:03 +09:00
Adalyn Black e14b35bece Cattpuccin Macchiato Re-theme 2024-07-24 23:59:39 +00:00
Adalyn Black 88da3c832a Removed unused render_rect function 2024-07-24 23:59:39 +00:00
Adalyn Black 7b4576bd52 Removed unused imports 2024-07-24 23:59:39 +00:00
Adalyn Black a98b7a210f Switched to shader for corner rounding 2024-07-24 23:59:39 +00:00
Adalyn Black 32e0e7656a Moved corner radius property to be separate from the rect struct 2024-07-24 23:59:39 +00:00
Adalyn Black f27c320231 feat: rounded corners
A proof of concept commit for rounded corners. Currently unoptimized and in need of reorganization too. May also make keyboard keys invisible
2024-07-24 23:59:39 +00:00
galister a56ed68b44 mirrors: print pw errors 2024-07-24 21:06:37 +00:00
galister 7a6040bfee feat: ui sprites + openxr skybox 2024-07-24 21:06:37 +00:00