Commit Graph

45 Commits

Author SHA1 Message Date
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 6d39380ebc
WayVR: Implement software texture blitting as an alternative to dmabuf (Closes #174) (#178) 2025-03-11 22:42:37 +00: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 3c792608e7
config_io: Support `wayvr.conf.d` directory, refactoring (#139) 2025-01-20 14:26:17 +00: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
Aleksander 502cf5d372 WayVR: Display auto-hide support (Fixes #98), keyboard settings in config 2024-11-05 16:40:03 +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
Aleksander cf5eabdfdf WayVR: `shown_at_start` app param support 2024-10-26 18:44:08 +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 57ff3aa1dd clippy 2024-08-09 10:19:57 +00:00
galister 7a6040bfee feat: ui sprites + openxr skybox 2024-07-24 21:06:37 +00:00
galister 5575e4f49f fix: openxr swapchain banding 2024-07-11 19:17:41 +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 42aef89822 feat: configurable primary_font 2024-04-14 18:16:26 +09:00
galister 5db7524787
feat: ui dev window (#29)
* feat: ui dev window

* remove unneeded dep
2024-04-14 05:36:47 +00:00
galister c02edb7a43 feat: handle screen changes at runtime 2024-04-04 20:06:53 +09:00
galister 7d987f5cb8 fix: watch notifications 2024-03-29 14:09:39 +01:00
galister 54dfb297ac improve error handling 2024-03-17 16:11:05 +01:00
galister 431de923b3 load forgotten screen shader 2024-02-27 22:13:52 +01:00
galister b045f46b12 modular ui rework 2024-02-25 19:27:48 +01:00
galister ddba450475 notification sounds 2024-02-21 21:27:09 +01:00
galister e7710b56d9 notifications 2024-02-21 19:52:42 +01:00
galister 5d812c3b09 even more error handling 2024-02-19 03:21:00 +01:00
galister 63b43c0e59 improve error handling 2024-02-18 22:24:54 +01:00
galister 5bbaf59790 pipewire: dmabuf capture !!! 2024-02-17 12:32:23 +01:00
galister 8116864416 hide watch, switch hands, store actions.json on disk 2024-02-09 00:31:04 +01:00
galister fd2b96c0d6 experimental battery display 2024-02-06 21:14:10 +01:00
galister 82f53e6668 rework interactions 2024-02-04 14:25:09 +01:00
galister b5d970e5fd recenter on show 2024-02-04 02:11:32 +01:00
galister de1ddd45d7 remove screen shader 2024-02-01 00:48:24 +01:00
Aleksander 6999a4b277
Watch rotation + galister fixes (Keyboard mapping fix, OpenXR hand transform fix) (#4)
* Watch rotation + galister fixes (Keyboard mapping fix, OpenXR hand transform fix)

* Use from_scale_rotation_translation
2024-01-30 20:22:18 +00: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
galister 3b0440562a openvr watch 2024-01-28 22:03:25 +01:00
galister 335652ecb1 fix openxr screen freeze 2024-01-28 13:08:57 +01:00
galister f96083e770 shader shaders & images 2024-01-28 12:00:57 +01:00
galister 8ad1dadcd4 progress commit: openxr + pipewire + refactor 2024-01-27 18:05:13 +01:00
galister 6cfbc6ffcd grab with realign 2023-12-09 22:26:55 +01:00
galister a3b60b9607 screens & basic interactions 2023-12-07 02:07:13 +01:00
galister e5ab46be91 initial commit 2023-12-05 00:16:21 +01:00
galister f193f33f4e nothing works 2023-11-09 22:27:05 +09:00