Compare commits

...

1314 Commits

Author SHA1 Message Date
loucass003
a171bc2783 More udp tracker data 2026-04-01 01:45:58 +02:00
loucass003
242920316b Packets bundling support 2026-03-30 14:22:44 +02:00
loucass003
2fc64b3e8b Lint 2026-03-30 11:24:49 +02:00
loucass003
02ca403e24 More data for udp trackers 2026-03-30 11:24:21 +02:00
loucass003
17e87178fc Remove some console warnings 2026-03-30 05:39:49 +02:00
loucass003
dd6c1e7567 Lint 2026-03-30 05:23:37 +02:00
loucass003
0ab80528fe More position data for devices 2026-03-30 05:23:31 +02:00
loucass003
e07ef046a6 batch dispatch together 2026-03-30 05:23:14 +02:00
loucass003
71b74914a3 Better logs and ping id sequence for udp devices 2026-03-30 05:22:55 +02:00
loucass003
f65f41ad17 User height calibration (Non tested) 2026-03-29 05:35:48 +02:00
loucass003
df4569fe17 Format 2026-03-27 05:58:46 +01:00
loucass003
38743dc8b8 organise more stuff 2026-03-27 05:55:10 +01:00
loucass003
9d1e7764e6 Re organise project 2026-03-27 05:29:41 +01:00
loucass003
fa1d2012e1 Make vrc config save mute settings to config 2026-03-27 02:53:26 +01:00
loucass003
8168e1366a VRC settings (Non tested on windows) 2026-03-27 02:24:08 +01:00
loucass003
ea92fb4c01 Basic HID support 2026-03-26 22:41:47 +01:00
loucass003
fc476a1683 Proper handling of the reconnect on ota and serial 2026-03-26 19:05:46 +01:00
loucass003
5946ca1b7a Better udp and feeder connection handling 2026-03-26 18:44:51 +01:00
loucass003
6c4fdedcd1 Make ota and serial check for the device status 2026-03-26 17:53:29 +01:00
loucass003
1001b7f887 Cleanup 2026-03-26 17:34:49 +01:00
loucass003
86dbdbddf8 OTA updates + Packet processing optimisations + code cleanup 2026-03-26 14:44:39 +01:00
loucass003
d46fb013ac Unit tests + Fix start datafeed behaviour 2026-03-26 09:19:58 +01:00
loucass003
8ffd00eb47 Serial + Serial Flasher 2026-03-25 15:11:07 +01:00
loucass003
853155600a Small design guidelines update 2026-03-25 01:05:51 +01:00
loucass003
ad9bc911b6 Basic codestyle doc + rename stuff to match it 2026-03-25 00:30:34 +01:00
Sapphire
2235b8178b Join datafeed timers on separate coroutine 2026-03-24 15:40:54 -05:00
loucass003
e37a37bcf9 Small optimisations / fixes to make sure couroutines do well and prevent dataraces 2026-03-24 02:17:22 +01:00
loucass003
af4665e7c9 IPC interface for linux (tested) and windows (untested) - Solarxr / driver 2026-03-24 01:21:47 +01:00
loucass003
a42ed79003 Basic config system 2026-03-23 04:37:43 +01:00
loucass003
334be5f7cc Solaxr datafeed out 2026-03-20 03:35:17 +01:00
loucass003
4c1e4691be Solarxr start 2026-03-19 17:43:15 +01:00
loucass003
4fd4997e60 Logger test 2026-03-19 03:55:09 +01:00
loucass003
6eb63ce9f8 Tracker data 2026-03-19 02:56:32 +01:00
loucass003
01b7b8dbba basic handshake 2026-03-18 16:38:20 +01:00
loucass003
e060bc7cc5 Trying to get the basic shape of the state system out. Testing it with the udp part of the server to confirm the implementation choices 2026-03-17 21:22:56 +01:00
loucass003
d691619b98 Burn everything and start fresh 2026-03-17 11:37:27 +01:00
loucass003
95daec6814 Pass server jar properly 2026-03-12 02:26:13 +01:00
lucas lelievre
43b104fcc3 Electron build fix round 2 (#1783) 2026-03-12 02:11:42 +01:00
loucass003
a33d6b1c1a Set better folder for electron storage 2026-03-11 20:45:37 +01:00
loucass003
cf67b9306b Remove electron test from ci 2026-03-11 19:23:56 +01:00
lucas lelievre
238c86ee98 Electron CI fixes (#1780) 2026-03-11 19:12:47 +01:00
loucass003
7f56209ca9 Fix windows zip 2026-03-11 16:57:33 +01:00
loucass003
a3e50cdc02 fix server.jar output path 2026-03-11 01:39:41 +01:00
loucass003
b7c43d8373 Fix release out 2026-03-11 01:23:38 +01:00
lucas lelievre
cadc13f2e0 Revert "Bump actions/upload-artifact from 6 to 7" (#1779) 2026-03-11 01:02:49 +01:00
dependabot[bot]
7965d2e081 Bump actions/upload-artifact from 6 to 7 (#1770)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-10 23:33:56 +01:00
Butterscotch!
b829a20169 Bump Gradle, plugin, and package versions (#1746)
Co-authored-by: lucas lelievre <loucass003@gmail.com>
2026-03-10 22:40:41 +01:00
loucass003
653b8b4014 Make macos build 2026-03-10 22:04:43 +01:00
lucas lelievre
a891203204 Switch to Electron (#1747)
Co-authored-by: Hannah Lindrob <hannahlindrob@ourlook.com>
Co-authored-by: Sapphire <imsapphire0@gmail.com>
2026-03-10 21:38:02 +01:00
Sapphire
0236a05f26 Allow showing 'Up to date' version for third-party trackers (#1756) 2026-02-25 23:08:31 +01:00
Butterscotch!
28deb357da Revert TrackerResetsHandler & add comments (#1748) 2026-02-20 11:26:23 +01:00
jabberrock
4d93f87a01 Clarify AI policy on contributions (#1752) 2026-02-17 03:59:11 +03:00
Sapphire
88adfce242 Hide tracker firmware version when board type is unknown (#1721) 2026-02-09 21:58:36 +01:00
Sapphire
3d02795dbc Don't trigger timeout when Wi-Fi provisioning is done (#1725)
Co-authored-by: lucas lelievre <loucass003@gmail.com>
2026-02-09 21:57:56 +01:00
Sapphire
7ff50f78eb Don't ask for full reset on timeout with manual or saved mounting (#1727) 2026-02-02 18:06:38 +01:00
Sapphire
0e3aaf105c Display more accurate info for OpenVR devices (#1731) 2026-02-02 18:06:17 +01:00
sctanf
f638540886 TrackerBattery disable tooltip while charging (#1733) 2026-02-02 18:05:50 +01:00
Sapphire
343d69d690 Support feet mounting reset over Protobuf bridge (#1737) 2026-02-02 18:05:31 +01:00
H3
e2d7d354c6 Add ESP32-S2 to USB-Serial Accept-List (#1730)
Co-authored-by: unlogisch04 <98281608+unlogisch04@users.noreply.github.com>
2026-01-29 22:54:37 +03:00
sctanf
cc6f297b92 Re-add missing battery runtime estimate to DataFeedBuilder (#1732) 2026-01-29 14:00:18 +04:00
H114514191981
2add43e71a add CH343 support (#1568)
Co-authored-by: unlogisch04 <98281608+unlogisch04@users.noreply.github.com>
2026-01-28 10:39:25 +02:00
Sapphire
0a493ac345 Fix scheduled resets triggering immediately when delay is unspecified (#1724) 2026-01-25 07:08:25 +02:00
Sapphire
17bb2703d1 Fix unassigned HMD flightlist step never showing (#1723) 2026-01-24 07:34:37 +02:00
Sapphire
f0981bf709 ProtocolAPI: Initialise RPCHandler after other members (#1722) 2026-01-24 01:17:25 +03:00
peelz
99de554c18 Add delay param to ResetRequest (#1712) 2026-01-23 03:38:08 +04:00
Sapphire
f95a4d56d7 Add feet mounting reset keybind (#1717) 2026-01-23 03:14:27 +04:00
Sapphire
1df3c9d322 Hide devices with unknown board type in DIY firmware tool (#1718) 2026-01-23 03:14:12 +04:00
sctanf
e0838cce6c Battery indicators (#1714) 2026-01-23 03:13:36 +04:00
Sapphire
e25d3201c2 Fix translation key for Autobone processing text (#1719) 2026-01-23 03:12:18 +04:00
Sapphire
5d14f14139 Fix alignment of neck and head dots in tracker assignment page (#1720) 2026-01-23 03:11:37 +04:00
Eiren Rain
09e81f5ace Fix trackers table having an extra header 2026-01-19 20:29:23 +01:00
Maya
8f57ef2de4 Migrate core/dev.slimevr.protocol to Kotlin (#1688)
Co-authored-by: Butterscotch! <bscotchvanilla@gmail.com>
2026-01-14 15:50:04 +01:00
loucass003
ea242960b3 Lint 2026-01-12 21:34:19 +01:00
Eiren Rain
35ac14a7de Packet loss (#1687)
Co-authored-by: loucass003 <loucass003@gmail.com>
2026-01-12 21:22:53 +01:00
Aed
690a8b5c6e add manual mounting to stay alligned setup (#1692) 2026-01-08 02:16:08 +01:00
sctanf
255b8b2865 Detect and use tracker PID during HID enumeration (#1556) 2026-01-07 10:13:33 +01:00
Eiren Rain
e27ec63985 Accept fixed tracker accel (#1706) 2026-01-07 08:57:24 +03:00
Butterscotch!
9f8be6551c Accept fixed tracker accel 2026-01-06 22:51:17 -05:00
lucas lelievre
f09cd687c7 Make ignore buttons be session only in checklist (#1675) 2026-01-05 16:21:36 +01:00
lucas lelievre
686499f8dd fix fw tool source (#1690) 2026-01-05 16:20:45 +01:00
Butterscotch!
a3bcc61892 Fix race conditions from Play Store (#1696) 2025-12-26 10:28:39 +01:00
sctanf
faf70c9a39 Add nRF consts (#1685) 2025-12-26 09:26:32 +01:00
sctanf
2aa8d3a056 hid add "unknown" runtime state (#1693) 2025-12-25 16:41:46 +01:00
Meia
23df46ca33 Amplify UI sounds by 8dB (#1694) 2025-12-25 16:41:08 +01:00
lucas lelievre
8407f52777 Better columns width for table view (#1691) 2025-12-19 00:24:28 +01:00
lucas lelievre
b44dcaa9c2 Runtime (#1678) 2025-12-19 00:11:10 +01:00
sctanf
ff0d823aff Merge remote-tracking branch 'upstream/main' into runtime 2025-12-18 10:46:44 -06:00
sctanf
2e8bfa5373 Update solarxr-protocol 2025-12-18 02:35:33 -06:00
sctanf
87940ddd03 TrackerBattery tooltip remove classes 2025-12-18 00:04:07 -06:00
sctanf
6208979ce9 TrackerBattery battery level tooltip if not shown 2025-12-17 23:48:00 -06:00
lucas lelievre
9a27fb1320 separate firmware date from version (#1650) 2025-12-18 06:46:10 +01:00
sctanf
53129328d0 Update solarxr-protocol 2025-12-17 22:59:24 -06:00
lucas lelievre
2d79c5a0e9 Add @ImSapphire as code owner for i18n directory 2025-12-18 05:03:19 +01:00
sctanf
74f5a92ce1 fw date default 2025-12-15 09:16:47 -06:00
sctanf
146930279c add firmware date to new field 2025-12-15 09:16:47 -06:00
sctanf
0c33579858 HIDCommon don't show firmware date in version 2025-12-15 09:16:46 -06:00
sctanf
c9783d097b show voltage in less situations 2025-12-15 09:16:30 -06:00
sctanf
d3eafb8d06 only show runtime if nonzero 2025-12-15 09:16:30 -06:00
sctanf
09d44b51d6 linter borked it 2025-12-15 09:16:30 -06:00
sctanf
cf357e71f5 lint 2025-12-15 09:16:29 -06:00
sctanf
122efacc52 show runtime in gui 2025-12-15 09:16:29 -06:00
sctanf
7f536528d0 Parse runtime from HID tracker 2025-12-15 09:16:28 -06:00
Eiren Rain
3982249ebf Bump actions/upload-artifact from 5 to 6 (#1683) 2025-12-15 17:53:59 +03:00
Eiren Rain
388bea2e72 Bump actions/download-artifact from 6 to 7 (#1684) 2025-12-15 17:53:41 +03:00
dependabot[bot]
921a760817 Bump actions/download-artifact from 6 to 7
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 6 to 7.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](https://github.com/actions/download-artifact/compare/v6...v7)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-15 14:12:16 +00:00
dependabot[bot]
55bcec4dda Bump actions/upload-artifact from 5 to 6
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 5 to 6.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v5...v6)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-15 14:12:07 +00:00
Eiren Rain
bb08e8dc6a DesktopHID only warn if device cannot open (#1682) 2025-12-15 11:08:44 +03:00
sctanf
a82f950eb6 DesktopHID only warn if device cannot open 2025-12-14 20:52:14 -06:00
Eiren Rain
e2dbaab8ba hid packet 6 and packet 7 (data2) (#1679) 2025-12-14 10:25:49 +03:00
sctanf
3611bb5cc7 hid packet 6 and packet 7 (data2)
this is the worst meme ever
2025-12-13 23:59:36 -06:00
lucas lelievre
f01f599526 New Pontoon translations (#1672) 2025-12-11 20:39:52 +01:00
SlimeVR-bot
6847526ce8 Pontoon/GUI: Update Simplified Chinese (zh-Hans)
Co-authored-by: pwnint <ahndkp@gmail.com> (zh-Hans)
Co-authored-by: 寂听 <jiting@jtcat.com> (zh-Hans)
Co-authored-by: nekomona <nekomona@163.com> (zh-Hans)
2025-12-11 19:03:14 +00:00
SlimeVR-bot
c5f28a6a01 Pontoon/GUI: Update Simplified Chinese (zh-Hans)
Co-authored-by: 寂听 <jiting@jtcat.com> (zh-Hans)
Co-authored-by: Joshh <josh229411@icloud.com> (zh-Hans)
Co-authored-by: pwnint <ahndkp@gmail.com> (zh-Hans)
Co-authored-by: nekomona <nekomona@163.com> (zh-Hans)
2025-12-11 19:03:14 +00:00
lucas lelievre
86d7d5fdc6 Fix tracker set selection (#1668) 2025-12-11 20:02:52 +01:00
lucas lelievre
781f4d489a Better Android signing & Google Play bundle building (#1670) 2025-12-11 19:56:07 +01:00
jabberrock
5a42426048 [Stay Aligned] Fix broken tracker rotations (#1669) 2025-12-11 07:26:12 -05:00
Butterscotch!
44643f2cc6 Rename Google Play artifact 2025-12-11 07:06:02 -05:00
Butterscotch!
d902515f4f Change message 2025-12-11 06:30:40 -05:00
Butterscotch!
f9df08aefd Include all Android tasks for signing & Play CI 2025-12-11 06:27:20 -05:00
Butterscotch!
28b18e0d42 Handle KeyStore secret directly in Gradle 2025-12-11 06:27:20 -05:00
loucass003
247c063791 Lint 2025-12-11 10:11:16 +01:00
lucas lelievre
ab248287cc Update gui/src/components/onboarding/pages/trackers-assign/TrackerAssignOptions.tsx
Co-authored-by: Sapphire <imsapphire0@gmail.com>
2025-12-11 09:44:33 +01:00
lucas lelievre
9a26fc98b8 Update gui/src/components/onboarding/pages/trackers-assign/TrackerAssignOptions.tsx
Co-authored-by: Sapphire <imsapphire0@gmail.com>
2025-12-11 09:44:28 +01:00
loucass003
16a2ac8474 Lint 2025-12-11 09:36:02 +01:00
loucass003
c4acf4cc41 Better selection + only set the prefered once for a new user 2025-12-11 09:30:21 +01:00
loucass003
4b0a2d27d0 Fix tracker set selection 2025-12-11 09:19:25 +01:00
lucas lelievre
2c6708bfe7 Don't show fw update icon when update is blocked (#1667) 2025-12-11 08:35:46 +01:00
Sapphire
2880623cce Fix fw update icon low battery warning 2025-12-11 00:30:54 -06:00
Sapphire
17400ca337 Don't show fw update icon when update is blocked 2025-12-11 00:24:06 -06:00
lucas lelievre
3276f6db7a Fix tooltips on table and reset buttons (#1666) 2025-12-11 06:21:56 +01:00
loucass003
db59537adc Fix tooltips on table and reset buttons 2025-12-11 06:17:05 +01:00
lucas lelievre
4f1fd82923 Tooltip: Better handling of disabled buttons (#1665) 2025-12-11 04:02:12 +01:00
loucass003
f6ccb5970f Lint 2025-12-11 03:57:06 +01:00
loucass003
c937b91267 Better handling of disabled buttons 2025-12-11 03:54:23 +01:00
lucas lelievre
2d1f32b950 Disable R8 optimization for Android (#1664) 2025-12-11 03:28:49 +01:00
Butterscotch!
8acba98bcc Temporarily disable Proguard optimization 2025-12-10 21:23:38 -05:00
lucas lelievre
d7ba1b8335 Fix mobile tooltip (#1662) 2025-12-11 03:13:13 +01:00
lucas lelievre
d20e9bfd94 Fix tiertiary dropdown text color (#1663) 2025-12-11 02:56:37 +01:00
loucass003
3d54a86bd8 Fix tiertiary dropdown text color 2025-12-11 02:54:22 +01:00
loucass003
c9883f5eb4 Fix mobile tooltip 2025-12-11 02:28:09 +01:00
lucas lelievre
8bd36fac25 Increase accent text contrast for ace theme (#1656) 2025-12-11 02:26:43 +01:00
lucas lelievre
ab4d507d9f Snep theme (#1659) 2025-12-11 02:26:26 +01:00
lucas lelievre
9efb985260 Sentry fixes (#1658) 2025-12-11 02:26:10 +01:00
loucass003
2c2c227187 Fix scaled proportions event not triggering 2025-12-11 02:24:00 +01:00
sctanf
63cca6756e lint 2025-12-10 19:07:28 -06:00
lucas lelievre
b0d7fefa5e Only skip server start when CLI arg is passed (#1660) 2025-12-11 02:02:57 +01:00
Butterscotch!
35a5cb47d9 Disable Android obfuscation 2025-12-10 19:07:54 -05:00
lucas lelievre
dfc4383271 Update gui/src/hooks/app.ts
Co-authored-by: Sapphire <imsapphire0@gmail.com>
2025-12-10 21:58:47 +01:00
lucas lelievre
185431a733 Update gui/src/hooks/tracking-checklist.ts
Co-authored-by: Sapphire <imsapphire0@gmail.com>
2025-12-10 21:58:35 +01:00
Sapphire
5b68a01186 Only skip server start when CLI arg is passed 2025-12-10 14:36:56 -06:00
lucas lelievre
2c4dd4085f Remove Ktor dependency (#1655) 2025-12-10 21:34:35 +01:00
sctanf
4d3ff0e9c9 snep 2025-12-10 11:42:16 -06:00
loucass003
ee6182bb23 lint 2025-12-10 17:15:07 +01:00
loucass003
9576d6e034 Sentry fixes 2025-12-10 17:12:25 +01:00
lucas lelievre
227ddc87d2 Increment Android version code and log config (#1657) 2025-12-10 13:51:46 +01:00
Butterscotch!
b3b7730b2c Increment Android version code and log config 2025-12-10 07:14:54 -05:00
Butterscotch!
075a155f13 Increase accent text contrast for ace theme 2025-12-10 05:31:43 -05:00
Butterscotch!
79a3b66e43 Fix formatting 2025-12-10 05:08:29 -05:00
lucas lelievre
fe58968718 New Pontoon translations (#1654) 2025-12-10 09:38:53 +01:00
Butterscotch!
276e73e724 Remove Ktor dependency 2025-12-10 00:39:27 -05:00
SlimeVR-bot
01dd916498 Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-09 20:00:05 +00:00
SlimeVR-bot
6ebf9792ac Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-09 16:30:06 +00:00
SlimeVR-bot
02f8195b5b Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-09 15:26:14 +00:00
SlimeVR-bot
7b4946f41d Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-09 15:26:14 +00:00
SlimeVR-bot
5f4c90128f Pontoon/GUI: Update German (de)
Co-authored-by: Patty <pattycoder@gmx.de> (de)
Co-authored-by: unlogisch <unlogisch@gmx.ch> (de)
2025-12-09 15:26:14 +00:00
SlimeVR-bot
6a2a30e319 Pontoon/GUI: Update Dutch (nl), German (de)
Co-authored-by: Nola <stefsecretdesecret@gmail.com> (nl)
Co-authored-by: Joshh <josh229411@icloud.com> (nl)
Co-authored-by: Vyolex <25586367+Vyolex@users.noreply.github.com> (nl)
Co-authored-by: Smeltie <martijnklerks123@gmail.com> (nl)
Co-authored-by: C0D3 M4513R <mail@c0d3m4513r.com> (de)
Co-authored-by: Patty <pattycoder@gmx.de> (de)
Co-authored-by: unlogisch <unlogisch@gmx.ch> (de)
Co-authored-by: stephaniegoldschmidt9 <stephaniegoldschmidt9@gmail.com> (de)
2025-12-09 15:26:14 +00:00
SlimeVR-bot
8a5f27e8d9 Pontoon/GUI: Update 28 localizations 2025-12-09 15:26:14 +00:00
lucas lelievre
199bec40e1 Build and sign release APK (#1653) 2025-12-09 16:25:49 +01:00
lucas lelievre
9d32220275 Merge branch 'main' into bscotch/android-signing-ci 2025-12-09 14:51:16 +01:00
lucas lelievre
8b689d6df8 Android fixes & update (#1648) 2025-12-09 14:50:59 +01:00
Butterscotch!
490005ae69 Merge remote-tracking branch 'upstream/main' into bscotch/android-fixes 2025-12-09 07:53:46 -05:00
Butterscotch!
575778ab85 Don't fail for keystore 2025-12-09 07:25:54 -05:00
Butterscotch!
85ee162d58 Remove unused import 2025-12-09 07:18:26 -05:00
Butterscotch!
712fa6a1ad Avoid Android Gradle project for desktop tests 2025-12-09 02:55:12 -05:00
Butterscotch!
819481adcd Early fail for keystore issues 2025-12-09 02:36:21 -05:00
Butterscotch!
bc26227443 Build and sign release with Gradle 2025-12-09 02:36:21 -05:00
lucas lelievre
ac43ca947e New Pontoon translations (#1646) 2025-12-09 05:25:55 +01:00
SlimeVR-bot
4451d8aaf4 Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-09 04:25:34 +00:00
SlimeVR-bot
79a9e15c5a Pontoon/GUI: Update Thai (th), German (de)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
Co-authored-by: Cusmo84 <saopob@gmail.com> (th)
Co-authored-by: unlogisch <unlogisch@gmx.ch> (de)
Co-authored-by: Patty <pattycoder@gmx.de> (de)
2025-12-09 04:25:34 +00:00
SlimeVR-bot
5403cdb28e Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-09 04:25:34 +00:00
SlimeVR-bot
272f37374e Pontoon/GUI: Update Thai (th), German (de)
Co-authored-by: Kaiera huzu <patsakorn9090@gmail.com> (th)
Co-authored-by: SparklingSakura <natthakitw.2006@gmail.com> (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
Co-authored-by: Patty <pattycoder@gmx.de> (de)
Co-authored-by: unlogisch <unlogisch@gmx.ch> (de)
Co-authored-by: Zahnatom <zahnatomletsplay@gmail.com> (de)
2025-12-09 04:25:34 +00:00
SlimeVR-bot
4147578dc8 Pontoon/GUI: Update Thai (th), German (de)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
Co-authored-by: Patty <pattycoder@gmx.de> (de)
Co-authored-by: TheDevMinerTV <devminer@devminer.xyz> (de)
2025-12-09 04:25:34 +00:00
SlimeVR-bot
65bd03c272 Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-09 04:25:34 +00:00
SlimeVR-bot
4835e89c5f Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-09 04:25:34 +00:00
SlimeVR-bot
7ea4516545 Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-09 04:25:34 +00:00
SlimeVR-bot
2f208fe08a Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-09 04:25:34 +00:00
SlimeVR-bot
db584baed3 Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-09 04:25:34 +00:00
SlimeVR-bot
1d41627fb1 Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
Co-authored-by: Kaiera huzu <patsakorn9090@gmail.com> (th)
2025-12-09 04:25:34 +00:00
SlimeVR-bot
63b8d4c8cb Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
Co-authored-by: Kaiera huzu <patsakorn9090@gmail.com> (th)
2025-12-09 04:25:34 +00:00
SlimeVR-bot
8e60ecd070 Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-09 04:25:34 +00:00
SlimeVR-bot
6ee173791e Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
Co-authored-by: Kaiera huzu <patsakorn9090@gmail.com> (th)
2025-12-09 04:25:34 +00:00
SlimeVR-bot
b9d72c0a40 Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-09 04:25:34 +00:00
SlimeVR-bot
36b2e01d88 Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-09 04:25:34 +00:00
SlimeVR-bot
569315f6dc Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-09 04:25:34 +00:00
SlimeVR-bot
a4fab8afed Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-09 04:25:34 +00:00
SlimeVR-bot
d1e3c35693 Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-09 04:25:34 +00:00
SlimeVR-bot
d12f3c4854 Pontoon/GUI: Update Polish (pl)
Co-authored-by: Yexo <patrykcyranski@gmail.com> (pl)
Co-authored-by: ReDoX <redox01@o2.pl> (pl)
2025-12-09 04:25:34 +00:00
SlimeVR-bot
e32903f36f Pontoon/GUI: Update Polish (pl)
Co-authored-by: Yexo <patrykcyranski@gmail.com> (pl)
2025-12-09 04:25:34 +00:00
SlimeVR-bot
ab126c336c Pontoon/GUI: Update Polish (pl)
Co-authored-by: Yexo <patrykcyranski@gmail.com> (pl)
2025-12-09 04:25:34 +00:00
SlimeVR-bot
79a6d62506 Pontoon/GUI: Update Polish (pl)
Co-authored-by: Yexo <patrykcyranski@gmail.com> (pl)
2025-12-09 04:25:34 +00:00
SlimeVR-bot
08f691b5b6 Pontoon/GUI: Update Polish (pl)
Co-authored-by: Yexo <patrykcyranski@gmail.com> (pl)
2025-12-09 04:25:34 +00:00
SlimeVR-bot
b12632fd1a Pontoon/GUI: Update Polish (pl)
Co-authored-by: Yexo <patrykcyranski@gmail.com> (pl)
Co-authored-by: ReDoX <redox01@o2.pl> (pl)
2025-12-09 04:25:34 +00:00
SlimeVR-bot
54f3ab4634 Pontoon/GUI: Update Polish (pl)
Co-authored-by: Yexo <patrykcyranski@gmail.com> (pl)
2025-12-09 04:25:34 +00:00
SlimeVR-bot
415168d040 Pontoon/GUI: Update Traditional Chinese (zh-Hant)
Co-authored-by: Meow Wei <medicalwei@gmail.com> (zh-Hant)
2025-12-09 04:25:34 +00:00
SlimeVR-bot
6be313144e Pontoon/GUI: Update Traditional Chinese (zh-Hant)
Co-authored-by: Meow Wei <medicalwei@gmail.com> (zh-Hant)
2025-12-09 04:25:34 +00:00
SlimeVR-bot
98e571c94b Pontoon/GUI: Update Traditional Chinese (zh-Hant)
Co-authored-by: Meow Wei <medicalwei@gmail.com> (zh-Hant)
2025-12-09 04:25:34 +00:00
SlimeVR-bot
1561c464e9 Pontoon/GUI: Update Traditional Chinese (zh-Hant)
Co-authored-by: Meow Wei <medicalwei@gmail.com> (zh-Hant)
2025-12-09 04:25:34 +00:00
SlimeVR-bot
4992d599aa Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-09 04:25:34 +00:00
lucas lelievre
90b3dfe0db v18.0rc1 fixes (#1651) 2025-12-09 05:25:07 +01:00
lucas lelievre
ab87c5b1e8 Update gui/src/hooks/crypto.ts
Co-authored-by: Butterscotch! <bscotchvanilla@gmail.com>
2025-12-09 04:46:35 +01:00
lucas lelievre
3ee6c065cf Disable root overscroll (#1652) 2025-12-09 04:41:25 +01:00
lucas lelievre
d1249d2b44 Apply suggestions from code review
Co-authored-by: Sapphire <imsapphire0@gmail.com>
2025-12-09 04:37:12 +01:00
Butterscotch!
94a70d3b2e Update Ktor to latest 2.3.X version 2025-12-08 21:50:53 -05:00
Butterscotch!
b67162eb43 Revert Ktor version update 2025-12-08 21:47:00 -05:00
Lasse Lauwerys
4390d35e00 Disable root overscroll 2025-12-09 02:37:13 +01:00
lucas lelievre
19126c0d4d Update gui/public/i18n/en/translation.ftl
Co-authored-by: Maya <jovannmc@femboyfurry.net>
2025-12-08 09:51:43 +01:00
lucas lelievre
0cf0f6cb49 Update gui/public/i18n/en/translation.ftl
Co-authored-by: Maya <jovannmc@femboyfurry.net>
2025-12-08 09:51:36 +01:00
lucas lelievre
d3d3838761 Update gui/src/components/onboarding/pages/WifiCreds.tsx
Co-authored-by: Maya <jovannmc@femboyfurry.net>
2025-12-08 09:47:15 +01:00
loucass003
4984026f6b Lint 2025-12-08 09:28:09 +01:00
loucass003
bb7e825c41 Remove confusion with dongles in the Connect page 2025-12-08 09:25:03 +01:00
loucass003
bc96ddd555 More fixes and metrics 2025-12-08 05:40:33 +01:00
loucass003
ec85284f78 Lint 2025-12-08 05:31:57 +01:00
loucass003
867287e740 More sentry metrics 2025-12-08 05:25:07 +01:00
loucass003
2e93187021 More sentry metrics 2025-12-08 05:12:05 +01:00
loucass003
2a19d67974 Make sentry report anonymous unique user ids so we can count release adoption 2025-12-08 04:28:00 +01:00
loucass003
176f7e4271 Round one of fixes 2025-12-08 03:39:49 +01:00
Butterscotch!
3a6c60d912 Only get GUI port once 2025-12-07 05:23:03 -05:00
Butterscotch!
066c28adb4 Use randomized Android GUI port 2025-12-07 05:20:13 -05:00
Butterscotch!
364ed3209c Prevent Android GUI race condition 2025-12-07 05:12:56 -05:00
Butterscotch!
dab6ec28af Simpler bytesSkipped check 2025-12-07 04:53:09 -05:00
Butterscotch!
b221250ba7 More Gradle cleanup 2025-12-07 04:48:09 -05:00
Butterscotch!
215635634f Update Android versions & Proguard settings 2025-12-07 04:43:15 -05:00
Butterscotch!
184133a613 Fix OTA upload socket not being closed 2025-12-07 04:22:01 -05:00
Butterscotch!
32248c75cf Fix Android SDK level errors 2025-12-07 04:21:37 -05:00
lucas lelievre
0671c0e89f New Pontoon translations (#1631) 2025-12-06 00:38:06 +01:00
SlimeVR-bot
2acadbe11b Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
5688c71d2e Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
d3c89618f1 Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
478ffdb611 Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
0b7e5781d5 Pontoon/GUI: Update 28 localizations 2025-12-05 23:37:48 +00:00
SlimeVR-bot
446a53277e Pontoon/GUI: Update 28 localizations 2025-12-05 23:37:48 +00:00
SlimeVR-bot
b2acc1b28d Pontoon/GUI: Update French (fr)
Co-authored-by: lucas <llelievr2@gmail.com> (fr)
Co-authored-by: Naoto <naotomuramasa@gmail.com> (fr)
Co-authored-by: Joshh <josh229411@icloud.com> (fr)
Co-authored-by: Arya <arya.allermoz@gmail.com> (fr)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
27d2fff725 Pontoon/GUI: Update 28 localizations 2025-12-05 23:37:48 +00:00
SlimeVR-bot
0c1f9b3e25 Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
cfa4039e9e Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
7b62b21e6f Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
cc3af4ae7e Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
09c44fc935 Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
92f441d51f Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
d5912513ff Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
6417bf3167 Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
5bf0694734 Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
7b95837663 Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
40067df800 Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
c5546d71d2 Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
307c250240 Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
ca1afaa0aa Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
809a0b81b2 Pontoon/GUI: Update Thai (th)
Co-authored-by: SparklingSakura <natthakitw.2006@gmail.com> (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
01d5456f9f Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
b81605dcf9 Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
bb3be2fd17 Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
b34da7dd3e Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
0cc97ba9f8 Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
a754a24d3f Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
df209436c8 Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
6abd06d435 Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
43f6a9fac9 Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
Co-authored-by: Kaiera huzu <patsakorn9090@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
e07a152d46 Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
e73dcad9a8 Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
87de27e4ec Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
e851abfd4f Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
561dfd2d2e Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
4e716ac53b Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
12cd7908ef Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
Co-authored-by: SparklingSakura <natthakitw.2006@gmail.com> (th)
Co-authored-by: Kaiera huzu <patsakorn9090@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
1e1cb435a2 Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
Co-authored-by: SparklingSakura <natthakitw.2006@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
0bd6d4fdbd Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
9f2bd7f2e7 Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
a6c5de6ef3 Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
86046993b8 Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
f7106833ed Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
ef35b93569 Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
2f5649a90a Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
Co-authored-by: Cusmo84 <saopob@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
efd07a9afb Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
2fad9b2563 Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
8d2b74b254 Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
Co-authored-by: Kaiera huzu <patsakorn9090@gmail.com> (th)
Co-authored-by: Cusmo84 <saopob@gmail.com> (th)
Co-authored-by: SparklingSakura <natthakitw.2006@gmail.com> (th)
Co-authored-by: yuyavx <yuyavxvtuber@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
3f1a614ac6 Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
Co-authored-by: SparklingSakura <natthakitw.2006@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
326284853c Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
3ae337b3d8 Pontoon/GUI: Update Thai (th)
Co-authored-by: SparklingSakura <natthakitw.2006@gmail.com> (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
fbef209d2d Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
544b060691 Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
63bceb49ca Pontoon/GUI: Update Latinamerican Spanish (es-419)
Co-authored-by: MaxEvil <xicovalle@gmail.com> (es-419)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
be9265cb97 Pontoon/GUI: Update Traditional Chinese (zh-Hant)
Co-authored-by: Meow Wei <medicalwei@gmail.com> (zh-Hant)
2025-12-05 23:37:48 +00:00
SlimeVR-bot
c7286f8e48 Pontoon/GUI: Update German (de)
Co-authored-by: Patty <pattycoder@gmx.de> (de)
2025-12-05 23:37:47 +00:00
SlimeVR-bot
a8e76e9198 Pontoon/GUI: Update German (de)
Co-authored-by: Patty <pattycoder@gmx.de> (de)
2025-12-05 23:37:47 +00:00
SlimeVR-bot
be09af8ca6 Pontoon/GUI: Update Traditional Chinese (zh-Hant)
Co-authored-by: Meow Wei <medicalwei@gmail.com> (zh-Hant)
2025-12-05 23:37:47 +00:00
SlimeVR-bot
d47533db08 Pontoon/GUI: Update Traditional Chinese (zh-Hant)
Co-authored-by: Meow Wei <medicalwei@gmail.com> (zh-Hant)
2025-12-05 23:37:47 +00:00
SlimeVR-bot
c34944912b Pontoon/GUI: Update Traditional Chinese (zh-Hant)
Co-authored-by: Meow Wei <medicalwei@gmail.com> (zh-Hant)
2025-12-05 23:37:47 +00:00
SlimeVR-bot
67b764026f Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:47 +00:00
SlimeVR-bot
9b74665e94 Pontoon/GUI: Update Thai (th)
Co-authored-by: Kaiera huzu <patsakorn9090@gmail.com> (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
Co-authored-by: SparklingSakura <natthakitw.2006@gmail.com> (th)
2025-12-05 23:37:47 +00:00
SlimeVR-bot
855d708464 Pontoon/GUI: Update Thai (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:47 +00:00
SlimeVR-bot
760ecc6ae6 Pontoon/GUI: Update Thai (th)
Co-authored-by: SparklingSakura <natthakitw.2006@gmail.com> (th)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
2025-12-05 23:37:47 +00:00
SlimeVR-bot
2f4bcb17b6 Pontoon/GUI: Update 28 localizations 2025-12-05 23:37:47 +00:00
SlimeVR-bot
78e7517363 Pontoon/GUI: Update Latinamerican Spanish (es-419)
Co-authored-by: MaxEvil <xicovalle@gmail.com> (es-419)
2025-12-05 23:37:47 +00:00
SlimeVR-bot
27e4af57f1 Pontoon/GUI: Update Latinamerican Spanish (es-419)
Co-authored-by: MaxEvil <xicovalle@gmail.com> (es-419)
2025-12-05 23:37:47 +00:00
SlimeVR-bot
1d029a6c3a Pontoon/GUI: Update Traditional Chinese (zh-Hant)
Co-authored-by: Meow Wei <medicalwei@gmail.com> (zh-Hant)
Co-authored-by: 白貓 <yen.max@gmail.com> (zh-Hant)
2025-12-05 23:37:47 +00:00
SlimeVR-bot
fe547cf56b Pontoon/GUI: Update Traditional Chinese (zh-Hant)
Co-authored-by: Meow Wei <medicalwei@gmail.com> (zh-Hant)
2025-12-05 23:37:47 +00:00
SlimeVR-bot
9bddff99d8 Pontoon/GUI: Update Traditional Chinese (zh-Hant)
Co-authored-by: Meow Wei <medicalwei@gmail.com> (zh-Hant)
2025-12-05 23:37:47 +00:00
SlimeVR-bot
11fc8a3fa7 Pontoon/GUI: Update Spain Spanish (es-ES)
Co-authored-by: Baddie <baddie@femboy.gay> (es-ES)
2025-12-05 23:37:47 +00:00
SlimeVR-bot
075ca4715e Pontoon/GUI: Update French (fr)
Co-authored-by: Erimel <loukalemire@gmail.com> (fr)
2025-12-05 23:37:47 +00:00
SlimeVR-bot
991299b4fc Pontoon/GUI: Update French (fr)
Co-authored-by: Erimel <loukalemire@gmail.com> (fr)
2025-12-05 23:37:47 +00:00
lucas lelievre
84d85c29b7 Before RC fixes (#1644)
Co-authored-by: Sapphire <imsapphire0@gmail.com>
2025-12-06 00:37:23 +01:00
lucas lelievre
5f1167f0de Remove the need for restart before OTA on newer firmware (#1627) 2025-12-05 22:12:03 +01:00
loucass003
d74b26fbda Lint 2025-12-05 20:08:02 +01:00
loucass003
838a60172d Make version check for 18.0 switch 2025-12-05 20:04:02 +01:00
lucas lelievre
d6c05d2f9c Improved tracker assignment ui (#1643) 2025-12-05 18:53:53 +01:00
lucas lelievre
25e74767be Remove useless onboarding pages (#1642) 2025-12-05 18:18:15 +01:00
lucas lelievre
742a3fcafe Small UI fixes (#1641) 2025-12-05 18:17:51 +01:00
lucas lelievre
45f0e14582 Make reset sound loop better when more than 3s (#1640) 2025-12-05 18:17:19 +01:00
loucass003
937c810f7a Fix solarxr 2025-12-05 10:15:08 +01:00
lucas lelievre
80a68e9a37 Scaled proportions rework (#1636)
Co-authored-by: Butterscotch! <bscotchvanilla@gmail.com>
Co-authored-by: Aed <145398159+Aed-1@users.noreply.github.com>
Co-authored-by: Sapphire <imsapphire0@gmail.com>
2025-12-05 10:02:59 +01:00
loucass003
ce6b3439c9 Revert "New tracker assignment + Fix concurency error with tap"
This reverts commit 12dd1cb314.
2025-12-05 06:42:49 +01:00
loucass003
12dd1cb314 New tracker assignment + Fix concurency error with tap 2025-12-05 06:41:01 +01:00
Sapphire
d420bf0007 Update en translation (#1639) 2025-12-03 03:26:23 +01:00
Butterscotch!
8e885a8890 Simplify reset code (again) (#1595)
Co-authored-by: loucass003 <loucass003@gmail.com>
2025-12-02 18:26:03 +01:00
lucas lelievre
a5160fbb8a Server Guards: Mounting timeout and yaw reset guard (#1628)
Co-authored-by: sctanf <36978460+sctanf@users.noreply.github.com>
Co-authored-by: Butterscotch! <bscotchvanilla@gmail.com>
Co-authored-by: Aed <145398159+Aed-1@users.noreply.github.com>
2025-12-02 15:13:54 +01:00
lucas lelievre
2e1ec07b23 Session flightlist (#1407)
Co-authored-by: sctanf <36978460+sctanf@users.noreply.github.com>
Co-authored-by: Butterscotch! <bscotchvanilla@gmail.com>
Co-authored-by: Aed <145398159+Aed-1@users.noreply.github.com>
2025-12-02 14:49:45 +01:00
peelz
0dc78a7e72 Skip starting server from GUI when server is already running (#1612) 2025-12-02 14:03:08 +01:00
dependabot[bot]
ebd7712862 Bump actions/checkout from 5 to 6 (#1633)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-02 13:48:39 +01:00
Erimel
25beefd973 Check driver version (#1618) 2025-12-02 13:47:55 +01:00
Aed
2ee65a9bd2 Stay Aligned UI Improvements (#1632) 2025-11-24 11:05:17 +01:00
Sapphire
d986a5e116 Fix race condition in DataFeedHandler::sendDataFeedUpdate (#1621)
Co-authored-by: lucas lelievre <loucass003@gmail.com>
Co-authored-by: Butterscotch! <bscotchvanilla@gmail.com>
2025-11-22 12:13:47 -05:00
Eiren Rain
8018ce7283 Android fixes (#1629) 2025-11-20 13:34:39 +03:00
Butterscotch!
a5cdbffa4c Fix packet hex formatting on Android 2025-11-20 02:30:16 -05:00
Butterscotch!
3b690eac53 Fix activity context 2025-11-20 02:09:33 -05:00
Butterscotch!
1cdca18538 Redo v0.17.0 release 2025-11-20 02:09:33 -05:00
lucas lelievre
6d77045aa1 Better flakes / deprecate shell.nix (#1626) 2025-11-20 07:00:42 +01:00
Eiren Rain
b02234f9fc New Pontoon translations (#1625) 2025-11-18 23:28:50 +03:00
SlimeVR-bot
eb10f07711 Pontoon/GUI: Update French (fr), German (de)
Co-authored-by: Erimel <loukalemire@gmail.com> (fr)
Co-authored-by: C0D3 M4513R <mail@c0d3m4513r.com> (de)
Co-authored-by: unlogisch <unlogisch@gmx.ch> (de)
Co-authored-by: bongocatlifelol <bongocatlifelol@gmail.com> (de)
Co-authored-by: TheDevMinerTV <devminer@devminer.xyz> (de)
Co-authored-by: stephaniegoldschmidt9 <stephaniegoldschmidt9@gmail.com> (de)
2025-11-17 19:25:36 +00:00
SlimeVR-bot
f15a503936 Pontoon/GUI: Update 28 localizations
Co-authored-by: Bader <baq100@gmail.com> (ar)
Co-authored-by: Vaso <dudysoso1@gmail.com> (ar)
Co-authored-by: FennT <0094falcon@gmail.com> (ar)
Co-authored-by: nekomona <nekomona@163.com> (zh-Hans)
Co-authored-by: pwnint <ahndkp@gmail.com> (zh-Hans)
Co-authored-by: ZZNYJIDI <zznyjidi@hotmail.com> (zh-Hans)
Co-authored-by: Yingxue <a1175815821@163.com> (zh-Hans)
Co-authored-by: Meow Wei <medicalwei@gmail.com> (zh-Hant)
Co-authored-by: JaydenHa <jayden@jaydenha.uk> (zh-Hant)
Co-authored-by: Cheezik <cheatistv@email.cz> (cs)
Co-authored-by: Jeeko <d.safarik06@gmail.com> (cs)
Co-authored-by: viwas45hu978ot <viwashuot@gmail.com> (da)
Co-authored-by: Nola <stefsecretdesecret@gmail.com> (nl)
Co-authored-by: Vyolex <25586367+Vyolex@users.noreply.github.com> (nl)
Co-authored-by: SaabAerospace <SaabAerospace@hotmail.com> (nl)
Co-authored-by: siofrain <maradaichides@gmail.com> (fi)
Co-authored-by: Iris <vakotoneva@gmail.com> (fi)
Co-authored-by: SlimePuppy <minouviolet2007+github@gmail.com> (fr)
Co-authored-by: Erimel <loukalemire@gmail.com> (fr)
Co-authored-by: the1pigeon <the1pigeon@gmail.com> (fr)
Co-authored-by: martin <martin@dolez.fr> (fr)
Co-authored-by: rascrifice <noppyfloppy69@gmail.com> (fr)
Co-authored-by: C0D3 M4513R <mail@c0d3m4513r.com> (de)
Co-authored-by: dennis.staudacher <dennis.staudacher@icloud.com> (de)
Co-authored-by: TheDevMinerTV <devminer@devminer.xyz> (de)
Co-authored-by: Jatoxo <jatoxo123@gmail.com> (de)
Co-authored-by: unlogisch <unlogisch@gmx.ch> (de)
Co-authored-by: Kyra <sebastianzockt@gmail.com> (de)
Co-authored-by: stephaniegoldschmidt9 <stephaniegoldschmidt9@gmail.com> (de)
Co-authored-by: odydoubouridis <odydoubouridis@gmail.com> (el)
Co-authored-by: origalili123 <origalili123@gmail.com> (he)
Co-authored-by: Daniel <danielkariv98@gmail.com> (he)
Co-authored-by: Etch9 <mario.mazzara30@gmail.com> (it)
Co-authored-by: namakeingo <namakeingo@gmail.com> (en-x-owo, it)
Co-authored-by: infopcgood <sshs_student_412@outlook.kr> (ko)
Co-authored-by: Kamilake <exjang0@gmail.com> (ko)
Co-authored-by: abb128 <abb128@sapples.net> (lt)
Co-authored-by: eivind.eriksen <eivind.eriksen08@gmail.com> (nb-NO)
Co-authored-by: darkowsness <darkowsness@gmail.com> (nb-NO)
Co-authored-by: ReDoX <redox01@o2.pl> (pl)
Co-authored-by: Yexo <patrykcyranski@gmail.com> (pl)
Co-authored-by: Tailsy <tailsy13@gmail.com> (pl)
Co-authored-by: michael091 <michael_m1@o2.pl> (pl)
Co-authored-by: mygz <miguelmiguelmnogueira@gmail.com> (pt-BR)
Co-authored-by: Sander Fernandes <sander@novatrackers.com.br> (pt-BR)
Co-authored-by: Gaabbu <gabrielsonada@outlook.com.br> (pt-BR)
Co-authored-by: lindetinn <Kuzmenko3g@gmail.com> (ru)
Co-authored-by: Flar <kani.dragonflar@gmail.com> (ru)
Co-authored-by: SummerArtz <summerpzmail@gmail.com> (ru)
Co-authored-by: Sergey <serezhenka.soldatov.2020@mail.ru> (ru)
Co-authored-by: Graphite0 <olegek.permjakov@gmail.com> (ru)
Co-authored-by: Clay <code.clayt@gmail.com> (ru)
Co-authored-by: viberbread <panfilov.iva2015@yandex.ru> (ru)
Co-authored-by: Alejandro <moctezumaalejandro25@gmail.com> (es-419)
Co-authored-by: MaxEvil <xicovalle@gmail.com> (es-419)
Co-authored-by: Uriel <imurx@proton.me> (es-419, es-ES, sv-SE)
Co-authored-by: Andokai <da.nova@duocuc.cl> (es-419)
Co-authored-by: Renka <lunastarletvr@gmail.com> (es-419, es-ES)
Co-authored-by: Baddie <baddie@femboy.gay> (es-ES)
Co-authored-by: adriangoldenhero <adriangoldenhero@gmail.com> (es-ES)
Co-authored-by: LavAriz <thecakegirl092@gmail.com> (es-ES)
Co-authored-by: cabbemannen <cabbemannen10@gmail.com> (sv-SE)
Co-authored-by: catdrout <c4tdrout@protonmail.com> (sv-SE)
Co-authored-by: YumeTomo <Sodnoobe@gmail.com> (th)
Co-authored-by: SparklingSakura <natthakitw.2006@gmail.com> (th)
Co-authored-by: Kaiera huzu <patsakorn9090@gmail.com> (th)
Co-authored-by: rwrdetenrl <NightAniMer@hotmail.com> (tr)
Co-authored-by: HappyTownCats <HappyTownCats@gmail.com> (uk)
Co-authored-by: Shans <KaluhinShans@gmail.com> (uk)
Co-authored-by: MenacingExiler <menacingexiler@gmail.com> (vi)
Co-authored-by: Dau <unnamedau@nowhatethis.com> (en-x-owo)
Co-authored-by: beq <beqbdean@gmail.com> (en-x-owo)
Co-authored-by: Mini <alexanderawatson64@gmail.com> (en-x-owo)
Co-authored-by: Butterscotch! <bscotchvanilla@gmail.com> (en-x-owo)
2025-11-17 19:25:36 +00:00
lucas lelievre
c580aecb11 Refactor pull request creation command in workflow 2025-11-17 20:25:13 +01:00
lucas lelievre
81879afa32 Add a cute note to the README 2025-11-17 19:50:44 +01:00
lucas lelievre
1cb4edb651 Fix pontoon ci (#1624) 2025-11-17 19:14:04 +01:00
Sapphire
26e04db950 Fix 'Filter Slimes and HMD' dev setting only showing OpenVR HMD (#1614) 2025-11-10 11:25:03 +01:00
Eiren Rain
fade902fc0 Better fw update cache handling (#1617) 2025-11-08 02:41:48 +03:00
loucass003
e072fc75c6 Do not show release if no deploy file 2025-11-06 02:06:27 +01:00
loucass003
94da52c0e4 Better fw update cache handling 2025-11-06 02:05:08 +01:00
lucas lelievre
56c3290e1c Add digest to fw update files (#1616)
Co-authored-by: gorbit99 <gorbitgames@gmail.com>
2025-11-06 01:07:26 +01:00
gorbit99
e0f1ad8d4f Various rc fixes (#1615) 2025-11-05 19:12:28 +01:00
kruemmelbande
bd4ec047c3 fix linux safe mode icon (#1613) 2025-11-03 22:48:56 +01:00
lucas lelievre
e3b3cb77d1 Fix linux ci (#1611) 2025-11-03 20:22:54 +01:00
lucas lelievre
5a8804630b Fix lint (#1610) 2025-11-03 19:37:19 +01:00
Uriel
0df8b938d8 Update spotless and ktlint (#1528)
Co-authored-by: Butterscotch! <bscotchvanilla@gmail.com>
Co-authored-by: loucass003 <loucass003@gmail.com>
2025-11-03 18:52:58 +01:00
lucas lelievre
7180f4eaa7 Make socket recover if slimevr crashed (#1604) 2025-11-03 18:01:25 +01:00
gorbit99
2a55617e3a Enable text input on the serial console page (#1562)
Co-authored-by: loucass003 <loucass003@gmail.com>
2025-11-03 16:20:59 +01:00
gorbit99
1777d584fe Rework Dropdown component (#1606) 2025-11-03 14:55:03 +01:00
unlogisch04
edd9ea02e1 Update jSerialComm to 2.11.3 (#1608) 2025-11-01 21:16:47 +01:00
sctanf
119d9158c0 Calibration tutorial fix settling (#1521)
Co-authored-by: Eiren Rain <Eirenliel@users.noreply.github.com>
2025-11-01 00:42:42 +01:00
gorbit99
0e073a01fd Update eslint and add stylistic/jsx-self-closing-comp (#1607) 2025-11-01 00:41:53 +01:00
lucas lelievre
4e9fdb206c Firmware tool V2 (#1585) 2025-10-31 18:16:13 +01:00
Collin
0a08d57426 Positional tracker support (#920)
Co-authored-by: Eiren Rain <Eirenliel@users.noreply.github.com>
Co-authored-by: lucas lelievre <loucass003@gmail.com>
2025-10-31 17:54:07 +01:00
Butterscotch!
c316c50f30 Fix tracker drift logging (#1588) 2025-10-31 17:43:32 +01:00
Uriel
81716be512 Migrate to tauri logger (#1537)
Co-authored-by: lucas lelievre <loucass003@gmail.com>
2025-10-31 17:42:13 +01:00
Polymoria
1d273ac651 Smaller paddings in alerts (#1450) 2025-10-31 17:40:23 +01:00
sctanf
7dc815cd86 ManualProportions do not wrap height text (#1529) 2025-10-31 17:35:14 +01:00
Butterscotch!
d6f771e6b2 BVH rewrite (#1542) 2025-10-31 17:20:08 +01:00
Sapphire
3aeb0569b1 Show startup error when tracker server port is in use (#1596) 2025-10-31 17:17:56 +01:00
Summer
bf2c5d59ab Add Positional UDP packet (#1546) 2025-10-31 17:16:30 +01:00
Butterscotch!
94b2309945 Delete target web-gui before copying (#1573)
Co-authored-by: lucas lelievre <loucass003@gmail.com>
2025-10-31 17:12:12 +01:00
kruemmelbande
e81c9c5b2d add safe mode .desktop file (#1600) 2025-10-29 19:40:21 +01:00
Eiren Rain
900bdc03ca Bump actions/setup-node from 5 to 6 (#1591) 2025-10-27 18:45:09 +03:00
Eiren Rain
5a73ad77f2 Bump awalsh128/cache-apt-pkgs-action from 1.5.3 to 1.6.0 (#1592) 2025-10-27 18:45:00 +03:00
dependabot[bot]
1c6a29940a Bump actions/setup-node from 5 to 6
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 5 to 6.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/v5...v6)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-27 15:31:25 +00:00
dependabot[bot]
adb0ae969d Bump awalsh128/cache-apt-pkgs-action from 1.5.3 to 1.6.0
Bumps [awalsh128/cache-apt-pkgs-action](https://github.com/awalsh128/cache-apt-pkgs-action) from 1.5.3 to 1.6.0.
- [Release notes](https://github.com/awalsh128/cache-apt-pkgs-action/releases)
- [Commits](https://github.com/awalsh128/cache-apt-pkgs-action/compare/v1.5.3...v1.6.0)

---
updated-dependencies:
- dependency-name: awalsh128/cache-apt-pkgs-action
  dependency-version: 1.6.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-27 15:30:41 +00:00
Eiren Rain
ae5783ce9f Bump actions/download-artifact from 5 to 6 (#1599) 2025-10-27 18:25:32 +03:00
Eiren Rain
4408b36ffb Bump actions/upload-artifact from 4 to 5 (#1598) 2025-10-27 18:25:05 +03:00
dependabot[bot]
8708778596 Bump actions/download-artifact from 5 to 6
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 5 to 6.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](https://github.com/actions/download-artifact/compare/v5...v6)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-27 15:24:31 +00:00
dependabot[bot]
b045c88158 Bump actions/upload-artifact from 4 to 5
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4 to 5.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-27 15:00:37 +00:00
Eiren Rain
0235660642 Fix PFR extension being used for PFS file (#1593) 2025-10-22 20:49:46 +03:00
Butterscotch!
3d90d22b56 Fix PFR extension being used for PFS file 2025-10-21 23:05:21 -04:00
dependabot[bot]
7ac3993543 Bump gradle/actions from 4 to 5 (#1582)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: lucas lelievre <loucass003@gmail.com>
2025-10-18 03:43:06 +02:00
Erimel
79294e95c7 Fix network adapter status vars (#1589) 2025-10-18 03:35:18 +02:00
gorbit99
2e9256a630 Remove the GET INFO button (#1587) 2025-10-17 17:03:43 +02:00
gorbit99
0e0992e6d4 Don't allow the same value for port in and port out (#1563)
Co-authored-by: lucas lelievre <loucass003@gmail.com>
2025-10-16 06:08:34 +02:00
gorbit99
5be7896d8b Add pausing to the serial console (#1569)
Co-authored-by: lucas lelievre <loucass003@gmail.com>
2025-10-16 05:45:46 +02:00
lucas lelievre
25c659ba03 Revert "Progress"
This reverts commit e38a4b40b5.
2025-10-10 19:02:50 +02:00
lucas lelievre
e38a4b40b5 Progress 2025-10-10 19:02:28 +02:00
Eiren Rain
de16acbcf4 New Pontoon translations (#1512) 2025-09-30 00:24:22 +03:00
Erimel
486cb295ac Pontoon: Update French (fr) localization of GUI
Co-Authored-By: Erimel <loukalemire@gmail.com>
Co-Authored-By: SlimePuppy <minouviolet2007+github@gmail.com>
2025-09-23 21:00:09 +00:00
nekomona
dd3fe24294 Pontoon: Update Simplified Chinese (zh-Hans) localization of GUI
Co-authored-by: nekomona <nekomona@163.com>
2025-09-23 21:00:09 +00:00
Alejandro
59bdedecbb Pontoon: Update Latinamerican Spanish (es-419) localization of GUI
Co-authored-by: Alejandro <moctezumaalejandro25@gmail.com>
2025-09-23 21:00:09 +00:00
YumeTomo
fc3d049019 Pontoon: Update Thai (th) localization of GUI
Co-Authored-By: YumeTomo <Sodnoobe@gmail.com>
Co-Authored-By: Cusmo84 <saopob@gmail.com>
Co-Authored-By: Kaiera huzu <patsakorn9090@gmail.com>
2025-09-23 21:00:09 +00:00
ReDoX
de150e7349 Pontoon: Update Polish (pl) localization of GUI
Co-authored-by: ReDoX <redox01@o2.pl>
2025-09-23 21:00:09 +00:00
Meow Wei
06b3f61d37 Pontoon: Update Traditional Chinese (zh-Hant) localization of GUI
Co-authored-by: Meow Wei <medicalwei@gmail.com>
2025-09-23 21:00:09 +00:00
Bader
82b96d5ebe Pontoon: Update Arabic (ar) localization of GUI
Co-Authored-By: Bader <baq100@gmail.com>
Co-Authored-By: FennT <0094falcon@gmail.com>
2025-09-23 21:00:09 +00:00
Aed
f2b4d468c2 Added Done button to end of mounting calibration (#1557) 2025-09-23 22:59:22 +02:00
Eiren Rain
1c0f5c381b Update CODEOWNERS (#1558) 2025-09-23 23:54:01 +03:00
lucas lelievre
fb25421ab0 OOPS 2025-09-23 20:23:51 +00:00
lucas lelievre
4890b4a71c Update CODEOWNERS 2025-09-23 22:17:57 +02:00
lucas lelievre
e38732a81c Remove secondary colors usage + improve spacing (#1554) 2025-09-22 21:27:07 +02:00
Eiren Rain
2a78354b17 Disable update prompt on Android (#1547) 2025-09-19 19:55:27 +03:00
Eiren Rain
3fb4347277 Fix Stagered fw update detection (#1544) 2025-09-19 19:55:17 +03:00
Eiren Rain
081e88ead4 Update gui/src/hooks/firmware-update.ts
Co-authored-by: Butterscotch! <bscotchvanilla@gmail.com>
2025-09-18 15:34:56 +03:00
Uriel
73f41f8fc6 Disable update prompt on Android 2025-09-17 19:32:30 -03:00
loucass003
f233f59079 Fix Stagered fw update detection 2025-09-16 23:24:53 +02:00
Eiren Rain
9644b00690 fix: use transaction id in RPC reponses (#1527) 2025-09-16 18:54:12 +03:00
Eiren Rain
543e319c25 HID support on Android (#1532) 2025-09-16 14:57:24 +03:00
Eiren Rain
b7ef70f5c6 Bump actions/setup-java from 4 to 5 (#1522) 2025-09-16 14:25:42 +03:00
Eiren Rain
af171f8812 Fix Android serial support (#1533) 2025-09-16 14:25:11 +03:00
dependabot[bot]
8ec3cade06 Bump actions/setup-java from 4 to 5
Bumps [actions/setup-java](https://github.com/actions/setup-java) from 4 to 5.
- [Release notes](https://github.com/actions/setup-java/releases)
- [Commits](https://github.com/actions/setup-java/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/setup-java
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-16 11:23:12 +00:00
Eiren Rain
bec8be46ca Add folder icon option for the file input (#1536) 2025-09-16 14:22:47 +03:00
Eiren Rain
ac7f809132 Bump actions/setup-node from 4 to 5 (#1540) 2025-09-16 14:22:10 +03:00
Eiren Rain
fcb241fab8 Bump actions/labeler from 5 to 6 (#1541) 2025-09-16 14:21:55 +03:00
Eiren Rain
fbdcf2fa2d Race condition patch for constraints (#1535) 2025-09-16 14:21:13 +03:00
Butterscotch!
73c821e07b Merge remote-tracking branch 'upstream/main' into bscotch/android-serial-fix 2025-09-11 16:07:57 -04:00
Butterscotch!
422ddd7ee8 Write serial directly on Android 2025-09-11 16:07:49 -04:00
Butterscotch!
943ad974ec Limit Android serial buffer to 1024 chars 2025-09-11 16:03:57 -04:00
dependabot[bot]
12a5d59e89 Bump actions/labeler from 5 to 6
Bumps [actions/labeler](https://github.com/actions/labeler) from 5 to 6.
- [Release notes](https://github.com/actions/labeler/releases)
- [Commits](https://github.com/actions/labeler/compare/v5...v6)

---
updated-dependencies:
- dependency-name: actions/labeler
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-08 14:22:53 +00:00
dependabot[bot]
85286651dd Bump actions/setup-node from 4 to 5
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 4 to 5.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-08 14:22:49 +00:00
Uriel
e9b3efe3d5 Add folder icon option for the file input 2025-09-05 14:13:54 -04:00
Uriel
0f06ac0253 update linux metadata (#1524) 2025-09-04 13:44:17 -03:00
Butterscotch!
75fa1aa1e2 Messy race condition patch for constraints 2025-09-04 06:50:34 -04:00
Butterscotch!
7d642a21f5 Use a read buffer for Android serial
The serial reader on Android does not have a big enough buffer for our serial output, causing issues when parsing it. We can buffer until we reach a newline character to make parsing work.
2025-09-04 06:35:30 -04:00
Butterscotch!
4e1421180c Ensure serial port closure 2025-09-04 04:33:39 -04:00
Butterscotch!
f0a72645d7 Clear request more & update usbReceiver comment 2025-09-04 04:27:20 -04:00
Butterscotch!
86b8e0a904 Fix serial staying open after disconnect 2025-09-04 04:18:52 -04:00
Butterscotch!
789e6a6962 Make ACTION_USB_PERMISSION const 2025-09-04 02:37:52 -04:00
Butterscotch!
f03b300d72 Use val for usbReceiver 2025-09-04 02:26:36 -04:00
Butterscotch!
6b0822c0f6 Rename HID "Service" to "Manager" 2025-09-04 02:26:08 -04:00
Butterscotch!
d9774cab87 Extra requestingPermission handling for new device 2025-09-04 02:24:21 -04:00
Butterscotch!
f07f9f3718 Add comments for USB attach/detach events 2025-09-04 02:22:23 -04:00
Butterscotch!
486be0973b Use USB events for serial & re-request permission 2025-09-04 02:17:28 -04:00
Butterscotch!
9246dd00d3 Additional comments 2025-09-04 01:41:01 -04:00
Butterscotch!
baf515791d Fix HID service comments 2025-09-04 01:37:15 -04:00
Butterscotch!
876450d764 Make Android USB host mode optional 2025-09-04 01:34:22 -04:00
Butterscotch!
44e90e255b Rename HID classes for clarity 2025-09-04 01:34:06 -04:00
Butterscotch!
41026ab851 Move deviceIdLookup to HIDCommon 2025-09-04 01:28:26 -04:00
Butterscotch!
d8509c431d Remove device reattach handling
Events should be good enough :3
2025-09-04 01:05:35 -04:00
Butterscotch!
66df65eb80 Use Android USB events for HID instead of polling 2025-09-04 00:31:43 -04:00
Butterscotch!
30641a5809 Reconnect HID 2025-09-04 00:31:43 -04:00
Butterscotch!
574523daec Persist UsbDeviceConnection 2025-09-04 00:31:43 -04:00
Butterscotch!
1913605d16 De-duplicate HID code 2025-09-04 00:31:42 -04:00
Butterscotch!
8aeecab51f Implement awful reading 2025-09-04 00:29:45 -04:00
Butterscotch!
9fd5d6a187 Initial Android USB HID support 2025-09-04 00:29:45 -04:00
Butterscotch!
4568ebb41a Foot snapping fix (#1519) 2025-09-03 21:11:24 -03:00
Ilia Ki
2777d8af89 Fix endian docs for smol HID (#1520) 2025-09-03 20:03:39 -03:00
peelz
0c09c22306 fix: use transaction id in RPC reponses 2025-09-01 13:46:48 -04:00
Eiren Rain
3f9b997ffa Bump awalsh128/cache-apt-pkgs-action from 1.5.1 to 1.5.3 (#1515) 2025-08-19 21:45:46 +02:00
dependabot[bot]
df379ee234 Bump awalsh128/cache-apt-pkgs-action from 1.5.1 to 1.5.3
Bumps [awalsh128/cache-apt-pkgs-action](https://github.com/awalsh128/cache-apt-pkgs-action) from 1.5.1 to 1.5.3.
- [Release notes](https://github.com/awalsh128/cache-apt-pkgs-action/releases)
- [Commits](https://github.com/awalsh128/cache-apt-pkgs-action/compare/v1.5.1...v1.5.3)

---
updated-dependencies:
- dependency-name: awalsh128/cache-apt-pkgs-action
  dependency-version: 1.5.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-19 12:17:12 +00:00
Eiren Rain
acd628637e Bump actions/download-artifact from 4 to 5 (#1516) 2025-08-19 14:14:48 +02:00
dependabot[bot]
155dbfbff1 Bump actions/download-artifact from 4 to 5
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 4 to 5.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](https://github.com/actions/download-artifact/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-19 12:13:29 +00:00
Eiren Rain
eda3d74c54 Bump actions/checkout from 4 to 5 (#1517) 2025-08-19 14:12:25 +02:00
dependabot[bot]
4b9f393cee Bump actions/checkout from 4 to 5
Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 5.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-18 22:56:14 +00:00
Eiren Rain
069da63d1f fix(gui): export proportions button doesn't work (#1513) 2025-08-01 11:51:31 +03:00
DevMiner
3fbe58b027 fix(gui): export proportions button doesn't work 2025-08-01 02:21:26 +02:00
Eiren Rain
aa6b5ab028 Bring back resetMountingFeet toggle for mounting resets (#1509) 2025-07-31 22:07:30 +03:00
Erimel
b2ee4e0b5e Change icons for new mounting reset buttons 2025-07-29 17:29:25 -04:00
Erimel
34ab0c6252 Bring back resetMountingFeet toggle for mounting resets 2025-07-29 17:14:05 -04:00
Butterscotch!
a8116a7f35 Fix mounting reset not working for feet (#1508) 2025-07-29 16:33:27 -04:00
Eiren Rain
8c65129bb4 New Pontoon translations (#1502) 2025-07-26 06:02:35 +03:00
Nola
acaf6a7679 Pontoon: Update Dutch (nl) localization of GUI
Co-authored-by: Nola <stefsecretdesecret@gmail.com>
Co-authored-by: Vyolex <25586367+Vyolex@users.noreply.github.com>
2025-07-26 05:01:55 +02:00
nekomona
8044a8a824 Pontoon: Update Simplified Chinese (zh-Hans) localization of GUI
Co-authored-by: nekomona <nekomona@163.com>
2025-07-26 05:01:55 +02:00
Yexo
1ec03b83b6 Pontoon: Update Polish (pl) localization of GUI
Co-Authored-By: Yexo <patrykcyranski@gmail.com>
2025-07-26 05:01:55 +02:00
lucas lelievre
44caf24126 FW update + Fix download url 2025-07-26 05:00:37 +02:00
Erimel
a125195695 Pontoon: Update French (fr) localization of GUI
Co-authored-by: Erimel <loukalemire@gmail.com>
2025-07-22 23:08:56 +00:00
Erimel
d27385dfa4 Allow partial/separate resets for feet and fingers (#1441)
Co-authored-by: Uriel <imurx@proton.me>
2025-07-22 19:08:34 -04:00
DevMiner
68bd670d7c fix(gui/wizard): manual calibration reset body proportions's reset button isn't primary (#1503) 2025-07-20 22:26:46 +02:00
Eiren Rain
42eda428ae New Pontoon translations (#1499) 2025-07-18 02:11:40 +03:00
YumeTomo
6504ebb9fb Pontoon: Update Thai (th) localization of GUI
Co-authored-by: YumeTomo <Sodnoobe@gmail.com>
2025-07-17 21:50:41 +00:00
MenacingExiler
6332615b08 Pontoon: Update Vietnamese (vi) localization of GUI
Co-authored-by: MenacingExiler <menacingexiler@gmail.com>
2025-07-17 21:50:41 +00:00
Uriel
e054c393ea Add loucas003 for GUI settings codeowner 2025-07-17 18:50:23 -03:00
dependabot[bot]
85c30b9425 Bump awalsh128/cache-apt-pkgs-action from 1.5.0 to 1.5.1 (#1495)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-17 18:10:00 -03:00
DevMiner
5f5d96a1c7 fix: Nix Rust toolchain hash (#1500) 2025-07-16 20:17:19 +02:00
lucas lelievre
2bce1af454 Fix deploy data fetching (#1494)
Co-authored-by: Uriel <imurx@proton.me>
2025-07-16 19:29:32 +02:00
Uriel
d45527f72e Fix RPM packages not working in newer Fedora versions (#1496) 2025-07-15 17:47:14 +02:00
DevMiner
bd3acf1889 ci: guess no node cache? (#1498) 2025-07-15 16:09:04 +02:00
lucas lelievre
347fcf503f ci: add update manifest generation workflow (#1497)
Co-authored-by: DevMiner <devminer@devminer.xyz>
2025-07-15 15:45:12 +02:00
Eiren Rain
12c3379e9a New Pontoon translations (#1485) 2025-07-09 22:35:44 +03:00
Bader
77a871239d Pontoon: Update Arabic (ar) localization of GUI
Co-Authored-By: Bader <baq100@gmail.com>
Co-Authored-By: FennT <0094falcon@gmail.com>
2025-07-09 21:34:39 +02:00
YumeTomo
337d345ded Pontoon: Update Thai (th) localization of GUI
Co-Authored-By: YumeTomo <Sodnoobe@gmail.com>
Co-Authored-By: Kaiera huzu <patsakorn9090@gmail.com>
Co-Authored-By: jesdaaup <jesdaaup@gmail.com>
Co-Authored-By: SparklingSakura <natthakitw.2006@gmail.com>
Co-Authored-By: yuyavx <yuyavxvtuber@gmail.com>
Co-Authored-By: Cusmo84 <saopob@gmail.com>
2025-07-09 21:34:39 +02:00
Nola
34de9c3586 Pontoon: Update Dutch (nl) localization of GUI
Co-Authored-By: Vyolex <25586367+Vyolex@users.noreply.github.com>
Co-Authored-By: Nola <stefsecretdesecret@gmail.com>
2025-07-09 21:34:39 +02:00
lucas lelievre
cb28221c58 Staggered fw upate system (#1491) 2025-07-09 22:28:54 +03:00
Butterscotch!
64903038e0 Simplify deltaTime for ticks in Tracker (#1492) 2025-07-09 22:22:37 +03:00
Butterscotch!
4cbc6031f8 Enable pnpm and npm in Nix flake (#1493) 2025-07-09 18:23:09 +03:00
Butterscotch!
66f619bb4f Yaw reset smoothing fix (#1490) 2025-07-04 11:19:10 +02:00
Butterscotch!
09a0ed153b Clean-up PoseStreamer and PoseRecorder (#1369) 2025-07-04 11:02:14 +02:00
Butterscotch!
e8fa981225 Grammer and speeling feex (#1474)
Co-authored-by: ShineBrightMeow <142170650+ShineBrightMeow@users.noreply.github.com>
Co-authored-by: lucas lelievre <loucass003@gmail.com>
2025-07-04 10:39:25 +02:00
0forks
54f9907238 Use JNA for network profile detection (#1480)
Co-authored-by: lucas lelievre <loucass003@gmail.com>
2025-07-04 10:20:08 +02:00
Uriel
8525f85d59 Check monitor size before recovering old window state (#1470) 2025-07-04 10:00:27 +02:00
Uriel
7293ddaa90 Add save file prompt for BVH recordings (#1483) 2025-07-04 08:49:49 +02:00
Uriel
3ec6a61763 Add ARM builds in CI (#1482) 2025-07-03 01:28:05 +02:00
Uriel
7874bbca27 include udev rules in the linux installers (#1488) 2025-07-03 01:27:06 +02:00
Uriel
b978eaf3f1 Add support for Linux registry checking for VRChat (#1459) 2025-07-01 23:55:09 +02:00
Uriel
b2817cb3ba Fix GUI errors when in smaller sizes (#1472) 2025-07-01 22:36:21 +02:00
Uriel
ab265d1689 Update jSerialComm to latest version (#1487) 2025-07-01 22:28:37 +02:00
Uriel
527c4c7f91 Fix concurrency issue with status interacting with multiple threads (#1484) 2025-07-01 22:24:58 +02:00
Butterscotch!
7c506a3fe2 Add mounting reset protobuf binding (#1473) 2025-07-01 22:12:27 +02:00
Uriel
217dc875d5 Update to latest versions in metainfo (#1486) 2025-07-01 08:30:16 +03:00
Uriel
489052141d Revert "Temporary CI measures for building 0.16"
This reverts commit 62553f4227.
2025-06-30 15:59:25 -04:00
Uriel
62553f4227 Temporary CI measures for building 0.16 2025-06-30 15:18:03 -04:00
Uriel
89c18f8488 New Pontoon translations (#1437) 2025-06-30 20:58:25 +02:00
Shans
a8a2197f91 Pontoon: Update Ukrainian (uk) localization of GUI
Co-authored-by: Shans <KaluhinShans@gmail.com>
2025-06-30 13:53:19 -04:00
YumeTomo
535f502169 Pontoon: Update Thai (th) localization of GUI
Co-authored-by: Uriel <imurx@proton.me>
Co-authored-by: SparklingSakura <natthakitw.2006@gmail.com>
Co-authored-by: yuyavx <yuyavxvtuber@gmail.com>
Co-authored-by: YumeTomo <Sodnoobe@gmail.com>
Co-authored-by: jesdaaup <jesdaaup@gmail.com>
Co-authored-by: Cusmo84 <saopob@gmail.com>
2025-06-30 13:53:07 -04:00
Uriel
bcc4dd4018 add 2 languages to the dropdown 2025-06-30 13:53:06 -04:00
mygz
eebdd61e47 Pontoon: Update Brazilian Portuguese (pt-BR) localization of GUI
Co-authored-by: mygz <miguelmiguelmnogueira@gmail.com>
2025-06-30 13:53:06 -04:00
Baddie
b3e2b0f77f Pontoon: Update Spain Spanish (es-ES) localization of GUI
Co-authored-by: Baddie <baddie@femboy.gay>
Co-authored-by: Uriel <imurx@proton.me>
Co-authored-by: Aveña <victor@priv.ericeikrem.com>
2025-06-30 13:53:01 -04:00
catdrout
fbf487c9ad Pontoon: Update Swedish (sv-SE) localization of GUI
Co-authored-by: cabbemannen <cabbemannen10@gmail.com>
Co-authored-by: catdrout <c4tdrout@protonmail.com>
Co-authored-by: Uriel <imurx@proton.me>
2025-06-30 13:52:54 -04:00
martin
c0d23c80e6 Pontoon: Update French (fr) localization of GUI
Co-authored-by: martin <martin@dolez.fr>
Co-authored-by: FR_KF_FR <scomtat@wanadoo.fr>
Co-authored-by: Erimel <loukalemire@gmail.com>
2025-06-30 13:52:47 -04:00
ReDoX
6b8931699b Pontoon: Update Polish (pl) localization of GUI
Co-authored-by: Yexo <patrykcyranski@gmail.com>
Co-authored-by: ReDoX <redox01@o2.pl>
2025-06-30 13:52:33 -04:00
Flar
3b41398ef2 Pontoon: Update Russian (ru) localization of GUI
Co-authored-by: Flar <kani.dragonflar@gmail.com>
Co-authored-by: lindetinn <Kuzmenko3g@gmail.com>
Co-authored-by: SummerArtz <summerpzmail@gmail.com>
Co-authored-by: Arom <shura.bekker.00@bk.ru>
Co-authored-by: Sergey <serezhenka.soldatov.2020@mail.ru>
Co-authored-by: viberbread <panfilov.iva2015@yandex.ru>
2025-06-30 13:52:11 -04:00
Laszlo
73ee6f7ced Pontoon: Update Norwegian Bokmål (nb-NO) localization of GUI
Co-authored-by: Laszlo <schlorpian@proton.me>
Co-authored-by: eivind.eriksen <eivind.eriksen08@gmail.com>
Co-authored-by: Aveña <victor@priv.ericeikrem.com>
2025-06-30 13:51:57 -04:00
Andokai
c59595a669 Pontoon: Update Latinamerican Spanish (es-419) localization of GUI
Co-authored-by: Andokai <da.nova@duocuc.cl>
Co-authored-by: Uriel <imurx@proton.me>
Co-authored-by: MaxEvil <xicovalle@gmail.com>
2025-06-30 13:51:50 -04:00
Cheezik
c85f27fa80 Pontoon: Update Czech (cs) localization of GUI
Co-authored-by: Uriel <imurx@proton.me>
Co-authored-by: Cheezik <cheatistv@email.cz>
2025-06-30 13:51:46 -04:00
abb128
1ab4023200 Pontoon: Update Lithuanian (lt) localization of GUI
Co-authored-by: abb128 <abb128@sapples.net>
2025-06-30 13:51:45 -04:00
nekomona
50fdd1869e Pontoon: Update Simplified Chinese (zh-Hans) localization of GUI
Co-Authored-By: nekomona <nekomona@163.com>
2025-06-30 13:51:45 -04:00
Etch9
d8153fee52 Pontoon: Update Italian (it) localization of GUI
Co-authored-by: namakeingo <namakeingo@gmail.com>
Co-authored-by: Etch9 <mario.mazzara30@gmail.com>
2025-06-30 13:51:38 -04:00
Meow Wei
d5323fd050 Pontoon: Update Traditional Chinese (zh-Hant) localization of GUI
Co-Authored-By: Meow Wei <medicalwei@gmail.com>
2025-06-30 13:51:31 -04:00
Uriel
84bfc3687e Fix __ANDROID__ being not initialized and crashing GUI 2025-06-29 13:53:11 -04:00
Uriel
dd06e2b28a Update VRM reader to the new VMC 1.0 spec (#1481) 2025-06-26 06:24:24 +03:00
Uriel
add1e4eb5d Remove BVH button on android builds (#1478) 2025-06-25 21:56:29 -03:00
lucas lelievre
5a7a650f83 Fix number / order of steps in stay aligned (#1475) 2025-06-25 22:57:47 +02:00
Uriel
0427f16e72 Improve the maintenance of the Linux-side (#1463) 2025-06-20 17:39:03 +02:00
lucas lelievre
89ec689a46 Individual Pose calibration for stay aligned (#1452) 2025-06-20 14:07:28 +02:00
Polymoria
4ae5fb7215 Manual proportions visual fixes (#1449)
Co-authored-by: lucas lelievre <loucass003@gmail.com>
2025-06-15 11:54:29 +02:00
jabberrock
241179a924 [Stay Aligned] Fix wild swings when yaw resetting by resetting Stay Aligned before filtering (#1468) 2025-06-15 11:36:00 +02:00
Erimel
ad16d05c42 Fix vrc tracker model unknown text (#1469) 2025-06-15 11:26:55 +02:00
Erimel
3ef550d8b1 Fix neck length not being able to be used for VMC (#1466) 2025-06-11 06:37:27 +02:00
lucas lelievre
26f330c762 Remove Drift compensation (#1461) 2025-06-03 19:11:42 +03:00
lucas lelievre
79eb43fca3 Revert "Just aligned together some elements" (#1460) 2025-06-02 16:14:05 +02:00
lucas lelievre
712fbc3ee8 Optimise Tracker assignment re renders (#1454) 2025-06-02 14:35:10 +02:00
Uriel
0add9bad97 Use fetchResourceUrl for the setup wizard video (#1457) 2025-06-02 14:34:40 +02:00
sctanf
b308cc8ce3 TrackersHID only reopen if no data received (#1444) 2025-06-01 21:22:34 -03:00
Uriel
3920654370 Update linux metadata releases (#1458) 2025-06-01 21:01:42 -03:00
Uriel
503637cb0a Improve typing on xylophone (#1456) 2025-06-02 02:45:05 +03:00
Polymoria
45ff48d9ac Just aligned together some elements (#1451) 2025-05-30 19:45:17 +02:00
loucass003
47b6f0f3c3 lint 2025-05-30 15:06:47 +02:00
Polymoria
a6dd914e83 Free the text coursour? (#1448) 2025-05-30 06:04:04 +02:00
loucass003
7832783388 Fix preview framerate wierdness + fix errors when devSettings key does not exist 2025-05-28 06:36:03 +02:00
lucas lelievre
37553ea889 stay aligned fixes (#1447) 2025-05-28 03:45:37 +02:00
lucas lelievre
419841d9f9 stay aligned wizard (#1442) 2025-05-28 01:00:04 +02:00
lucas lelievre
a4c14aa23e bump flasher lib (#1446) 2025-05-28 01:33:36 +03:00
jabberrock
d71879cc4d [Stay Aligned] Increase yaw correction rate for good IMUs (#1445) 2025-05-27 21:40:01 +02:00
sctanf
ca14fa05e5 add server/*/bin to .gitignore (#1443) 2025-05-24 18:26:54 -03:00
jabberrock
4f4c90d129 [Stay Aligned] Move reset stay aligned after filtering (#1439) 2025-05-24 03:03:13 +02:00
jabberrock
c56d953516 [Stay Aligned] Select yaw correction rate based on IMU type (#1438) 2025-05-21 21:34:20 +02:00
Ilia Ki
b58e9b9074 Add a proper tracker name for gestures trackers (#1440) 2025-05-21 17:51:18 +03:00
lucas lelievre
85d227c926 [Stay Aligned] Simplify Stay Aligned settings (#1436) 2025-05-20 18:47:54 +02:00
Jabberrock
b9d97bb2d8 Update solarxr-protocol 2025-05-20 09:09:06 -07:00
Jabberrock
4fc09c348a Use multiline string for debug output 2025-05-20 09:08:15 -07:00
Jabberrock
795d73dd19 [Stay Aligned] Simplify Stay Aligned settings 2025-05-19 20:55:02 -07:00
lucas lelievre
01130b858e Stay Aligned (#1418) 2025-05-19 22:58:46 +02:00
Jabberrock
85ea808119 Update solarxr-protocol 2025-05-19 13:45:13 -07:00
Jabberrock
44765d5b6e Add "Setup Stay Aligned" flow 2025-05-19 13:07:12 -07:00
Jabberrock
853d112737 Stay Aligned
Keeps your trackers aligned by slowly adjusting the yaw of your trackers to
correct for drift.

Every tick, Stay Aligned adjusts the yaw of one tracker. It looks at the
player's current pose, and adjusts the yaw of the tracker by a tiny amount, in
the direction which is closest to the relaxed pose that the player set up. Over
time, this has the effect of keeping all the trackers in a human-like pose.
2025-05-19 13:07:12 -07:00
lucas lelievre
8881746941 New Pontoon translations (#1391) 2025-05-18 16:19:03 +02:00
Meow Wei
d3ee82cccc Pontoon: Update Traditional Chinese (zh-Hant) localization of GUI
Co-authored-by: Meow Wei <medicalwei@gmail.com>
2025-05-16 03:00:27 +00:00
Meow Wei
947f440600 Pontoon: Update Traditional Chinese (zh-Hant) localization of GUI
Co-authored-by: Meow Wei <medicalwei@gmail.com>
2025-05-16 03:00:27 +00:00
Mama-Gen
8e887395f1 Pontoon: Update Brazilian Portuguese (pt-BR) localization of GUI
Co-authored-by: Mama-Gen <tiodapamonha145@gmail.com>
2025-05-16 03:00:27 +00:00
Meow Wei
3f42b8ab51 Pontoon: Update Traditional Chinese (zh-Hant) localization of GUI
Co-authored-by: Meow Wei <medicalwei@gmail.com>
2025-05-16 03:00:27 +00:00
Meow Wei
52a8e24d9e Pontoon: Update Traditional Chinese (zh-Hant) localization of GUI
Co-authored-by: Meow Wei <medicalwei@gmail.com>
2025-05-16 03:00:27 +00:00
Meow Wei
80248e82f9 Pontoon: Update Traditional Chinese (zh-Hant) localization of GUI
Co-authored-by: Meow Wei <medicalwei@gmail.com>
2025-05-16 03:00:27 +00:00
Meow Wei
647964fe99 Pontoon: Update Traditional Chinese (zh-Hant) localization of GUI
Co-authored-by: Meow Wei <medicalwei@gmail.com>
2025-05-16 03:00:27 +00:00
Meow Wei
010018b400 Pontoon: Update Traditional Chinese (zh-Hant) localization of GUI
Co-authored-by: Meow Wei <medicalwei@gmail.com>
2025-05-16 03:00:27 +00:00
nekomona
4783eab37c Pontoon: Update Simplified Chinese (zh-Hans) localization of GUI
Co-authored-by: nekomona <nekomona@163.com>
Co-authored-by: Luarshey <smallkay063@outlook.com>
2025-05-16 03:00:27 +00:00
unlogisch
f693d562ba Pontoon: Update German (de) localization of GUI
Co-authored-by: unlogisch <unlogisch@gmx.ch>
2025-05-16 03:00:27 +00:00
Uriel
964b19be01 Fix manual proportions not running in old browser versions (#1435) 2025-05-16 00:00:05 -03:00
loucass003
00c768919d Lint 2025-05-14 14:50:54 +02:00
loucass003
c9415b2c02 Check if vrcConfigSetting is suported in the settings 2025-05-14 14:46:55 +02:00
loucass003
93d666a233 Update wifi profile warning link to something usefull 2025-05-13 17:17:50 +02:00
Aleksandra M
cc8538a332 Add note to update gui dependencies when change SolarXR protocol (#1432) 2025-05-12 21:26:36 +02:00
lucas lelievre
f9d619f93a Show warnings when network is set to public on windows (#1425) 2025-05-12 22:24:18 +03:00
Butterscotch!
471714afd0 Tracking pause unit test (#1360) 2025-05-12 21:08:06 +03:00
Aleksandra M
91ce0ed734 Add magnetic field vector (#1416) 2025-05-12 18:59:44 +03:00
sctanf
a35d2a77a2 TrackersHID clearly define acceleration axes (#1431) 2025-05-12 18:53:02 +03:00
sctanf
ea31d58fb8 IMUVisualizerWidget accel replace three arrows with one vector (#1430) 2025-05-12 18:52:50 +03:00
sctanf
e74dee1892 TrackersHID report magnetometer packet (#1428) 2025-05-12 18:52:41 +03:00
sctanf
d84fc40b23 TrackersHID keep opening existing devices (#1429) 2025-05-12 18:52:29 +03:00
Uriel
0dd004825d Fix macOS heap error in CI (#1426) 2025-05-06 20:08:36 +02:00
lucas lelievre
9f36444169 Allow to mute vrc warnings (#1420) 2025-05-06 12:07:51 +03:00
sctanf
52509c7950 Tracker display names (#1417) 2025-05-06 12:02:16 +03:00
Uriel
868c441220 Stop using Twemoji and just use SVGs for it (#1364) 2025-05-06 12:01:46 +03:00
jabberrock
5ad408f61d Reduce log entry size when logging invalid UDP packets (#1424) 2025-05-06 11:46:39 +03:00
sctanf
9b30f9800c TrackersHID fix exception from null magStatus (#1419) 2025-05-04 21:18:14 +02:00
lucas lelievre
07e5ef647a Make sure Global mag setting is saved (#1421) 2025-05-02 21:50:27 +03:00
lucas lelievre
47909ad46c Fix battery resistances being sent as string instead of numbers (#1413) 2025-04-28 17:59:11 +02:00
sctanf
99c92fad9e make tracker entry borders consistent with no border (#1411)
Co-authored-by: lucas lelievre <loucass003@gmail.com>
2025-04-28 16:51:06 +02:00
sctanf
d7861614b7 Better battery and wifi statuses behavior (#1410)
Co-authored-by: lucas lelievre <loucass003@gmail.com>
2025-04-28 16:44:27 +02:00
unlogisch04
b4a3e9cbd5 fix Firewall Rules for java.exe (#1415) 2025-04-28 14:56:43 +02:00
lucas lelievre
e58946f622 Bring back onboarding (#1414) 2025-04-28 14:55:52 +02:00
Erimel
c8532c76c2 Fix lower_leg-desc and elbow_offset-desc typos (#1412) 2025-04-27 01:29:57 +02:00
Butterscotch!
6f26ea7b50 Add OTA port to firewall uninstall script (#1409) 2025-04-26 16:01:22 +02:00
Butterscotch!
a848dfac43 Filtering fixes (#1405)
Co-authored-by: lucas lelievre <loucass003@gmail.com>
2025-04-25 17:27:20 +02:00
lucas lelievre
e5ea747cde Fix fw tool crash (#1408) 2025-04-25 17:21:25 +02:00
sctanf
34a782193b add transition to tracker shadows (#1402) 2025-04-25 08:37:17 +02:00
lucas lelievre
8498270df6 More provisioning errors (#1404)
Co-authored-by: Butterscotch! <bscotchvanilla@gmail.com>
2025-04-25 08:28:37 +02:00
Butterscotch!
cd6ed7296b Interpolation tests & better skeleton test class (#1359) 2025-04-24 00:19:21 +03:00
lucas lelievre
57541e560c vrconfig linux fix (#1403) 2025-04-23 21:22:08 +02:00
Erimel
6f877c3852 Apply filtering post-reset, reapply 180° fix removal & fix getYawQuaternion polarity (#1352)
Co-authored-by: lucas lelievre <loucass003@gmail.com>
2025-04-23 15:18:20 +02:00
lucas lelievre
ca8d75e749 Optimise re-renders (#1355)
Co-authored-by: Uriel <imurx@proton.me>
2025-04-23 14:58:19 +02:00
lucas lelievre
0dc073ca48 VRChat Config Warnings (#1358)
Co-authored-by: Erimel <marioluigivideo@gmail.com>
2025-04-23 14:36:29 +02:00
lucas lelievre
edbaf49e7a manual proportions rework (#1346)
Co-authored-by: Erimel <marioluigivideo@gmail.com>
2025-04-23 13:48:31 +02:00
Butterscotch!
ca790a3799 Load configured height for manual height config (#1395)
Co-authored-by: lucas lelievre <loucass003@gmail.com>
2025-04-23 12:20:54 +03:00
Uriel
3639bdc0ff Use automatic hyphenation when possible (#1362) 2025-04-23 11:16:21 +02:00
sctanf
6817eca793 Use HID tracker magnetometer status from mag_id (#1366) 2025-04-23 12:14:43 +03:00
dependabot[bot]
03365eb050 Bump awalsh128/cache-apt-pkgs-action from 1.4.3 to 1.5.0 (#1361)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-23 12:12:16 +03:00
sctanf
df5744b861 add fade out to reset button borders (#1400) 2025-04-23 11:06:46 +02:00
unlogisch04
bc602892b4 Fix for override.ftl not working (#1398) 2025-04-21 04:13:14 +02:00
sctanf
f49121b8a4 softer reset sounds (#1394) 2025-04-19 18:23:12 +02:00
lucas lelievre
c31aab8237 fw update server deadlock fix (#1393) 2025-04-19 18:22:59 +02:00
Butterscotch!
8e7070d257 Add OTA port to firewall script (#1397) 2025-04-19 19:22:14 +03:00
Butterscotch!
bf9a7fe7f4 Simplify mounting reset status checking (#1382) 2025-04-15 19:18:47 +02:00
lucas lelievre
00690dc351 New Pontoon translations (#1374) 2025-04-15 19:05:12 +02:00
Mama-Gen
2a4b9d29a1 Pontoon: Update Brazilian Portuguese (pt-BR) localization of GUI
Co-authored-by: Mama-Gen <tiodapamonha145@gmail.com>
2025-04-15 17:04:56 +00:00
Meow Wei
4080540e03 Pontoon: Update Traditional Chinese (zh-Hant) localization of GUI
Co-authored-by: Meow Wei <medicalwei@gmail.com>
2025-04-15 17:04:56 +00:00
unlogisch
e2bd7fa37c Pontoon: Update German (de) localization of GUI
Co-authored-by: unlogisch <unlogisch@gmx.ch>
2025-04-15 17:04:56 +00:00
Baddie
23ce2464ab Pontoon: Update Spain Spanish (es-ES) localization of GUI
Co-authored-by: Baddie <baddie@femboy.gay>
Co-authored-by: Uriel <imurx@proton.me>
2025-04-15 17:04:56 +00:00
Baddie
fa6ea23533 Pontoon: Update Spain Spanish (es-ES) localization of GUI
Co-authored-by: Baddie <baddie@femboy.gay>
Co-authored-by: Uriel <imurx@proton.me>
2025-04-15 17:04:56 +00:00
Butterscotch!
eed5d21074 Increase default log limits and refactor FileLogHandler (#1381) 2025-04-15 19:04:37 +02:00
lucas lelievre
f5cb587e00 Make Firmware update more reliable, prevent deadlocks of ui (#1389) 2025-04-15 19:00:57 +02:00
Butterscotch!
e395347421 Scale arms on proportions reset (#1383) 2025-04-15 19:00:08 +02:00
lucas lelievre
7fec2f7468 Battery level check before update (#1387)
Co-authored-by: Uriel <imurx@proton.me>
2025-04-15 18:59:33 +02:00
Butterscotch!
44fc23d2f8 Limit prediction slerp amount (#1388) 2025-04-15 18:51:21 +02:00
lucas lelievre
3dfaf1fdac Allow unset password (#1385) 2025-04-15 18:49:47 +02:00
lucas lelievre
972d113afb Remove unsupported boards from fw tool (#1384) 2025-04-15 18:49:24 +02:00
lucas lelievre
ffc6ca485f Change fw tool reboot wording (#1386) 2025-04-15 18:41:15 +02:00
Uriel
6a6771a7da Fix uncatched errors from not having Tauri (#1379) 2025-04-14 20:47:55 +02:00
Uriel
15e4f9d3a5 Use roaming folder for windows logs when trying to open it (#1380) 2025-04-14 17:04:51 +02:00
lucas lelievre
843aeae581 Fix translations versions (#1375) 2025-04-10 06:03:50 -04:00
lucas lelievre
26703ed04e Better warnings for scaled proportions (#1371) 2025-04-09 22:31:30 +02:00
lucas lelievre
4663d71eac More translation fix (#1373) 2025-04-09 20:38:38 +02:00
lucas lelievre
cd2c170327 Sentry modal text fixes (#1372) 2025-04-09 20:09:32 +03:00
Eiren Rain
2f211e8514 SlimeVR Trademark Clarifications (#1370) 2025-04-09 15:40:01 +03:00
Eiren Rain
69a446c987 Minor fixes 2025-04-09 15:37:11 +03:00
Uriel
3aace3ee3f New Pontoon translations (#1354) 2025-04-09 06:56:09 +02:00
Yingxue
186fd0c9f7 Pontoon: Update Japanese (ja) localization of GUI
Co-authored-by: Yingxue <a1175815821@163.com>
2025-04-09 03:00:06 +00:00
mygz
cc8f3fda9c Pontoon: Update Brazilian Portuguese (pt-BR) localization of GUI
Co-authored-by: Mama-Gen <tiodapamonha145@gmail.com>
Co-authored-by: mygz <miguelmiguelmnogueira@gmail.com>
2025-04-09 04:08:30 +02:00
unlogisch
b48c678800 Pontoon: Update German (de) localization of GUI
Co-authored-by: dennis.staudacher <dennis.staudacher@icloud.com>
Co-authored-by: unlogisch <unlogisch@gmx.ch>
Co-authored-by: Zeidurth <github@zeidurth.de>
2025-04-09 04:08:24 +02:00
Baddie
2f7fd22b09 Pontoon: Update Spain Spanish (es-ES) localization of GUI
Co-authored-by: Baddie <baddie@femboy.gay>
2025-04-09 04:08:24 +02:00
infopcgood
b50c940b24 Pontoon: Update Korean (ko) localization of GUI
Co-authored-by: infopcgood <sshs_student_412@outlook.kr>
Co-authored-by: Kamilake <exjang0@gmail.com>
2025-04-09 04:08:24 +02:00
Butterscotch!
f341d1d312 Pontoon: Update Engwish (en-x-owo) localization of GUI
Co-authored-by: Butterscotch! <bscotchvanilla@gmail.com>
Co-authored-by: Mini <alexanderawatson64@gmail.com>
Co-authored-by: Dau <gamer.buds2@gmail.com>
2025-04-09 04:08:17 +02:00
Cheezik
19e0e22ebf Pontoon: Update Czech (cs) localization of GUI
Co-authored-by: Uriel <imurx@proton.me>
Co-authored-by: Cheezik <cheatistv@email.cz>
2025-04-09 04:08:11 +02:00
Alejandro
347eaf269b Pontoon: Update Latinamerican Spanish (es-419) localization of GUI
Co-authored-by: Uriel <imurx@proton.me>
Co-authored-by: Alejandro <moctezumaalejandro25@gmail.com>
2025-04-09 04:08:05 +02:00
Meow Wei
51ed5dbef2 Pontoon: Update Traditional Chinese (zh-Hant) localization of GUI
Co-authored-by: Meow Wei <medicalwei@gmail.com>
2025-04-09 04:07:57 +02:00
Erimel
aa0a96c3c5 Pontoon: Update French (fr) localization of GUI
Co-authored-by: Erimel <loukalemire@gmail.com>
Co-authored-by: martin <martin@dolez.fr>
Co-authored-by: rascrifice <noppyfloppy69@gmail.com>
2025-04-09 04:07:50 +02:00
namakeingo
a51c6136c2 Pontoon: Update Italian (it) localization of GUI
Co-authored-by: namakeingo <namakeingo@gmail.com>
2025-04-07 13:00:54 +00:00
lucas lelievre
457536b781 Fix manual proportions export (#1368) 2025-04-07 15:00:28 +02:00
Eiren Rain
b514a48b37 Remove logo from the trademark file 2025-04-07 10:08:39 +03:00
Collin
b7dd646594 Decrease shoulder joint's constraints (#1367) 2025-04-07 06:33:30 +02:00
Eiren Rain
616419be7a Fix logs folder opening wrong folder in Linux and macOS (#1363) 2025-04-02 01:54:08 +02:00
Uriel
df74e162bd Take into account logs folder being different in each OS 2025-04-01 20:41:56 -03:00
Eiren Rain
25374847f6 Prepare Firmware Constants for Gestures Release (#997) 2025-03-30 18:19:22 +03:00
Ilia Ki
7289c78fec Update server/core/src/main/java/dev/slimevr/tracking/trackers/udp/FirmwareConstants.kt
Co-authored-by: Eiren Rain <Eirenliel@users.noreply.github.com>
2025-03-30 22:03:04 +07:00
Ilia Ki
33ca7734e5 Update FirmwareConstants.kt 2025-03-30 19:28:19 +07:00
Ilia Ki
58ab5efa6e Merge branch 'main' into patch-1 2025-03-30 19:27:45 +07:00
Eiren Rain
01d2f5ae5f Implement Sentry error logging for GUI (#1153) 2025-03-27 20:59:39 +03:00
loucass003
07542aa2b1 lint 2025-03-27 18:32:05 +01:00
loucass003
83f76154ff Add trackers info to sentry context 2025-03-27 18:29:49 +01:00
loucass003
3996a60bf5 Remove test comment 2025-03-26 21:26:44 +01:00
loucass003
0cecc6e4c5 Re enable text on replays 2025-03-26 21:26:27 +01:00
loucass003
14011a8246 Optimise config loading for early loading of sentry. remove loading state of config as not needed anymore. Update sentry to latest 2025-03-26 21:11:59 +01:00
loucass003
78ed11bd62 Move sentry loading further up in the react graph 2025-03-26 20:29:32 +01:00
loucass003
5b5d2d88e5 Fix solarxr 2025-03-26 20:15:08 +01:00
loucass003
5bddc22da5 Update to main + better translations 2025-03-26 20:10:08 +01:00
loucass003
3d9c6c5fce Merge branch 'main' of github.com:SlimeVR/SlimeVR-Server into sentry-gui 2025-03-26 19:13:15 +01:00
Eiren Rain
a06161bbfa Fix GUI freezing when reopening config folder (#1357) 2025-03-26 13:14:09 +03:00
Maya
837ec60062 remove plugin-shell in tauri config 2025-03-23 07:26:45 +03:00
JovannMC
4b3b4d33ff fix freezing when reopening config folder
for some reason, the entire app froze when you click on "open folder" again, without closing the first explorer window

fixed by moving the code to the rust side
2025-03-23 06:04:40 +03:00
Eiren Rain
400bad5eae Small fixes 2025-03-19 21:49:53 +03:00
Eiren Rain
346149a259 Fix typos 2025-03-19 21:45:31 +03:00
Eiren Rain
7e895b0405 Fix readme link 2025-03-19 21:35:00 +03:00
Eiren Rain
b6ab0f306b Added trademark and logo usage rules 2025-03-19 21:33:19 +03:00
lucas lelievre
315bd81197 Send reset finished status on all reset timers (#1353) 2025-03-19 13:41:07 +01:00
Eiren Rain
8b73ca434b New Pontoon translations (#1315) 2025-03-16 17:25:19 +03:00
Meow Wei
b1d7a026a1 Pontoon: Update Traditional Chinese (zh-Hant) localization of GUI
Co-authored-by: Meow Wei <medicalwei@gmail.com>
2025-03-16 14:24:41 +00:00
namakeingo
ed9401427e Pontoon: Update Italian (it) localization of GUI
Co-authored-by: namakeingo <namakeingo@gmail.com>
2025-03-16 14:24:41 +00:00
namakeingo
8c8f7b3b38 Pontoon: Update Italian (it) localization of GUI
Co-authored-by: namakeingo <namakeingo@gmail.com>
Co-authored-by: Kekko <saccofra8@gmail.com>
2025-03-16 14:24:41 +00:00
Erimel
bf2ef355b7 Pontoon: Update French (fr) localization of GUI
Co-authored-by: Erimel <loukalemire@gmail.com>
2025-03-16 14:24:41 +00:00
Butterscotch!
3f1a794148 Full height for manual configuration (#1329)
Co-authored-by: lucas lelievre <loucass003@gmail.com>
2025-03-16 16:24:22 +02:00
Butterscotch!
a0cedde4b7 Unit test toe snap + fix leg tweaks & default proportions (#1350) 2025-03-16 14:07:07 +02:00
Butterscotch!
eb23778bec Fix moving average quaternion desync & smoothing (#1351) 2025-03-16 14:04:10 +02:00
Romain D.
5353101fff Add more actions to Websocket JSON API (#1347) 2025-03-14 15:31:41 +02:00
DevMiner
d32f91e6b8 fix(solarxr): unbreak other SolarXR clients caused by Vive emulation removal (#1348) 2025-03-14 15:26:44 +02:00
Butterscotch!
f0d07466cd Add skeleton resets unit tests (#1336) 2025-03-11 19:03:20 +02:00
Butterscotch!
49bcc86c4e Fix manual height not submitting form value (#1342)
Co-authored-by: lucas lelievre <loucass003@gmail.com>
2025-03-11 17:43:12 +01:00
lucas lelievre
e7b29b1a2e Better Error page when connection lost + Open logs folder btn (#1340) 2025-03-11 13:12:04 +01:00
lucas lelievre
b2c030c275 Scaled proportions as default (#1339) 2025-03-11 12:50:11 +01:00
lucas lelievre
9e92450700 Merge branch 'main' into 1327-scaled-proportions-should-be-the-main-option 2025-03-11 11:35:50 +01:00
loucass003
2eab516216 Disable Autobone when no vr headset 2025-03-11 11:06:04 +01:00
loucass003
808dd0f670 Better tones -> with poly 2025-03-10 16:24:02 +01:00
loucass003
171ad8b271 Lint 2025-03-10 11:35:20 +01:00
loucass003
50585e40c8 Scaled proportions as default + Autobone moved into manual proportions + Removal of the choose page between manual and scaled proportions + Move export/import proportions to manual 2025-03-10 11:33:55 +01:00
lucas lelievre
9a14eef55e BVH Status and Paused tracking is not presisted in gui (#1332) 2025-03-10 03:02:40 +01:00
lucas lelievre
264710a1fb Redo all tap sounds with better volume and tones / remove mp3s (#1338) 2025-03-10 02:48:43 +01:00
Butterscotch!
c649b9a5fe Fix skeleton config "changed" arrays (#1330) 2025-03-08 13:25:25 -03:00
lucas lelievre
7ab6515a10 Better status messages and ui feedback when needing user actions on the firmware tool (#1331) 2025-03-06 19:45:27 +03:00
Butterscotch!
38f40cadbf Estimate full height and clarify height config translations (#1325) 2025-03-04 19:00:36 +02:00
Butterscotch!
9febcf8166 New PoseFrame streaming format (#1284) 2025-03-04 18:58:41 +02:00
Butterscotch!
4ae197618e Use bones for AutoBone error calculation (#1312) 2025-03-04 18:55:51 +02:00
Butterscotch!
4dac7d28e4 Fix GUI crashing on standalone builds (#1310) 2025-03-04 18:53:36 +02:00
Butterscotch!
589ed15ac2 Remove Vive Emulation (#1324) 2025-03-04 18:52:43 +02:00
Erimel
e944b8a8fa Add a toggle for OSCQuery (#1322)
Co-authored-by: Butterscotch! <bscotchvanilla@gmail.com>
2025-03-04 18:29:23 +02:00
rcelyte
2c5ec62c11 Fix erroneous sign extension in Protobuf IPC packet handling (#1318) 2025-03-04 17:12:16 +02:00
Butterscotch!
6b7ec2adc6 AutoBone iteration abstraction (#1301) 2025-03-04 17:11:07 +02:00
Butterscotch!
20c8c3e7c8 Update firmware constants and translations (#1319) 2025-03-04 17:09:02 +02:00
Butterscotch!
ceb6bd6f5a Document fields in TrackerResetsHandler (#1320) 2025-03-04 17:07:03 +02:00
Butterscotch!
9c4ff8c064 Accept rest calibration in sensor info packet (#1317) 2025-02-26 12:35:49 +03:00
SlimeVR-bot
4f364acecc New Pontoon translations (#1296)
Co-authored-by: nekomona <nekomona@163.com>
Co-authored-by: ZZNYJIDI <zznyjidi@hotmail.com>
Co-authored-by: Yingxue <a1175815821@163.com>
Co-authored-by: Meow Wei <medicalwei@gmail.com>
2025-02-13 01:30:12 +02:00
lucas lelievre
f701075cf3 Improve reset sounds (#1294) 2025-02-13 01:13:05 +02:00
Collin
d498feee31 Disable correct with constraints server side and hide option in GUI (#1303) 2025-02-13 00:27:05 +02:00
jabberrock
ecae40ece8 Updates nodeOffset when body proportions change (#1304) 2025-02-13 00:26:54 +02:00
lucas lelievre
2eb4bab240 Make tap over threshold always available (#1300) 2025-02-10 01:45:14 +03:00
Erimel
9e666a74e1 Revert "Fix over 180 degrees rotations in HumanSkeleton" (#1302) 2025-02-10 01:43:14 +03:00
lucas lelievre
f89f9ae35b Move autimatic steamvr tracker assignment checkbox first (#1299) 2025-02-04 19:35:49 +01:00
loucass003
2cfda2272d Revert "lint"
This reverts commit d63587fcd1.
2025-02-03 00:21:27 +01:00
loucass003
256545ab62 Revert "Change reset sounds so you have clues at the begining and end of the reset action"
This reverts commit 18778db7c3.
2025-02-03 00:21:05 +01:00
loucass003
d63587fcd1 lint 2025-02-03 00:17:26 +01:00
loucass003
18778db7c3 Change reset sounds so you have clues at the begining and end of the reset action 2025-02-03 00:13:16 +01:00
lucas lelievre
fb23ba8522 Small ui fixes on firmware updates (#1291) 2025-01-31 13:54:26 +01:00
lucas lelievre
15ea04d7c9 New Pontoon translations (#1239) 2025-01-31 13:42:21 +01:00
Meow Wei
154fb39794 Pontoon: Update Traditional Chinese (zh-Hant) localization of GUI
Co-authored-by: Meow Wei <medicalwei@gmail.com>
2025-01-31 12:35:15 +00:00
Meow Wei
a02de9790a Pontoon: Update Traditional Chinese (zh-Hant) localization of GUI
Co-authored-by: Meow Wei <medicalwei@gmail.com>
2025-01-31 12:35:15 +00:00
Meow Wei
98f40ac920 Pontoon: Update Traditional Chinese (zh-Hant) localization of GUI
Co-authored-by: Meow Wei <medicalwei@gmail.com>
2025-01-31 12:35:15 +00:00
Meow Wei
555e6959da Pontoon: Update Traditional Chinese (zh-Hant) localization of GUI
Co-authored-by: Meow Wei <medicalwei@gmail.com>
2025-01-31 12:35:15 +00:00
namakeingo
f8520cd379 Pontoon: Update Italian (it) localization of GUI
Co-authored-by: namakeingo <namakeingo@gmail.com>
2025-01-31 12:35:15 +00:00
namakeingo
aee41cc3d4 Pontoon: Update Italian (it) localization of GUI
Co-authored-by: namakeingo <namakeingo@gmail.com>
2025-01-31 12:35:15 +00:00
Uriel
0d8135a09e Pontoon: Update Latinamerican Spanish (es-419) localization of GUI
Co-authored-by: Uriel <imurx@proton.me>
2025-01-31 12:35:15 +00:00
namakeingo
2c7b5c44f1 Pontoon: Update Italian (it) localization of GUI
Co-authored-by: namakeingo <namakeingo@gmail.com>
2025-01-31 12:35:15 +00:00
namakeingo
1a73ea7f58 Pontoon: Update Italian (it) localization of GUI
Co-authored-by: namakeingo <namakeingo@gmail.com>
2025-01-31 12:35:15 +00:00
namakeingo
4355a987ca Pontoon: Update Italian (it) localization of GUI
Co-authored-by: namakeingo <namakeingo@gmail.com>
2025-01-31 12:35:15 +00:00
Meow Wei
bf7351c57d Pontoon: Update Traditional Chinese (zh-Hant) localization of GUI
Co-authored-by: Meow Wei <medicalwei@gmail.com>
2025-01-31 12:35:15 +00:00
Vyolex
0c3090b716 Pontoon: Update Dutch (nl) localization of GUI
Co-authored-by: Vyolex <25586367+Vyolex@users.noreply.github.com>
2025-01-31 12:35:15 +00:00
Vyolex
daace77eb3 Pontoon: Update Dutch (nl) localization of GUI
Co-authored-by: ruben <ruben@balduk.nl>
Co-authored-by: Vyolex <25586367+Vyolex@users.noreply.github.com>
2025-01-31 12:35:15 +00:00
Meow Wei
9e9dd9e9de Pontoon: Update Traditional Chinese (zh-Hant) localization of GUI
Co-authored-by: Meow Wei <medicalwei@gmail.com>
2025-01-31 12:35:15 +00:00
Meow Wei
59e5228b1d Pontoon: Update Traditional Chinese (zh-Hant) localization of GUI
Co-authored-by: Meow Wei <medicalwei@gmail.com>
2025-01-31 12:35:15 +00:00
Meow Wei
e93b06f471 Pontoon: Update Traditional Chinese (zh-Hant) localization of GUI
Co-authored-by: Meow Wei <medicalwei@gmail.com>
2025-01-31 12:35:15 +00:00
Meow Wei
93d69711d6 Pontoon: Update Traditional Chinese (zh-Hant) localization of GUI
Co-authored-by: Meow Wei <medicalwei@gmail.com>
2025-01-31 12:35:15 +00:00
Meow Wei
b495266a41 Pontoon: Update Traditional Chinese (zh-Hant) localization of GUI
Co-authored-by: Meow Wei <medicalwei@gmail.com>
2025-01-31 12:35:15 +00:00
Meow Wei
4acd1015b9 Pontoon: Update Traditional Chinese (zh-Hant) localization of GUI
Co-authored-by: Meow Wei <medicalwei@gmail.com>
2025-01-31 12:35:15 +00:00
Meow Wei
509ad76f2c Pontoon: Update Traditional Chinese (zh-Hant) localization of GUI
Co-authored-by: Meow Wei <medicalwei@gmail.com>
2025-01-31 12:35:15 +00:00
Meow Wei
1e7ce92839 Pontoon: Update Traditional Chinese (zh-Hant) localization of GUI
Co-authored-by: Meow Wei <medicalwei@gmail.com>
2025-01-31 12:35:15 +00:00
Meow Wei
d960fb3c04 Pontoon: Update Traditional Chinese (zh-Hant) localization of GUI
Co-authored-by: Meow Wei <medicalwei@gmail.com>
2025-01-31 12:35:15 +00:00
Meow Wei
0b873977e8 Pontoon: Update Traditional Chinese (zh-Hant) localization of GUI
Co-authored-by: Meow Wei <medicalwei@gmail.com>
2025-01-31 12:35:15 +00:00
Meow Wei
1cbde8a1e1 Pontoon: Update Traditional Chinese (zh-Hant) localization of GUI
Co-authored-by: Meow Wei <medicalwei@gmail.com>
2025-01-31 12:35:15 +00:00
Uriel
45173fa069 Pontoon: Update Spain Spanish (es-ES) localization of GUI
Co-authored-by: Uriel <imurx@proton.me>
2025-01-31 12:35:15 +00:00
Uriel
af543a72e2 Pontoon: Update Latinamerican Spanish (es-419) localization of GUI
Co-authored-by: Uriel <imurx@proton.me>
2025-01-31 12:35:15 +00:00
nekomona
a7633d2106 Pontoon: Update Traditional Chinese (zh-Hant) localization of GUI
Co-authored-by: nekomona <nekomona@163.com>
Co-authored-by: Meow Wei <medicalwei@gmail.com>
2025-01-31 12:35:15 +00:00
namakeingo
5e4bb6f105 Pontoon: Update Italian (it) localization of GUI
Co-authored-by: namakeingo <namakeingo@gmail.com>
2025-01-31 12:35:15 +00:00
Uriel
e526530ef0 Pontoon: Update Spain Spanish (es-ES) localization of GUI
Co-authored-by: Uriel <imurx@proton.me>
2025-01-31 12:35:15 +00:00
Uriel
449235843e Pontoon: Update Latinamerican Spanish (es-419) localization of GUI
Co-authored-by: Uriel <imurx@proton.me>
2025-01-31 12:35:15 +00:00
Mama-Gen
591e85eded Pontoon: Update Brazilian Portuguese (pt-BR) localization of GUI
Co-authored-by: Mama-Gen <tiodapamonha145@gmail.com>
2025-01-31 12:35:15 +00:00
nekomona
f8673a97ed Pontoon: Update Simplified Chinese (zh-Hans) localization of GUI
Co-authored-by: nekomona <nekomona@163.com>
Co-authored-by: Yingxue <a1175815821@163.com>
2025-01-31 12:35:15 +00:00
namakeingo
7aa4e62bbf Pontoon: Update Italian (it) localization of GUI
Co-authored-by: namakeingo <namakeingo@gmail.com>
2025-01-31 12:35:15 +00:00
nekomona
0225d27abb Pontoon: Update Simplified Chinese (zh-Hans) localization of GUI
Co-authored-by: nekomona <nekomona@163.com>
Co-authored-by: Meow Wei <medicalwei@gmail.com>
2025-01-31 12:35:15 +00:00
namakeingo
e14aa93748 Pontoon: Update Italian (it) localization of GUI
Co-authored-by: namakeingo <namakeingo@gmail.com>
2025-01-31 12:35:15 +00:00
namakeingo
3b0fcf7be7 Pontoon: Update Italian (it) localization of GUI
Co-authored-by: namakeingo <namakeingo@gmail.com>
2025-01-31 12:35:15 +00:00
Etch9
ae03c9dc2a Pontoon: Update Italian (it) localization of GUI
Co-authored-by: namakeingo <namakeingo@gmail.com>
Co-authored-by: Etch9 <mario.mazzara30@gmail.com>
2025-01-31 12:35:15 +00:00
lucas lelievre
b19d38a64f Give voltage value to the battery icon (#1292) 2025-01-31 13:34:53 +01:00
lucas lelievre
92eb829041 Tooltips API for mobile and desktop (#1271) 2025-01-31 11:18:01 +01:00
Uriel
4ea57510ed Make SlimeVR icon rounded (#1286)
Co-authored-by: lucas lelievre <loucass003@gmail.com>
2025-01-29 15:05:00 +01:00
Butterscotch!
d389b5acec Implement skeleton constraint toggles (#1290) 2025-01-29 15:56:36 +02:00
Uriel
eb08cb5aa1 Improve close window request checks (#1285) 2025-01-29 14:52:49 +01:00
Uriel
d102cb3778 add university of maryland mirror for Eclipse formatter (#1289) 2025-01-26 19:33:52 +03:00
Collin
bfb30c472b Skeleton Constraints (#1222)
Co-authored-by: Butterscotch! <bscotchvanilla@gmail.com>
2025-01-26 12:36:10 -03:00
Butterscotch!
4ad9d5cfca Expand skeleton height config (#1156)
Co-authored-by: Uriel <imurx@proton.me>
2025-01-23 17:21:38 +01:00
Uriel
2c49d1dc65 Update apt cache action to fix CI error (#1287) 2025-01-23 17:06:44 +01:00
rcelyte
fcd82324a9 SolarXR IPC Socket (#1247) 2025-01-22 18:53:48 +01:00
Butterscotch!
b4df1d1444 Improve log file behaviour (#1262) 2025-01-22 19:30:28 +02:00
Erimel
181ba089c2 Attempt to fix moving average quaternions not resetting properly (#1278) 2025-01-13 23:24:22 +01:00
Yao Wei
394c1dd438 i18n: improve SlimeVR tracker flashing instruction (#1276) 2025-01-07 18:12:34 +01:00
JovannMC
2ff6e99385 Fix "trackers still on" when closing via tray (#1265)
Co-authored-by: Eiren Rain <Eirenliel@users.noreply.github.com>
Co-authored-by: lucas lelievre <loucass003@gmail.com>
2025-01-06 15:16:26 +01:00
Uriel
3614612ac2 Fix CI bugs that appeared recently (#1272) 2025-01-03 01:29:21 +03:00
Butterscotch!
dfeb4e79a4 AutoBone bone contribution fix & cleanup (#1249) 2025-01-03 01:28:31 +03:00
Erimel
a606c5a375 Fix over 180 degrees rotations in HumanSkeleton (#1277) 2025-01-02 22:24:56 +01:00
Butterscotch!
4e698b693c Don't filter non-temporal trackers (#1255) 2025-01-03 00:19:10 +03:00
Uriel
208beff5e5 Merge branch 'main' into sentry-gui 2024-12-21 00:20:23 +01:00
Uriel
0eb81eec04 Disable update notifications for pnpm 2024-12-20 23:54:26 +01:00
Butterscotch!
35f5d132c8 Use jSerialComm 2.11.1-SNAPSHOT (#1269) 2024-12-20 17:06:37 +01:00
Uriel
02cc2496f0 Fix eslint error 2024-12-20 15:34:53 +01:00
loucass003
d84eaa203a Add more feedback 2024-12-20 00:48:23 +01:00
Uriel
e0d372e9bb fix translation files key naming 2024-12-20 00:00:32 +01:00
Uriel
b7a54f6aef fix bugs and stuff 2024-12-19 21:54:42 +01:00
lucas lelievre
9d65477af7 Automatic firmware update for official trackers (#1241)
Co-authored-by: ImUrX <urielfontan2002@gmail.com>
Co-authored-by: Uriel <imurx@proton.me>
Co-authored-by: Butterscotch! <bscotchvanilla@gmail.com>
Co-authored-by: Eiren Rain <Eirenliel@users.noreply.github.com>
2024-12-19 20:03:43 +02:00
lucas lelievre
73cdc890f2 Firmware tool (#880)
Co-authored-by: ImUrX <urielfontan2002@gmail.com>
Co-authored-by: Uriel <imurx@proton.me>
2024-12-19 19:35:54 +02:00
Vocaloid Fan
e8afb49685 Refactor + Check for env variables (#1261) 2024-12-12 17:05:54 -03:00
Uriel
716bc7bcf6 add modal and text 2024-12-12 19:00:39 +01:00
Uriel
a05ae8c043 Merge branch 'main' into sentry-gui 2024-12-12 17:40:42 +01:00
Uriel
bc487f8655 Fix Appimage crashing for people (#1253) 2024-12-11 17:09:17 +02:00
Uriel
2708b5a15b Small improvements on packaging for Tauri (#1254) 2024-12-11 17:08:17 +02:00
Vocaloid Fan
b52e705dc4 Fix Rust logging by disabling ANSI for file output. (#1256) 2024-12-08 12:33:54 -03:00
Eiren Rain
1a5584bcfc Fix SolarXR on main 2024-12-07 12:22:22 +01:00
Erimel
8238f569c6 Flex resistance and angle support (#1242) 2024-11-27 01:11:19 +03:00
abb128
1051d0c5e5 Improve VRM model file input (#1246) 2024-11-21 21:48:17 +02:00
Collin
8fe2540f91 Potentially fix weird hip issues (#1244) 2024-11-21 21:46:53 +02:00
sctanf
6232903691 make HID Device a slime (#1235) 2024-11-21 21:46:34 +02:00
Uriel
819d2fc3b8 Fix error on labeler 2024-11-20 21:14:10 +01:00
Uriel
565a64b0e3 Make GUI check well against translation changes (#1227) 2024-11-19 22:15:48 +01:00
Erimel
18f291345d Finger tracking skeleton and VMC support (#1091) 2024-11-15 19:10:17 +02:00
Uriel
67df399f14 Fix ktor crashing because proguard minifies for Android (#1240) 2024-11-14 02:25:49 +03:00
Uriel
222359692e Support not having git for making android builds (#1237) 2024-11-13 18:08:56 -03:00
Uriel
288db165a7 Repair husky migration to v9 2024-11-11 22:55:27 +01:00
Uriel
5c5636aa24 New Pontoon translations (#1228) 2024-11-06 12:25:32 +01:00
Meow Wei
8e449763a1 Pontoon: Update Traditional Chinese (zh-Hant) localization of GUI
Co-authored-by: Meow Wei <medicalwei@gmail.com>
2024-11-06 12:14:41 +01:00
unlogisch
002de7bcef Pontoon: Update German (de) localization of GUI
Co-authored-by: TheDevMinerTV <devminer@devminer.xyz>
Co-authored-by: unlogisch <unlogisch@gmx.ch>
Co-authored-by: antonyscherrer <antonyscherrer@protonmail.com>
2024-11-06 12:14:25 +01:00
Uriel
db616eaa95 dont create vrconfig.yml folder (#1229) 2024-11-06 12:12:21 +01:00
Uriel
8eaa59f0ce tested and improved the code 2024-11-06 12:07:26 +01:00
Uriel
d121973e85 delete folder if it already exists 2024-11-06 11:42:01 +01:00
Uriel
30367a9204 dont create `vrconfig.yml folder 2024-11-06 11:34:11 +01:00
Uriel
ab10629b84 New Pontoon translations (#1171) 2024-11-05 18:27:42 +01:00
infopcgood
f7d04365cd Pontoon: Update Korean (ko) localization of GUI
Co-authored-by: infopcgood <sshs_student_412@outlook.kr>
Co-authored-by: Kamilake <exjang0@gmail.com>
2024-11-05 18:17:14 +01:00
Graphite0
618914dbf1 Pontoon: Update Russian (ru) localization of GUI
Co-authored-by: Graphite0 <olegek.permjakov@gmail.com>
Co-authored-by: Flar <kani.dragonflar@gmail.com>
Co-authored-by: Sergey <serezhenka.soldatov.2020@mail.ru>
Co-authored-by: SummerArtz <summerpzmail@gmail.com>
2024-11-05 18:17:08 +01:00
LavAriz
2d107b1617 Pontoon: Update Spain Spanish (es-ES) localization of GUI
Co-authored-by: LavAriz <thecakegirl092@gmail.com>
Co-authored-by: Uriel <urielfontan2002@gmail.com>
2024-11-05 18:17:08 +01:00
MaxEvil
4922a84ee5 Pontoon: Update Latinamerican Spanish (es-419) localization of GUI
Co-authored-by: MaxEvil <xicovalle@gmail.com>
Co-authored-by: Uriel <urielfontan2002@gmail.com>
2024-11-05 18:17:03 +01:00
Kyra
2dcb530bef Pontoon: Update German (de) localization of GUI
Co-authored-by: antonyscherrer <antonyscherrer@protonmail.com>
Co-authored-by: Kyra <sebastianzockt@gmail.com>
Co-authored-by: unlogisch <unlogisch@gmx.ch>
Co-authored-by: TheDevMinerTV <devminer@devminer.xyz>
2024-11-05 18:16:51 +01:00
Mama-Gen
22a357c3dd Pontoon: Update Brazilian Portuguese (pt-BR) localization of GUI
Co-authored-by: Mama-Gen <tiodapamonha145@gmail.com>
Co-authored-by: Mitsuaky <parmenashp@gmail.com>
2024-11-05 18:16:35 +01:00
Erimel
0de869e91a Pontoon: Update French (fr) localization of GUI
Co-authored-by: Erimel <loukalemire@gmail.com>
2024-11-05 18:16:23 +01:00
MenacingExiler
8d58e02816 Pontoon: Update Vietnamese (vi) localization of GUI
Co-authored-by: MenacingExiler <menacingexiler@gmail.com>
2024-11-05 18:16:19 +01:00
nekomona
cfcfa3a999 Pontoon: Update Simplified Chinese (zh-Hans) localization of GUI
Co-authored-by: nekomona <nekomona@163.com>
2024-11-05 18:16:14 +01:00
JaydenHa
55a1f7a4ce Pontoon: Update Traditional Chinese (zh-Hant) localization of GUI
Co-authored-by: JaydenHa <jayden@jaydenha.uk>
Co-authored-by: Meow Wei <medicalwei@gmail.com>
2024-11-05 18:16:05 +01:00
Tailsy
28182eb776 Pontoon: Update Polish (pl) localization of GUI
Co-authored-by: ReDoX <redox01@o2.pl>
Co-authored-by: michael091 <michael_m1@o2.pl>
Co-authored-by: stronzo <adam_skur@wp.pl>
Co-authored-by: MenacingExiler <menacingexiler@gmail.com>
Co-authored-by: Tailsy <tailsy13@gmail.com>
2024-11-05 18:15:58 +01:00
Uriel
fa096d627e Make label of tracker name use the translation function (#1224) 2024-11-03 16:23:39 -03:00
Uriel
662ac1fc84 Check if buffer is the size of a u16 at least before getting it (#1226) 2024-11-03 16:15:15 -03:00
Uriel
e676a15609 Improve logic of magnetometer toggle (#1225) 2024-10-31 22:56:26 +03:00
Uriel
7a0292756d Add check for magnetometer not being supported on SensorConfig 2024-10-31 19:25:24 +01:00
Uriel
d753926967 Fix magnetometer status bug and fix locale string plural rules (#1223) 2024-10-30 23:07:59 -03:00
Uriel
76b2803ce8 Update nix flake (#1221) 2024-10-30 21:57:06 +02:00
Uriel
d26420a3e0 Fix labeler having wrong regex for GUI label 2024-10-30 20:55:06 +01:00
Uriel
6b6e0c6e22 Fix missing translation key on tracker settings for Tracker name (#1215) 2024-10-30 21:03:00 +02:00
Uriel
45c49e60be Implement magnetometer toggle for firmware (#1114) 2024-10-30 21:02:30 +02:00
Uriel
9733cf0430 Fix finishing setup wizard not make it be skipped next time (#1212) 2024-10-30 20:33:18 +02:00
Uriel
c57a758ed3 Don't upload desktop.jar on CI (#1211) 2024-10-30 20:19:02 +02:00
Erimel
acbf99dc4a Fix Drift compensation prediction description (#1216) 2024-10-30 20:18:30 +02:00
sctanf
11576c1e66 Hid update protocol (#1200) 2024-10-30 20:17:32 +02:00
Uriel
a998797435 Auto label pull requests (#1217) 2024-10-30 19:53:55 +02:00
Butterscotch!
eb9d9145f1 Clarify AutoBone error after #1185 (#1214)
Co-authored-by: Erimel <marioluigivideo@gmail.com>
2024-10-28 18:56:50 -03:00
Butterscotch!
3bbf5cb3e3 Fix style for tracker "shadow" & add to all cases (#1204) 2024-10-25 21:47:06 -03:00
Uriel
26ec95b2a7 Fix tauri not autosaving store on close anymore (#1209) 2024-10-25 21:33:24 -03:00
Uriel
7cb500abef Fix typo on OBTAINING_MAC_ADDRESS (#1206) 2024-10-25 19:41:31 +02:00
Erimel
16779364c9 Fix vmc head shift for lock head (#1208) 2024-10-25 18:06:13 +02:00
Butterscotch!
e058c69192 Add asexual theme (#1207) 2024-10-22 21:37:16 -03:00
Uriel
99a4141a7d Fix spacing issues on advanced settings (#1198) 2024-10-16 13:52:06 -03:00
sctanf
5d65b807ef catch unable to find hid library (#1199) 2024-10-15 22:52:57 -03:00
Butterscotch!
9cacf993ad Remove check for port 35903 (#1195) 2024-10-15 22:39:49 -03:00
Uriel
8f9e83c231 add runtime check for appindicator on linux (#1193) 2024-10-14 18:22:08 +02:00
Uriel
a0b1abed43 Update to Tauri v2 stable (#1194) 2024-10-14 13:18:43 +02:00
Uriel
066760bf79 Update all gradle dependencies we have (#1173) 2024-10-10 14:58:13 +02:00
JovannMC
a2d842d8cc Add settings reset & advanced section (#1154)
Co-authored-by: Uriel <imurx@proton.me>
Co-authored-by: Butterscotch! <5095026+ButterscotchV@users.noreply.github.com>
Co-authored-by: lucas lelievre <loucass003@gmail.com>
2024-10-09 18:09:06 +02:00
Butterscotch!
ca13ca5fb4 Restrict mounting reset on server by tracker reset status (#1169)
Co-authored-by: lucas lelievre <loucass003@gmail.com>
2024-10-09 17:25:53 +02:00
Butterscotch!
33a213f10f Handle missing local IP (#1174)
Co-authored-by: Uriel <imurx@proton.me>
Co-authored-by: lucas lelievre <loucass003@gmail.com>
2024-10-09 16:53:57 +02:00
Butterscotch!
1a6560a9cf Block AutoBone with high error values (#1185)
Co-authored-by: lucas lelievre <loucass003@gmail.com>
2024-10-09 16:28:42 +02:00
Uriel
449c6f80dc add a way to skip rest calibration tutorial (#1186)
Co-authored-by: lucas lelievre <loucass003@gmail.com>
2024-10-09 16:19:06 +02:00
nekomona
1a88eba476 Add extrapolated prediction to drift compensation (#1184)
Co-authored-by: loucass003 <loucass003@gmail.com>
2024-10-09 16:07:36 +02:00
JovannMC
8d55440dbd Add warning to proportions reset (#1179)
Co-authored-by: Uriel <imurx@proton.me>
Co-authored-by: Butterscotch! <5095026+ButterscotchV@users.noreply.github.com>
2024-10-09 10:51:29 -03:00
Uriel
8da5d84e0a Add OS decorations toggle (#1180)
Co-authored-by: lucas lelievre <loucass003@gmail.com>
2024-10-09 14:05:15 +02:00
JovannMC
027e6549b6 Add acceleration & position to tracker page (#1191)
Co-authored-by: lucas lelievre <loucass003@gmail.com>
2024-10-09 13:29:20 +02:00
Uriel
95c8c08f86 enforce lf with editorconfig (#1192)
Co-authored-by: lucas lelievre <loucass003@gmail.com>
2024-10-08 19:15:57 +02:00
JovannMC
ba3a2ce125 Hide navbar onboarding (#1152) 2024-10-08 19:15:21 +02:00
JovannMC
ed34001962 Add drift compensation warning (#1160) 2024-10-08 19:05:52 +02:00
Polymoria
1dae302b27 Tracker status box shadow color fix (#1170)
Co-authored-by: Uriel <imurx@proton.me>
2024-10-08 18:41:22 +02:00
sctanf
505a9fc5d5 Sleep HID dataRead with devices present (#1183)
Co-authored-by: lucas lelievre <loucass003@gmail.com>
2024-10-04 16:29:46 +03:00
Uriel
c58209a140 use 128MB of memory for server (#1178) 2024-09-30 20:34:05 +02:00
lucas lelievre
15264526ce Move top level await to tauri.ts (#1181)
Co-authored-by: Uriel <imurx@proton.me>
2024-09-25 20:05:56 +02:00
Uriel
136434e5c7 Config check if config path exists and create it if not (#1176) 2024-09-25 18:12:46 +02:00
Uriel
27244ff974 Update appstream data (#1177) 2024-09-23 20:14:55 +02:00
DevMiner
aadf38d2a9 fix(gui): tab title (#1175) 2024-09-23 16:05:42 +02:00
Uriel
439f60b89e New Pontoon translations (#1076) 2024-09-20 16:43:07 +02:00
Meow Wei
21f4468c00 Pontoon: Update Traditional Chinese (zh-Hant) localization of GUI
Co-authored-by: JaydenHa <jayden@jaydenha.uk>
Co-authored-by: Meow Wei <medicalwei@gmail.com>
2024-09-20 16:33:41 +02:00
VocalFan
00f46f01b1 Pontoon: Update Japanese (ja) localization of GUI
Co-authored-by: beq <beqbdean@gmail.com>
Co-authored-by: VocalFan <auronhines@gmail.com>
2024-09-20 16:33:41 +02:00
Iris
af8e6fc3f3 Pontoon: Update Finnish (fi) localization of GUI
Co-authored-by: Iris <vakotoneva@gmail.com>
2024-09-20 16:33:41 +02:00
VocalFan
28d4199f12 Pontoon: Update Czech (cs) localization of GUI
Co-authored-by: VocalFan <auronhines@gmail.com>
2024-09-20 16:33:41 +02:00
Flar
0c309da528 Pontoon: Update Russian (ru) localization of GUI
Co-authored-by: viberbread <panfilov.iva2015@yandex.ru>
Co-authored-by: VocalFan <auronhines@gmail.com>
Co-authored-by: SummerArtz <summerpzmail@gmail.com>
Co-authored-by: Flar <kani.dragonflar@gmail.com>
2024-09-20 16:33:41 +02:00
Renka
3c765dbd8a Pontoon: Update Spain Spanish (es-ES) localization of GUI
Co-authored-by: adriangoldenhero <adriangoldenhero@gmail.com>
Co-authored-by: Renka <lunastarletvr@gmail.com>
Co-authored-by: Uriel <urielfontan2002@gmail.com>
2024-09-20 16:33:41 +02:00
Uriel
eb9928ad08 Pontoon: Update Latinamerican Spanish (es-419) localization of GUI
Co-authored-by: Renka <lunastarletvr@gmail.com>
Co-authored-by: Uriel <urielfontan2002@gmail.com>
Co-authored-by: Alejandro <moctezumaalejandro25@gmail.com>
2024-09-20 16:33:41 +02:00
Mama-Gen
90dcf986f8 Pontoon: Update Brazilian Portuguese (pt-BR) localization of GUI
Co-authored-by: Mama-Gen <tiodapamonha145@gmail.com>
2024-09-20 16:33:41 +02:00
SebastianZ
eb602df452 Pontoon: Update German (de) localization of GUI
Co-authored-by: SebastianZ <sebastianzockt@gmail.com>
Co-authored-by: Piranja <info@hollihn.ch>
Co-authored-by: TheDevMinerTV <devminer@devminer.xyz>
Co-authored-by: unlogisch <unlogisch@gmx.ch>
2024-09-20 16:33:41 +02:00
michael091
e157fe7ed5 Pontoon: Update Polish (pl) localization of GUI
Co-authored-by: ReDoX <redox01@o2.pl>
Co-authored-by: michael091 <michael_m1@o2.pl>
Co-authored-by: stronzo <adam_skur@wp.pl>
Co-authored-by: MenacingExiler <menacingexiler@gmail.com>
Co-authored-by: Tailsy <tailsy13@gmail.com>
2024-09-20 16:33:41 +02:00
Vyolex
e3e48d3b0f Pontoon: Update Dutch (nl) localization of GUI
Co-authored-by: timovandegriend <timovandegriend@gmail.com>
Co-authored-by: SaabAerospace <SaabAerospace@hotmail.com>
Co-authored-by: Rat. <staf.dierickx@gmail.com>
Co-authored-by: Vyolex <25586367+Vyolex@users.noreply.github.com>
2024-09-20 16:33:41 +02:00
infopcgood
018056b728 Pontoon: Update Korean (ko) localization of GUI
Co-authored-by: infopcgood <sshs_student_412@outlook.kr>
Co-authored-by: Kamilake <exjang0@gmail.com>
2024-09-20 16:33:41 +02:00
MenacingExiler
d1b21f2f17 Pontoon: Update Vietnamese (vi) localization of GUI
Co-authored-by: MenacingExiler <menacingexiler@gmail.com>
2024-09-20 16:33:41 +02:00
beq
8eeaa62760 Pontoon: Update Engwish (en-x-owo) localization of GUI
Co-authored-by: Butterscotch! <bscotchvanilla@gmail.com>
Co-authored-by: beq <beqbdean@gmail.com>
Co-authored-by: infopcgood <sshs_student_412@outlook.kr>
Co-authored-by: Mini <alexanderawatson64@gmail.com>
2024-09-20 16:33:41 +02:00
namakeingo
564e99c52c Pontoon: Update Italian (it) localization of GUI
Co-authored-by: namakeingo <namakeingo@gmail.com>
Co-authored-by: Etch9 <mario.mazzara30@gmail.com>
2024-09-20 16:33:41 +02:00
VocalFan
b483699cf0 Pontoon: Update French (fr) localization of GUI
Co-authored-by: VocalFan <auronhines@gmail.com>
Co-authored-by: Erimel <loukalemire@gmail.com>
2024-09-20 16:33:34 +02:00
Uriel
7cea1c7b47 remove fastutil as it has weird behavior and its not used 2024-09-13 23:20:29 +02:00
Uriel
7c96ee89c1 Fix audio/video issues not playing on Linux (#1151) 2024-09-13 11:19:50 -03:00
Butterscotch!
1c867efe16 Fix tracker reset logic (#1150) 2024-09-13 02:41:56 +02:00
Uriel
9371938a00 improve text and config of sentry 2024-09-07 13:46:01 +02:00
Uriel
eeac1586f5 Merge branch 'main' into sentry-gui 2024-09-07 13:41:33 +02:00
Uriel
2c146169ac Add scripts for checking licenses (#1099) 2024-08-28 16:51:11 +02:00
John Marshall
5c0d3e9932 Fix SlimeVR server from not working reliably on Quest standalone (#1141) 2024-08-28 15:19:15 +02:00
Uriel
384a0c2252 smol improvements 2024-08-23 17:17:26 +02:00
Uriel
ec9845364d continue integration 2024-08-23 00:32:22 +02:00
Uriel
93944aad55 start implementing sentry 2024-08-22 17:12:28 +02:00
Uriel
456485071b Convert to WebP in mounting reset once again (#1146) 2024-08-21 19:32:32 -03:00
Uriel
e2d268df2d Update mounting reset image to a newer one (#1145) 2024-08-20 16:19:58 +02:00
dependabot[bot]
2beb449171 Bump gradle/actions from 3 to 4 (#1143)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-20 15:52:58 +02:00
dependabot[bot]
49865f8e2e Bump pnpm/action-setup from 3 to 4 (#1144)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-20 15:45:00 +02:00
Butterscotch!
25f7d8fe95 Add dependabot for GitHub Actions (#1137) 2024-08-20 09:17:16 -03:00
Uriel
62563ab1c2 remove discord log that includes user information (#1139) 2024-08-20 09:11:57 -03:00
Ondrej Hruska
9bec98f8f5 Add small top padding to show highlighting on tracker assignment page (#1138) 2024-08-20 13:29:19 +02:00
Ondrej Hruska
60f8db7079 show current direction on manual mounting (#1108)
Co-authored-by: Uriel <imurx@proton.me>
2024-08-14 00:20:49 +02:00
Uriel
b06f038777 Change automatic mounting pose image to new one (#1135) 2024-08-13 15:43:43 +02:00
Butterscotch!
1fba4e67ab Fix Android build & OSC support (#1133) 2024-08-12 22:44:06 -03:00
Erimel
1950a419a8 Reset upper chest tracker (#1134) 2024-08-12 22:31:58 -03:00
Uriel
9238c7211b Fix many GUI bugs found (#1129) 2024-08-07 19:03:18 -03:00
Butterscotch!
518fe8d2ef Fix skeleton issues (#1132) 2024-08-07 17:41:01 -03:00
Butterscotch!
8b97c0eb27 Change Android webserver port to 34536 (#1131) 2024-08-07 20:14:34 +02:00
Uriel
9bf7f1fa5c Fix git version script trimming wrong command (#1128) 2024-08-01 18:55:27 -03:00
Butterscotch!
4abd171efc Use default security attributes for named pipes (#1116) 2024-08-01 23:35:08 +02:00
Erimel
af4f9a96bf Computed head reset (#1057) 2024-08-01 00:05:34 -03:00
Erimel
58ca3fe8c1 OSCQuery support (#958)
Co-authored-by: Uriel <imurx@proton.me>
2024-07-31 18:01:38 +02:00
gale
0859abf08d Update flake nixpkgs revision (#1121) 2024-07-24 22:13:33 -03:00
Uriel
b32e1cad50 Add a way to save serial logs as a file (#1029) 2024-07-24 22:00:55 -03:00
Butterscotch!
c2566afa5e Update jSerialComm library (#1117) 2024-07-23 20:32:53 -03:00
VocalFan
7a9a23c3d4 Improvement on firewall batch scripts (#1030) 2024-07-23 20:27:16 -03:00
Uriel
76b29c4af6 Update to latest tauri again (#1097) 2024-07-19 20:38:51 -03:00
ShineBrightMeow
0be9b34320 Updated IMU Constants (#1100) 2024-07-12 17:38:04 +02:00
Ondrej Hruska
0b01a4d67a Issue#1079 - Add a background to the 3d preview skeleton (#1107) 2024-07-11 21:37:24 -03:00
Ondrej Hruska
c316313d2a Issue#1082 - The Exit Modals does not go on top of other (#1105) 2024-07-11 21:30:20 +03:00
Uriel
d8695d3e88 Add missing head tracker status (#962) 2024-07-11 17:50:18 +02:00
Ondrej Hruska
6e942780de Issue#1092 - White theme has correct manual mounting colors (#1103) 2024-07-11 05:02:05 +02:00
Erimel
0d9f9289fb Don't use neck length if head tracker doesn't have position (#1019) 2024-07-03 16:46:27 +02:00
Erimel
a6d0517a5b Fix VMC foot offset (#1020) 2024-07-03 16:37:07 +02:00
AxisAngles
708135ff4c Fix Quaternion biAlign (#1094) 2024-07-03 16:23:40 +02:00
JovannMC
1f434e1c88 Sync server constants with firmware (#1093) 2024-07-02 16:09:20 +02:00
lucas lelievre
7ab8435595 assignments enhancements (#1083)
Co-authored-by: Ondrej Hruska <11602729+ZycaR@users.noreply.github.com>
2024-06-26 16:39:46 +02:00
lucas lelievre
94aec1f4ba Remove useLayout (#1080) 2024-06-25 12:10:34 +02:00
Ondrej Hruska
6a268fbbad Issue#1066 - Show the current selected direction on the tracker mounting radial menu (#1077) 2024-06-18 11:15:01 -07:00
Ondrej Hruska
5ade5eb626 Issue#1074 - Icon of the body part in correct color (#1075) 2024-06-18 00:06:11 +02:00
Uriel
63384f40b5 Update to latest Tauri v2 (#1023) 2024-06-17 18:18:51 +02:00
Ondrej Hruska
d9da5544bb GUI - Tracker assignment options (#1009)
Co-authored-by: Erimel <marioluigivideo@gmail.com>
Co-authored-by: loucass003 <loucass003@gmail.com>
2024-06-17 08:45:06 -07:00
rcelyte
cfd9223390 Fix WebSocketVRBridge HMD (#1072) 2024-06-17 08:18:59 -07:00
Uriel
a135ca3459 Add Futura back to codeowners 2024-06-17 13:22:29 +02:00
Uriel
9bcccc6c36 Delete old resources from java (#984) 2024-06-17 13:02:48 +02:00
Uriel
00ef667c58 Add Discord Rich Presence support (#1027)
Co-authored-by: Erimel <marioluigivideo@gmail.com>
2024-06-14 18:32:00 +02:00
Uriel
fbb0b8a460 Override tauri config version with git tag (#994) 2024-06-14 17:55:09 +02:00
Zhenfu Shi
6626cabeaa macOS app naming improvements (#991) 2024-06-14 17:50:25 +02:00
nekomona
d23c92dec2 De-duplicate repeated HID packets (#1036) 2024-06-14 17:36:38 +02:00
Uriel
1356e7fbe6 Create tarball of GUI bundle on release (#1004) 2024-06-14 17:31:28 +02:00
Uriel
ec2909406b fix waitUntil failing with arrays and objects (#1028) 2024-06-14 17:21:16 +02:00
Uriel
37de960c1b Update how Linux bundling is done (#983) 2024-06-14 17:03:09 +02:00
Uriel
638d4e3fb1 Update metainfo to latest (#1024) 2024-06-14 15:40:39 +02:00
Uriel
a6f377992d Don't check for waist or hip on hasChest (#1031) 2024-06-14 14:51:27 +02:00
Uriel
27386d5b29 Use `Exit event instead of ExitRequested` (#1062) 2024-06-13 18:50:49 +02:00
Uriel
d67acf6c28 keep up with quality guidelines in Flathub (#1063) 2024-06-13 18:22:32 +02:00
Erimel
4471aaaa49 Add VMC toggle to mirror tracking (#1065) 2024-06-13 18:12:19 +02:00
Erimel
a3faad4a72 Update serial console description (#1064) 2024-06-13 17:13:55 +02:00
Uriel
4e4edc24da Add padding to tracker list on onboarding (#1058) 2024-06-13 16:20:36 +02:00
Collin
e64edb76dd Fix mocap mode breaking on startup (#1046) 2024-06-07 01:25:57 +03:00
Erimel
721a74aacc Fix VMC floating (#1039) 2024-06-06 01:25:01 +03:00
Erimel
775f5e9f30 Fix update button not redirecting to the installer directly on Windows (#1037) 2024-06-06 01:22:35 +03:00
VocalFan
6ca2eb6905 Begone Slimevr-ui.exe (#1018) 2024-06-06 01:21:47 +03:00
sctanf
9808ea8709 Use assigned vid/pid for HID tracker (#1044) 2024-05-31 12:31:10 -03:00
Uriel
e2a511b552 fix erimel breaking codeowners (#1032) 2024-05-14 18:17:43 +03:00
Uriel
2d55672f0a fix macOS bundling action (#1015) 2024-04-30 00:28:25 +03:00
Ondrej Hruska
74ee8211a3 GUI - Fix condition for promise detection in a11y (#1016) 2024-04-29 18:21:29 -03:00
Erimel
18fcb80d4c don't toggle trackers if tracking is paused (#1013) 2024-04-29 13:56:24 -03:00
Ilia Ki
046be5f5e7 Fix the HID decoding, replace Q14 with Q15, optimize (#1000) 2024-04-29 10:13:59 -03:00
sctanf
91a31b399d Change usb enumeration to only specific Vid/Pid (#1012) 2024-04-28 20:50:00 -03:00
Ilia Ki
6d014912c4 Add more compact bundle protocol (#999) 2024-04-28 12:33:10 -03:00
Ilia Ki
8c0c3d1053 UDPPacket23RotationAndAcceleration: Switch x and y around to adjust for different axes (#1007) 2024-04-27 11:46:17 -03:00
Uriel
24f2895238 New Pontoon translations (#914) 2024-04-23 23:56:55 -03:00
timovandegriend
c901d80915 Pontoon: Update Dutch (nl) localization of GUI
Co-authored-by: timovandegriend <timovandegriend@gmail.com>
Co-authored-by: Vyolex <25586367+Vyolex@users.noreply.github.com>
2024-04-23 22:48:23 -03:00
nekomona
8b52d0f135 Pontoon: Update Simplified Chinese (zh-Hans) localization of GUI
Co-authored-by: nekomona <nekomona@163.com>
2024-04-23 22:48:23 -03:00
Meow Wei
3d88dcd974 Pontoon: Update Traditional Chinese (zh-Hant) localization of GUI
Co-authored-by: Meow Wei <medicalwei@gmail.com>
2024-04-23 22:48:23 -03:00
Kaiera huzu
9041b4c35e Pontoon: Update Thai (th) localization of GUI
Co-authored-by: Uriel <urielfontan2002@gmail.com>
Co-authored-by: Kaiera huzu <patsakorn9090@gmail.com>
2024-04-23 22:48:23 -03:00
Clay
804ca64d29 Pontoon: Update Russian (ru) localization of GUI
Co-authored-by: Clay <code.clayt@gmail.com>
Co-authored-by: kanava <creedfqr@gmail.com>
Co-authored-by: SummerArtz <summerpzmail@gmail.com>
Co-authored-by: Hornil <vixlyaev@gmail.com>
2024-04-23 22:48:23 -03:00
Tailsy
530315ff06 Pontoon: Update Polish (pl) localization of GUI
Co-authored-by: ReDoX <redox01@o2.pl>
Co-authored-by: MenacingExiler <menacingexiler@gmail.com>
Co-authored-by: PlFarmer <pufat.pasztecik@gmail.com>
Co-authored-by: Tailsy <przemyslaw.romaniak@intel.com>
2024-04-23 22:48:23 -03:00
MaxEvil
86b3aec926 Pontoon: Update Latinamerican Spanish (es-419) localization of GUI
Co-authored-by: MaxEvil <xicovalle@gmail.com>
Co-authored-by: Uriel <urielfontan2002@gmail.com>
2024-04-23 22:48:23 -03:00
Pesky12
7f920c1db3 Pontoon: Update Czech (cs) localization of GUI
Co-authored-by: Uriel <urielfontan2002@gmail.com>
Co-authored-by: Pesky12 <avianearts@gmail.com>
2024-04-23 22:48:23 -03:00
Erimel
369a3496ec Pontoon: Update French (fr) localization of GUI
Co-authored-by: Erimel <loukalemire@gmail.com>
2024-04-23 22:48:23 -03:00
白貓
55af27e59e Pontoon: Update Japanese (ja) localization of GUI
Co-authored-by: 白貓 <yen.max@gmail.com>
Co-authored-by: coin_battery <coin_battery@ichigo-tosuta.sakura.ne.jp>
2024-04-23 22:48:23 -03:00
Mama-Gen
eade92acee Pontoon: Update Brazilian Portuguese (pt-BR) localization of GUI
Co-authored-by: Mama-Gen <tiodapamonha145@gmail.com>
Co-authored-by: Gaabbu <gabrielsonada@outlook.com.br>
Co-authored-by: Uriel <urielfontan2002@gmail.com>
2024-04-23 22:48:23 -03:00
Iris
923e203f1c Pontoon: Update Finnish (fi) localization of GUI
Co-authored-by: siofrain <maradaichides@gmail.com>
Co-authored-by: Iris <vakotoneva@gmail.com>
2024-04-23 22:48:23 -03:00
Kamilake
f252e602bc Pontoon: Update Korean (ko) localization of GUI
Co-authored-by: Kamilake <exjang0@gmail.com>
Co-authored-by: infopcgood <sshs_student_412@outlook.kr>
2024-04-23 22:48:23 -03:00
namakeingo
abeedf2a87 Pontoon: Update Italian (it) localization of GUI
Co-authored-by: namakeingo <namakeingo@gmail.com>
Co-authored-by: Etch9 <mario.mazzara30@gmail.com>
2024-04-23 22:48:23 -03:00
Louie365
dec1091587 Pontoon: Update Spain Spanish (es-ES) localization of GUI
Co-authored-by: Louie365 <alexibiza123@gmail.com>
Co-authored-by: Uriel <urielfontan2002@gmail.com>
Co-authored-by: Luna <lunastarletvr@gmail.com>
Co-authored-by: Danielle <controltab3@gmail.com>
Co-authored-by: Iván <ivanbogdasaebersold@live.com.ar>
2024-04-23 22:48:23 -03:00
MenacingExiler
9ca6d54d25 Pontoon: Update Vietnamese (vi) localization of GUI
Co-authored-by: MenacingExiler <menacingexiler@gmail.com>
2024-04-23 22:48:23 -03:00
FennT
eb362c135b Pontoon: Update Arabic (ar) localization of GUI
Co-authored-by: Modrnaklob <hamzah.jubran@hotmail.com>
Co-authored-by: FennT <0094falcon@gmail.com>
2024-04-23 22:48:23 -03:00
unlogisch
a75aa8cd78 Pontoon: Update German (de) localization of GUI
Co-authored-by: Zahnatom <zahnatomletsplay@gmail.com>
Co-authored-by: Piranja <info@hollihn.ch>
Co-authored-by: unlogisch <unlogisch@gmx.ch>
Co-authored-by: TheDevMinerTV <devminer@devminer.xyz>
2024-04-23 22:48:13 -03:00
Uriel
6896f9f3e2 Update Github action versions to non-deprecated ones (#1005) 2024-04-22 22:18:33 +03:00
Uriel
827e2ceef8 update hid4java to 0.8 (#992)
Co-authored-by: sctanf <36978460+sctanf@users.noreply.github.com>
2024-04-21 19:31:28 -03:00
Ilia Ki
ae4391bff1 Add compact IMU frame (rot+acc) (#1001) 2024-04-21 20:22:38 +03:00
Uriel
be76cd1b6f Check if saved window size is at least the minimum allowed (#993) 2024-04-21 18:59:32 +03:00
abb128
884424c7b4 Fix missing space in BVH (#996) 2024-04-21 12:49:39 -03:00
Ilia Ki
e0d3224393 Support Datagrams up to 1472 bytes (#998) 2024-04-21 17:05:40 +03:00
Ilia Ki
d992cd3f63 Prepare Firmware Constants for Gestures Release 2024-04-21 13:11:05 +07:00
Uriel
fde8ccd821 fix GUI visual bugs in autobone (#985) 2024-04-14 01:58:19 -03:00
Uriel
ed9a590296 fix permission issue on export proportions (#987) 2024-04-14 01:42:09 -03:00
Uriel
4f1d333f38 assign knee when hasFoot for SteamVR (#986) 2024-04-13 20:37:27 -03:00
Uriel
ce6940dd39 dont prefix v on versions (#988) 2024-04-13 18:48:15 -03:00
Uriel
c3d97a9463 Add support for left/right steamvr toggles (#982) 2024-04-09 17:54:48 -03:00
Uriel
bcf66145c2 Make only search bar keybinds be prevented (#981) 2024-04-09 17:38:30 -03:00
Uriel
cfd7bc366e Revert packages that are broken (#980) 2024-04-09 17:20:09 -03:00
Uriel
f9c077e78b Remove default keybind behavior in browser window (#979) 2024-04-05 20:45:50 -03:00
Uriel
5471f5ec40 Fix hands warning button styling (#978) 2024-04-05 19:51:58 -03:00
Uriel
b639523228 fix windows bundling not working (#976) 2024-04-05 18:12:59 +03:00
Uriel
b310cf0e0e Fix tauri permission issues (#977) 2024-04-04 23:11:30 -03:00
Erimel
7df8c5d858 Add toggle to save and load mounting reset (#963) 2024-04-04 19:53:37 -04:00
Uriel
78caab1cd4 Update to latest GUI dependencies (#905) 2024-04-04 16:22:51 -03:00
nekomona
be9166881a Add Yaw Reset Smoothing (#964)
Co-authored-by: Butterscotch! <bscotchvanilla@gmail.com>
2024-04-03 22:22:59 -04:00
Uriel
29442688d4 Update SolarXR to main branch (#973) 2024-03-31 21:16:24 +03:00
Uriel
fc5f3c1a35 Add network protocol version (#972) 2024-03-31 21:04:28 +03:00
Uriel
8a88721924 fix onboarding tracker connect description key (#968) 2024-03-29 23:53:12 -03:00
Uriel
1aa8679c08 fix known devices not saving (#969) 2024-03-29 22:38:20 -04:00
Uriel
3d51d77e27 Make ktmath object-less (#959) 2024-03-29 01:26:56 -03:00
Uriel
8c74e98187 Automatic SteamVR tracker switching (#947) 2024-03-29 00:57:05 -03:00
Uriel
aefaa6598d Use tauri store for GUI config (#923) 2024-03-28 11:53:46 -03:00
Erimel
f391b558c9 Tpose down fix (#967) 2024-03-28 03:17:08 -03:00
Uriel
ea28baeef9 Improve autobone GUI steps (#960) 2024-03-28 03:09:16 -03:00
Butterscotch!
f5f40f496b Make mounting reset follow headset rotation (#953) 2024-03-25 22:56:34 -03:00
ZRock35
297022fb3f Connect one tracker at a time text adjustment (#965)
Co-authored-by: Erimel <marioluigivideo@gmail.com>
Co-authored-by: Uriel <imurx@proton.me>
2024-03-23 20:46:17 -04:00
Uriel
f402b22d74 Allow multiple servers in the same network (#900)
Co-authored-by: Erimel <marioluigivideo@gmail.com>
2024-03-14 21:42:49 -03:00
Uriel
a8557474cb Update Kotlin and gradle plugins (#957) 2024-03-14 23:00:38 +03:00
Uriel
d53de4a793 Fix macOS bundling giving an error (#943) 2024-03-14 22:53:50 +03:00
Butterscotch!
81aacdde83 Fix NaN rotation on reset with a zero quaternion (#950) 2024-03-14 16:02:37 -03:00
Butterscotch!
762290b1e3 fastSeek is not available on most browsers, use currentTime (#954) 2024-03-14 15:58:52 -03:00
Uriel
3425be64ac Fix state bug on tray exit (#944) 2024-03-13 20:08:24 -03:00
Uriel
673344baf9 Add an error boundary for WebGL (#942) 2024-03-13 18:45:54 -03:00
sctanf
ee7d6a8bc0 Sleep if no HID device present (#956) 2024-03-09 19:28:36 -03:00
sctanf
552451cb98 Remove changing acceleration space in hid tracker (#945) 2024-02-19 22:34:57 -03:00
unlogisch04
a74d5aa273 Add Serial Console Wifi Scan (#930) 2024-02-16 19:20:43 -03:00
Uriel
21576aff63 Migrate to pnpm (#893) 2024-02-16 15:52:44 -03:00
Uriel
908e220b23 Fixing small bugs (#924)
Co-authored-by: Butterscotch! <bscotchvanilla@gmail.com>
Co-authored-by: ZRock35 <91239122+ZRock35@users.noreply.github.com>
2024-02-16 01:52:14 -03:00
Erimel
7d0d64418d move biAlign into Quaternion.kt (#940) 2024-02-16 01:00:19 -03:00
Butterscotch!
f80ca11947 Add pause tracking toggle to user action packet (#922) 2024-02-15 21:40:57 -03:00
Markus
7f75f4a44c allow to set the socket dir via SLIMEVR_SOCKET_DIR (#909) 2024-02-15 21:33:55 -03:00
Butterscotch!
1dd1d14d16 Change mounting position/rotation/direction to mounting orientation (#939) 2024-02-15 21:28:59 -03:00
Erimel
d3f90b8404 show drift compensation in tracker preview (#937) 2024-02-15 21:23:54 -03:00
Uriel
d9955d10e3 Add tray support (#897)
Co-authored-by: Erimel <marioluigivideo@gmail.com>
2024-02-09 21:44:28 -03:00
Uriel
a9b1df8851 Update appstream metadata info (#892) 2024-02-09 21:20:53 -03:00
Uriel
7b04f536d0 Remove Futura from CODEOWNERS (#935)
Co-authored-by: Eiren Rain <Eirenliel@users.noreply.github.com>
2024-02-07 23:19:44 +03:00
Uriel
fcef02e8f2 Add linux files for CODEOWNERS (#936) 2024-02-07 23:18:27 +03:00
Erimel
694d3fa363 don't send packets of bones we don't have (#932) 2024-02-04 22:00:20 -03:00
sctanf
3f6a26f7d8 Add initial HID trackers support (#913)
Co-authored-by: Uriel <imurx@proton.me>
2024-01-31 22:11:24 -03:00
unlogisch04
990cd1d6f2 Update FirmwareConstants.kt (#927)
Co-authored-by: Butterscotch! <bscotchvanilla@gmail.com>
2024-01-31 18:28:07 -03:00
Uriel
6ac320352b Update CODEOWNERS for SolarXR (#928) 2024-01-29 19:52:41 +03:00
Erimel
ae1b60da5d Prevent smoothing rollback (#921) 2024-01-06 23:46:38 -05:00
VocalFan
aaa5c2ba48 Complete TODO of replacing quatToXyzAngles with toEulerAngles (#915)
Co-authored-by: Erimel <loukalemire@gmail.com>
2024-01-06 23:39:43 -05:00
Erimel
5ff5f81a88 New Pontoon translations (#912) 2023-12-21 19:29:06 -05:00
Kamilake
99f71088ec Pontoon: Update Korean (ko) localization of GUI
Co-authored-by: Kamilake <exjang0@gmail.com>
2023-12-21 21:23:46 -03:00
eric.voigt.1
fcdcac1ed2 Pontoon: Update German (de) localization of GUI
Co-authored-by: eric.voigt.1 <eric.voigt.1@web.de>
Co-authored-by: Ise_Kaey <kaey87@gmail.com>
Co-authored-by: Yasu3D <l.frisan31@gmail.com>
Co-authored-by: Piranja <info@hollihn.ch>
Co-authored-by: unlogisch <unlogisch@gmx.ch>
Co-authored-by: Ninsbean <janina.uhl@outlook.com>
Co-authored-by: Levi <levi1532@duck.com>
2023-12-21 21:22:59 -03:00
Allan
37b57bea1f Pontoon: Update Vietnamese (vi) localization of GUI
Co-authored-by: Allan <playwithken@gmail.com>
2023-12-21 21:22:59 -03:00
namakeingo
77285787ec Pontoon: Update Italian (it) localization of GUI
Co-authored-by: namakeingo <namakeingo@gmail.com>
Co-authored-by: riccardomariatassan <riccardomariatassan@gmail.com>
2023-12-21 21:22:54 -03:00
Vyolex
2f5d2b214e Pontoon: Update Dutch (nl) localization of GUI
Co-authored-by: Vyolex <25586367+Vyolex@users.noreply.github.com>
Co-authored-by: Smeltie <martijnklerks123@gmail.com>
2023-12-21 21:22:51 -03:00
Meow Wei
319344254d Pontoon: Update Traditional Chinese (zh-Hant) localization of GUI
Co-authored-by: Meow Wei <medicalwei@gmail.com>
2023-12-21 21:22:50 -03:00
MaxEvil
86011f323b Pontoon: Update Latinamerican Spanish (es-419) localization of GUI
Co-authored-by: MaxEvil <xicovalle@gmail.com>
2023-12-21 21:22:50 -03:00
Butterscotch!
f9a8384369 Pontoon: Update Engwish (en-x-owo) localization of GUI
Co-authored-by: Butterscotch! <bscotchvanilla@gmail.com>
2023-12-21 21:22:46 -03:00
Erimel
90ced8cacf Pontoon: Update French (fr) localization of GUI
Co-authored-by: Erimel <loukalemire@gmail.com>
2023-12-19 05:00:09 +00:00
Uriel
8253110130 decrease amount of retries to 1 in serial provisioning (#911) 2023-12-17 04:21:17 -03:00
Uriel
563713e788 New Pontoon translations (#904) 2023-12-16 01:22:55 -03:00
Meow Wei
93c319ce68 Pontoon: Update Traditional Chinese (zh-Hant) localization of GUI
Co-authored-by: Meow Wei <medicalwei@gmail.com>
2023-12-15 23:40:28 -03:00
Meow Wei
abaf8a19ae Pontoon: Update Simplified Chinese (zh-Hans) localization of GUI
Co-authored-by: Meow Wei <medicalwei@gmail.com>
2023-12-15 23:40:28 -03:00
Mama-Gen
49becc4f08 Pontoon: Update Portuguese (pt-BR) localization of GUI
Co-authored-by: Mama-Gen <tiodapamonha145@gmail.com>
2023-12-15 23:40:28 -03:00
ReDoX
24f6fdacae Pontoon: Update Polish (pl) localization of GUI
Co-authored-by: Uriel <urielfontan2002@gmail.com>
Co-authored-by: ReDoX <redox01@o2.pl>
2023-12-15 23:40:28 -03:00
qHiyokop
c54b0d4044 Pontoon: Update Italian (it) localization of GUI
Co-authored-by: namakeingo <namakeingo@gmail.com>
Co-authored-by: qHiyokop <isaac.pulcini@hotmail.it>
Co-authored-by: Etch9 <mario.mazzara30@gmail.com>
2023-12-15 23:40:23 -03:00
Iris
bec4d74ccf Pontoon: Update Finnish (fi) localization of GUI
Co-authored-by: Iris <vakotoneva@gmail.com>
2023-12-15 23:40:19 -03:00
adriangoldenhero
583629d8e0 Pontoon: Update Spain Spanish (es-ES) localization of GUI
Co-authored-by: adriangoldenhero <adriangoldenhero@gmail.com>
2023-12-15 23:40:19 -03:00
Uriel
60535bda30 Pontoon: Update Latinamerican Spanish (es-419) localization of GUI
Co-authored-by: Uriel <urielfontan2002@gmail.com>
2023-12-15 23:40:19 -03:00
Ise_Kaey
3675213820 Pontoon: Update German (de) localization of GUI
Co-authored-by: Ise_Kaey <kaey87@gmail.com>
Co-authored-by: Zeidurth <github@zeidurth.de>
Co-authored-by: Ninsbean <janina.uhl@outlook.com>
Co-authored-by: Piranja <info@hollihn.ch>
Co-authored-by: unlogisch <unlogisch@gmx.ch>
2023-12-15 23:40:05 -03:00
infopcgood
900a5d30f7 Pontoon: Update Korean (ko) localization of GUI
Co-authored-by: infopcgood <sshs_student_412@outlook.kr>
Co-authored-by: Kamilake <exjang0@gmail.com>
2023-12-15 23:39:59 -03:00
Butterscotch!
4d21b61549 Clarify headset wording and update AutoBone requirements (#910) 2023-12-15 17:19:00 -05:00
Uriel
c3c7fc896c Add reboot retries when trying to connect to WiFi (#907) 2023-12-08 16:09:20 -03:00
Uriel
c3b4727017 Add a TrackerStatus.TIMED_OUT for temporal timeouts (#903) 2023-12-08 20:31:42 +03:00
Ryan Butler
99d0756997 change codeowners (#908) 2023-11-29 22:55:18 +03:00
Uriel
ff218488a7 better checks for tracker id on tracker error (#901) 2023-11-19 13:17:32 -03:00
Butterscotch!
8fa535d8b8 Separate scale from proportions in AutoBone (#846) 2023-11-19 12:50:27 -03:00
Uriel
d2a9a21b8f Add default mounting orientation for certain body parts (#898) 2023-11-19 00:40:04 -03:00
lucas lelievre
2dbc25b529 Android serial (#888) 2023-11-18 18:32:41 -03:00
Butterscotch!
eefe7efbfa Add pause tracking keybind & protobuf command (#867) 2023-11-18 14:10:50 -03:00
Butterscotch!
25bd05082c Don't set all trackers to "ok" on device reconnect (#883) 2023-11-18 01:06:21 -03:00
Uriel
cc5bd5d938 Try forcing manual mounting on setup (#852)
Co-authored-by: Erimel <marioluigivideo@gmail.com>
2023-11-12 01:48:01 -03:00
Uriel
751c2e2f3b Fix the connected tracker modal not having it's config saved (#896) 2023-11-12 00:27:12 -03:00
Erimel
59863fa7f3 New Pontoon translations (#868) 2023-11-07 19:55:25 -05:00
Erimel
82b5a74a4b Pontoon: Update French (fr) localization of GUI
Co-authored-by: Erimel <loukalemire@gmail.com>
2023-11-08 00:47:37 +00:00
Meow Wei
4079dee383 Pontoon: Update Traditional Chinese (zh-Hant) localization of GUI
Co-authored-by: Meow Wei <medicalwei@gmail.com>
2023-11-07 20:09:46 -03:00
imbluewisp
af69d94681 Pontoon: Update Spain Spanish (es-ES) localization of GUI
Co-authored-by: Uriel <urielfontan2002@gmail.com>
Co-authored-by: imbluewisp <imbluewisp@gmail.com>
2023-11-07 20:09:46 -03:00
Uriel
923235aaee Pontoon: Update Latinamerican Spanish (es-419) localization of GUI
Co-authored-by: Uriel <urielfontan2002@gmail.com>
2023-11-07 20:09:42 -03:00
SlimeVR-bot
79eeca9c1c Pontoon: Update German (de) localization of GUI
Co-authored-by: TheDevMinerTV <devminer@devminer.xyz>
2023-11-07 20:09:33 -03:00
Kamilake
335fe5edeb Pontoon: Update Korean (ko) localization of GUI
Co-authored-by: Kamilake <exjang0@gmail.com>
2023-11-04 18:04:23 +00:00
Smeltie
68c484b6c5 Pontoon: Update Dutch (nl) localization of GUI
Co-authored-by: Smeltie <martijnklerks123@gmail.com>
2023-11-04 18:04:23 +00:00
Uriel
70f4925b3e add android to release pipeline (#891) 2023-11-04 21:03:54 +03:00
Collin
3aa0587387 Kotlin leg tweaks (#809) 2023-11-03 19:57:18 -03:00
lucas lelievre
74c3f41867 Refactor of the dropdown component (#875) 2023-11-03 19:23:53 -03:00
lucas lelievre
a39c8c2018 Make button and typography children optional (#872) 2023-11-03 18:33:05 -03:00
lucas lelievre
4fa5c3f767 Fix VRMode not going back to home screen when resizing to desktop layout (#873) 2023-11-03 18:06:47 -03:00
lucas lelievre
71d271bfdb fix resize glitches (#874) 2023-11-03 16:59:54 -03:00
lucas lelievre
f1b3b56484 Refactor TrashIcon ArrowIcon and LoaderIcon (#876) 2023-11-03 16:44:04 -03:00
Uriel
a614c225da Fixed appearance on exit warning modal (#890) 2023-11-03 15:47:34 -03:00
lucas lelievre
8ae3ecc1b3 Add more colors to checkbox (#877) 2023-11-03 15:18:03 -03:00
lucas lelievre
e79c7ebf0e Add disabled state to Ratio, Fix typos and bad typing (#878) 2023-11-03 15:08:53 -03:00
lucas lelievre
3a50153980 Add errors and disabled state to Input (#879) 2023-11-03 14:50:51 -03:00
Uriel
d37466cf9f Skeleton preview (#817) 2023-11-03 14:29:19 -03:00
Uriel
029bd9da81 add android CI (#889) 2023-11-03 15:50:15 +03:00
Uriel
d3f323b438 add me to codeowners in settings parts of GUI (#885) 2023-11-03 15:49:52 +03:00
Uriel
ce4639bed0 fix nix not using toolchain version (#857) 2023-11-03 15:49:16 +03:00
Uriel
4ebd863580 Update tauri 2 (#858) 2023-11-03 15:48:52 +03:00
Éric Bonin
1fb32e8458 Prompt before closing SlimeVR when trackers are still connected (#862) 2023-11-02 23:46:28 -03:00
Butterscotch!
871ffa5571 Add new message from firmware for finding server (#870) 2023-11-02 23:22:56 -03:00
0forks
56b105697f Fix pipe crash when SteamVR fails to boot (#887) 2023-11-02 23:08:54 -03:00
0forks
3a0014db25 Fix 3d preview reset math (#881) 2023-11-01 14:15:12 -04:00
Erimel
c3d10f1407 Use Bones (#787)
Co-authored-by: ImUrX <urielfontan2002@gmail.com>
2023-10-19 17:42:48 +03:00
Uriel
a2bbe7097c Forgot the other task for git force (#861) 2023-09-29 22:56:41 +03:00
Uriel
415a07461e Force git tag fetching (#860) 2023-09-29 21:55:27 +03:00
Uriel
4bd31fb02f Only get first tag on build (#859) 2023-09-28 20:19:27 -04:00
Uriel
2bc50b2bc2 Add preload component (#854) 2023-09-26 07:42:34 -04:00
imgbot[bot]
e37b11844f [ImgBot] Optimize images (#838) 2023-09-25 18:39:08 -04:00
Butterscotch!
92f709e2f9 Track connection by socket address if HWID is unavailable (#851) 2023-09-25 00:45:29 -04:00
Butterscotch!
7fe3d82540 Fix NPE when tracking arms from controllers (#853) 2023-09-25 00:11:42 -04:00
Erimel
12b5461849 New Pontoon translations (#839) 2023-09-21 21:50:22 -04:00
Meow Wei
9b43f77c31 Pontoon: Update Traditional Chinese (zh-Hant) localization of GUI
Co-authored-by: Meow Wei <medicalwei@gmail.com>
2023-09-21 22:40:19 -03:00
Disappear9
d3fab10ea7 Pontoon: Update Simplified Chinese (zh-Hans) localization of GUI
Co-authored-by: Disappear9 <disappear9@outlook.com>
2023-09-21 22:40:19 -03:00
ReCluyem
de51497cee Pontoon: Update Russian (ru) localization of GUI
Co-authored-by: ReCluyem <dim.golovaha@yandex.ru>
2023-09-21 22:40:19 -03:00
ReDoX
a19de94130 Pontoon: Update Polish (pl) localization of GUI
Co-authored-by: ReDoX <redox01@o2.pl>
2023-09-21 22:40:19 -03:00
Smeltie
e11b80c8e0 Pontoon: Update Dutch (nl) localization of GUI
Co-authored-by: Smeltie <martijnklerks123@gmail.com>
2023-09-21 22:40:11 -03:00
Erimel
9b3f9eccab Pontoon: Update French (fr) localization of GUI
Co-authored-by: Erimel <loukalemire@gmail.com>
2023-09-21 16:42:56 +00:00
namakeingo
3752a11f84 Pontoon: Update Italian (it) localization of GUI
Co-authored-by: namakeingo <namakeingo@gmail.com>
2023-09-21 16:42:56 +00:00
FennT
7c89185a40 Pontoon: Update Arabic (ar) localization of GUI
Co-authored-by: FennT <0094falcon@gmail.com>
2023-09-21 16:42:56 +00:00
MarcoM
4284e1f52c feat: use path-alias (#771) 2023-09-21 12:42:29 -04:00
Uriel
7a37773441 Fix RPCUtil not checking for the interface before looking for it (#849) 2023-09-20 02:27:29 -04:00
Erimel
4dc8ce979d Add _trackerNum to extensions' displaynames (#848)
Co-authored-by: Uriel <urielfontan2002@gmail.com>
2023-09-19 19:27:10 -04:00
Erimel
6a30da671d Filter out !isSiteLocalAddress from addresses (#847)
Co-authored-by: Uriel <urielfontan2002@gmail.com>
2023-09-17 21:23:37 -04:00
Butterscotch!
3f307605cc Android ByteBuffer and Color fixes (#842) 2023-09-15 22:37:46 -04:00
Erimel
185dc8d674 Fix foot tracker orientation (#843) 2023-09-14 19:46:47 +03:00
Erimel
55d6a01a4c Fix hash diplayName to not change (#841) 2023-09-14 19:46:11 +03:00
Louka Lemire
34f357572a Fix right foot skeleton offset (#840) 2023-09-03 19:09:52 -04:00
Uriel
1aaf01f2ca use devenv for nix develop (#830) 2023-09-03 02:25:56 +03:00
Erimel
bc5f9a17c4 Resets settings (#806) 2023-09-03 02:25:21 +03:00
Kitlith
7231f46804 Track connection by SocketAddress instead of IP address. (#753) 2023-09-03 01:12:55 +03:00
Butterscotch!
b467af8c46 Fix icons and add more & fill in web manifest (#835) 2023-09-03 01:12:06 +03:00
Erimel
4393a6f137 knee-ankle interpolation (#780)
Co-authored-by: Uriel <urielfontan2002@gmail.com>
2023-09-03 01:11:28 +03:00
Uriel
5d773a37ab Fix config shenanigans (#836) 2023-09-02 16:14:41 -04:00
Erimel
17306c1976 Make UDPPackets Floats safe (#832) 2023-09-02 16:02:02 -04:00
Uriel
6dfc8a8101 add import proportions button (#811) 2023-09-02 15:57:00 -04:00
Erimel
ac5a68d33d Convert HumanSkeleton to Kotlin (#783) 2023-08-31 19:19:45 -04:00
Uriel
f2d663c341 Update metainfo (#834) 2023-08-31 22:25:14 +03:00
Erimel
4cab877daa New Pontoon translations (#828) 2023-08-30 13:07:39 -04:00
Disappear9
71366b9d52 Pontoon: Update Simplified Chinese (zh-Hans) localization of GUI
Co-authored-by: Disappear9 <disappear9@outlook.com>
2023-08-30 13:44:30 -03:00
ReDoX
de2dee45e4 Pontoon: Update Polish (pl) localization of GUI
Co-authored-by: ReDoX <redox01@o2.pl>
2023-08-30 13:44:30 -03:00
Iris
522ec4c96a Pontoon: Update Finnish (fi) localization of GUI
Co-authored-by: Iris <vakotoneva@gmail.com>
2023-08-30 13:44:30 -03:00
FennT
dc2937bdb0 Pontoon: Update Arabic (ar) localization of GUI
Co-authored-by: FennT <0094falcon@gmail.com>
Co-authored-by: xxlderichard <xxlderichard@gmail.com>
2023-08-30 13:44:25 -03:00
namakeingo
57aaf2e7ee Pontoon: Update Italian (it) localization of GUI
Co-authored-by: namakeingo <namakeingo@gmail.com>
2023-08-30 13:44:25 -03:00
Butterscotch!
b30e4dadbe Pontoon: Update Engwish (en-x-owo) localization of GUI
Co-authored-by: Butterscotch! <bscotchvanilla@gmail.com>
2023-08-30 13:44:25 -03:00
Meow Wei
9a5c694278 Pontoon: Update Traditional Chinese (zh-Hant) localization of GUI
Co-authored-by: Meow Wei <medicalwei@gmail.com>
2023-08-30 13:44:25 -03:00
ReCluyem
f6bad3f3de Pontoon: Update Russian (ru) localization of GUI
Co-authored-by: ReCluyem <dim.golovaha@yandex.ru>
2023-08-30 13:44:25 -03:00
siofrain
5a4d1399b7 Pontoon: Update Finnish (fi) localization of GUI
Co-authored-by: siofrain <maradaichides@gmail.com>
2023-08-30 13:44:25 -03:00
mikk
7fc0c88331 Pontoon: Update Estonian (et) localization of GUI
Co-authored-by: mikk <mikk@mikkmer.me>
2023-08-30 13:44:19 -03:00
Faxty
9eb63b6fb9 Pontoon: Update Spain Spanish (es-ES) localization of GUI
Co-authored-by: Faxty <xxlegendexx402@gmail.com>
2023-08-28 17:08:00 +00:00
Uriel
50620dd42f Pontoon: Update Latinamerican Spanish (es-419) localization of GUI
Co-authored-by: Uriel <urielfontan2002@gmail.com>
2023-08-28 17:08:00 +00:00
Erimel
7b1e4a84d3 Pontoon: Update French (fr) localization of GUI
Co-authored-by: SlimePuppy <minouviolet2007+github@gmail.com>
Co-authored-by: Erimel <loukalemire@gmail.com>
2023-08-28 17:08:00 +00:00
Uriel
917092eb00 tauri should work now (#831) 2023-08-28 20:07:27 +03:00
Uriel
4df2d8771c Small GUI fixes, pt. 2 (#815) 2023-08-19 11:24:36 -04:00
Uriel
a92dec8805 Small fixes pt. 3 (#822) 2023-08-19 18:05:30 +03:00
unlogisch04
942f64a2f1 Add FT232 Serial Chipset to the known list (#823) 2023-08-19 18:04:38 +03:00
Erimel
5211d340d2 Fix the offsets of arms from controllers (#826) 2023-08-19 18:04:21 +03:00
Erimel
f3cefdcc61 Fix receiving OSC (#825) 2023-08-19 18:03:48 +03:00
Uriel
00e0824a84 Fix tauri 2 again (#827) 2023-08-19 04:12:31 +03:00
Erimel
7f9f6f4b18 Fix HMD designation (#821) 2023-08-15 17:43:59 +03:00
Uriel
81bf58f8c0 Fix nix with latest rust update (#820) 2023-08-15 17:43:24 +03:00
Erimel
2d35456645 Fix OSCTrackers yawAlign (#818) 2023-08-13 12:04:28 -04:00
Erimel
25da8715fe New Pontoon translations (#807) 2023-08-12 15:52:13 -04:00
Meow Wei
e366c5909c Pontoon: Update Traditional Chinese (zh-Hant) localization of GUI
Co-authored-by: Meow Wei <medicalwei@gmail.com>
2023-08-12 19:37:50 +00:00
Disappear9
ed04b70713 Pontoon: Update Simplified Chinese (zh-Hans) localization of GUI
Co-authored-by: Disappear9 <disappear9@outlook.com>
2023-08-12 19:37:47 +00:00
MenacingExiler
e6bcbd9b3a Pontoon: Update Polish (pl) localization of GUI
Co-authored-by: MenacingExiler <menacingexiler@gmail.com>
2023-08-12 19:37:43 +00:00
Smeltie
fc44d902f1 Pontoon: Update Dutch (nl) localization of GUI
Co-authored-by: Smeltie <martijnklerks123@gmail.com>
Co-authored-by: Rat. <staf.dierickx@gmail.com>
2023-08-12 19:08:14 +00:00
Kamilake
c975949c35 Pontoon: Update Korean (ko) localization of GUI
Co-authored-by: Kamilake <exjang0@gmail.com>
2023-08-12 19:08:14 +00:00
FennT
c611570524 Pontoon: Update Arabic (ar) localization of GUI
Co-authored-by: FennT <0094falcon@gmail.com>
2023-08-12 19:08:14 +00:00
Uriel
02e0af8c51 Fix Tauri 2 update (#813) 2023-08-12 22:07:47 +03:00
Erimel
e4e5a884ef Fix UDP timeout overriding error status (#812) 2023-08-12 21:53:15 +03:00
Uriel
6d005223c7 Improve debugging experience (#790) 2023-08-10 20:40:43 +03:00
Erimel
975f340a63 Fix acceleration adjustement and add to visualizer (#804) 2023-08-10 13:30:16 -04:00
Erimel
cdb4d15d60 Improve HMD handling (#801) 2023-08-09 13:33:02 -04:00
MakerKath
f343b0e80c Minor: Updated battery indicator V placement (#810) 2023-08-09 13:25:18 -04:00
Uriel
dad0188854 Update to tauri 2 (#665) 2023-08-06 00:14:24 -04:00
Erimel
8a6778155d New Pontoon translations (#768) 2023-08-05 00:30:11 -04:00
ImUrX
7a968c3086 add spain spanish 2023-08-05 00:43:02 -03:00
menacingexiler
9730c78049 Pontoon: Update Vietnamese (vi) localization of GUI
Co-authored-by: MenacingExiler <menacingexiler@gmail.com>
2023-08-05 00:37:34 -03:00
FennT
1a57820e31 Pontoon: Update Arabic (ar) localization of GUI
Co-authored-by: FennT <0094falcon@gmail.com>
2023-08-05 00:37:34 -03:00
adriangoldenhero
c85facfba7 Pontoon: Update Spain Spanish (es-ES) localization of GUI
Co-authored-by: joninsoul <joninsoul@gmail.com>
Co-authored-by: Uriel <urielfontan2002@gmail.com>
Co-authored-by: ImCapi <imcapivr@gmail.com>
Co-authored-by: namakeingo <namakeingo@gmail.com>
Co-authored-by: adriangoldenhero <adriangoldenhero@gmail.com>
2023-08-05 00:37:25 -03:00
Hornil
72deebdf87 Pontoon: Update Russian (ru) localization of GUI
Co-authored-by: Uriel <urielfontan2002@gmail.com>
Co-authored-by: kanava <creedfqr@gmail.com>
Co-authored-by: Hornil <vixlyaev@gmail.com>
2023-08-05 00:37:25 -03:00
beq
5ab5e3e1bc Pontoon: Update Japanese (ja) localization of GUI
Co-authored-by: beq <beqbdean@gmail.com>
2023-08-05 00:37:25 -03:00
Meow Wei
7b84b041aa Pontoon: Update Traditional Chinese (zh-Hant) localization of GUI
Co-authored-by: Meow Wei <medicalwei@gmail.com>
2023-08-05 00:37:21 -03:00
Disappear9
775d78731d Pontoon: Update Simplified Chinese (zh-Hans) localization of GUI
Co-authored-by: Disappear9 <disappear9@outlook.com>
2023-08-05 00:37:21 -03:00
ReDoX
ecbe1fb75d Pontoon: Update Polish (pl) localization of GUI
Co-authored-by: Uriel <urielfontan2002@gmail.com>
Co-authored-by: ReDoX <redox01@o2.pl>
2023-08-05 00:37:16 -03:00
Butterscotch!
c273594163 Pontoon: Update Engwish (en-x-owo) localization of GUI
Co-authored-by: Butterscotch! <bscotchvanilla@gmail.com>
2023-08-05 00:37:16 -03:00
Yasu3D
51b1e2170e Pontoon: Update German (de) localization of GUI
Co-authored-by: Yasu3D <l.frisan31@gmail.com>
Co-authored-by: Piranja <info@hollihn.ch>
2023-08-05 00:37:16 -03:00
Erimel
56d114c461 Pontoon: Update French (fr) localization of GUI
Co-authored-by: Erimel <loukalemire@gmail.com>
Co-authored-by: Uriel <urielfontan2002@gmail.com>
2023-08-05 00:37:05 -03:00
Uriel
0d47d69134 Pontoon: Update Latinamerican Spanish (es-419) localization of GUI
Co-authored-by: Uriel <urielfontan2002@gmail.com>
Co-authored-by: KOBRA <carlosthen3190@gmail.com>
2023-08-05 00:36:56 -03:00
namakeingo
329d77d0f4 Pontoon: Update Italian (it) localization of GUI
Co-authored-by: namakeingo <namakeingo@gmail.com>
2023-08-05 00:36:47 -03:00
Rat
e7673338b5 Pontoon: Update Dutch (nl) localization of GUI
Co-authored-by: Lualt <officieel.lualt@gmail.com>
Co-authored-by: Rat. <staf.dierickx@gmail.com>
Co-authored-by: Vyolex <25586367+Vyolex@users.noreply.github.com>
2023-08-04 12:15:25 +00:00
Eiren Rain
9715326a99 Create FUNDING.yml 2023-08-04 15:15:02 +03:00
Uriel
93c910be6a things I got pinged about to fix (#803) 2023-08-03 22:28:14 +03:00
0forks
06520b9baa Implement packet bundling (#794) 2023-08-02 14:13:56 +03:00
Erimel
23dd9aab18 avoid Git tags breaking (#802) 2023-07-31 16:00:55 +03:00
Collin
0367e3a62d Fix tap to assign and other bugs (#795) 2023-07-31 15:25:49 +03:00
Uriel
f84efc413d Move serial communication to desktop subproject (#756)
Co-authored-by: Erimel <marioluigivideo@gmail.com>
2023-07-30 17:48:42 +03:00
Erimel
414482c139 Fix updateTrackersDriftCompensation condition (#796) 2023-07-30 17:46:32 +03:00
Butterscotch!
a6b3465ea5 Quick fix for BVH issues (#798) 2023-07-30 17:45:56 +03:00
Erimel
dddedd9a60 fix upper chest mounting null (#799) 2023-07-30 17:45:20 +03:00
Erimel
d89a4c2704 Send any computed tracker via VMC for props (#719)
Co-authored-by: Uriel <urielfontan2002@gmail.com>
2023-07-27 15:43:34 +03:00
Erimel
0ad237a219 Improve defaults SkeletonValues & add ratios in gui (#743) 2023-07-27 15:42:28 +03:00
Uriel
9c980f06f9 Make manual proportion list grow if there is space (#784)
Co-authored-by: lucas lelievre <loucass003@gmail.com>
2023-07-27 15:41:47 +03:00
Collin
f607693d83 Fix toe snap (#793) 2023-07-25 02:53:46 -04:00
Butterscotch!
27faa1908c Fix Autobone comment on the wrong line (#791) 2023-07-23 13:19:33 -04:00
Uriel
39cd1f9ba9 Autobone config migration is in wrong version (#792) 2023-07-22 03:49:27 -04:00
Erimel
c59f20a79a make sentences consistents (#789) 2023-07-20 16:30:58 -04:00
Erimel
e7de25dfab Clarify "extended" skeleton toggles in GUI (#779) 2023-07-20 15:39:24 -04:00
Erimel
74f1d8ed61 Drift compensation tracker and HMD requirement (#750) 2023-07-20 15:32:52 -04:00
Erimel
ad41c46092 Bundle & Receive OSCTrackers (#773) 2023-07-20 15:25:14 -04:00
Erimel
f3346bbeee Make displayName consistent via hash (#775) 2023-07-20 15:14:52 -04:00
Erimel
ca6f82492d Refresh headShift when setting trackers (#781) 2023-07-20 15:10:08 -04:00
Uriel
02acc6ede1 Improvements on the Autobone GUI (#776)
Co-authored-by: Butterscotch! <bscotchvanilla@gmail.com>
2023-07-20 11:19:43 +03:00
Uriel
d9c631fcf6 Fix CI release bundling (#777) 2023-07-20 11:15:55 +03:00
Uriel
ea9df2c31f Add accessibility settings (#774) 2023-07-20 11:14:51 +03:00
Collin
e18bd2d382 Better tap detection (#778) 2023-07-20 11:06:48 +03:00
Uriel
b6a681b1bb Save config and logs on appdata folder (#770) 2023-07-20 11:02:52 +03:00
Uriel
793dd374f8 Update appstream metadata (#762) 2023-07-20 11:00:52 +03:00
Uriel
97b617bb24 Add me to GUI codeowners (#782) 2023-07-20 10:59:47 +03:00
lucas lelievre
1aa32b8264 Fix Scroll on mobile (#785) 2023-07-20 10:59:23 +03:00
Uriel
5c2c6749c3 Move SteamVR code to desktop subproject (#755) 2023-07-19 16:32:00 -04:00
Uriel
e472b12e83 Add rust file logging (#752) 2023-07-19 16:11:48 -04:00
MarcoM
75fc1c37d3 fix: filter non imu in connected tracker (#763) 2023-07-17 17:54:16 -04:00
Erimel
9c4b9b401e Don't create new skeletons (#761) 2023-07-15 23:37:14 -04:00
Erimel
4243951214 Prioritize non-computed head tracker (#751)
Co-authored-by: Uriel <urielfontan2002@gmail.com>
2023-07-15 23:07:39 -04:00
Collin
2f61d5b4b8 Mocap mode (#749)
Co-authored-by: Butterscotch! <bscotchvanilla@gmail.com>
Co-authored-by: Erimel <marioluigivideo@gmail.com>
Co-authored-by: Uriel <urielfontan2002@gmail.com>
2023-07-14 22:45:18 +03:00
Uriel
35e6b8b721 Manual mounting overhaul (#745) 2023-07-14 22:30:26 +03:00
Eiren Rain
82db6a1ff5 Separate the server in subprojects (#727) 2023-07-14 20:22:49 +02:00
Uriel
17be65d2a2 Merge branch 'main' into subprojects 2023-07-10 15:21:02 -03:00
Erimel
db2f7fbd49 Don't log non-imu trackers' drift (#759) 2023-07-09 20:36:12 -04:00
Uriel
95f1bfd52f Merge branch 'main' into subprojects 2023-07-09 21:30:10 -03:00
Erimel
7511e0098e Fix chest tracker SteamVR battery (#772)
Co-authored-by: Butterscotch! <bscotchvanilla@gmail.com>
2023-07-09 20:17:46 -04:00
Uriel
f0f2731387 second fix 2023-07-07 21:47:16 -03:00
Uriel
5f3182e2c6 fix merge 2023-07-07 21:43:53 -03:00
Uriel
8b4a2843a1 Merge branch 'main' into subprojects 2023-07-07 19:54:50 -03:00
Collin Kees
d227b97843 Adjusted com calcs (#769) 2023-07-07 14:16:12 -04:00
Eiren Rain
7f11534fc1 Fix status not working (#765) 2023-07-04 21:26:25 +02:00
Uriel
af2cf10c16 thats weird... 2023-07-04 16:19:58 -03:00
Eiren Rain
055fd78d4d New Pontoon translations (#739) 2023-07-04 19:28:05 +02:00
phoebe
26b472893d Pontoon: Update Turkish (tr) localization of GUI
Co-authored-by: Stupid <dfgfdgrwEHRE@gmail.com>
Co-authored-by: phoebe <brnjyhvmn@gmail.com>
2023-07-04 17:24:55 +00:00
Kamilake
26fbbebb89 Pontoon: Update Korean (ko) localization of GUI
Co-authored-by: Kamilake <exjang0@gmail.com>
2023-07-04 17:24:55 +00:00
FennT
2eba83411c Pontoon: Update Arabic (ar) localization of GUI
Co-authored-by: FennT <0094falcon@gmail.com>
2023-07-04 17:24:55 +00:00
Vyolex
80ffa1a9b4 Pontoon: Update Dutch (nl) localization of GUI
Co-authored-by: Vyolex <25586367+Vyolex@users.noreply.github.com>
2023-07-04 17:24:55 +00:00
Uriel
1b06799315 fix extra space on Norwegian 2023-07-04 17:24:55 +00:00
Erimel
046b0b8be3 Pontoon: Update French (fr) localization of GUI
Co-authored-by: Erimel <loukalemire@gmail.com>
2023-07-04 17:24:55 +00:00
Meow Wei
f4b16f2cdb Pontoon: Update Traditional Chinese (zh-Hant) localization of GUI
Co-authored-by: Meow Wei <medicalwei@gmail.com>
2023-07-04 17:24:55 +00:00
HappyTownCats
b266afedea Pontoon: Update Ukrainian (uk) localization of GUI
Co-authored-by: Uriel <urielfontan2002@gmail.com>
Co-authored-by: HappyTownCats <HappyTownCats@gmail.com>
Co-authored-by: nyarl <nyarl@outlook.com>
2023-07-04 17:24:55 +00:00
Kaiera huzu
646eb94f72 Pontoon: Update Thai (th) localization of GUI
Co-authored-by: Kaiera huzu <patsakorn9090@gmail.com>
2023-07-04 17:24:55 +00:00
Hornil
1bf79fc72d Pontoon: Update Russian (ru) localization of GUI
Co-authored-by: Uriel <urielfontan2002@gmail.com>
Co-authored-by: SummerArtz <summerpzmail@gmail.com>
Co-authored-by: Hornil <vixlyaev@gmail.com>
2023-07-04 17:24:55 +00:00
ReDoX
cddbb93c99 Pontoon: Update Polish (pl) localization of GUI
Co-authored-by: ReDoX <redox01@o2.pl>
2023-07-04 17:24:55 +00:00
beq
5463eee217 Pontoon: Update Japanese (ja) localization of GUI
Co-authored-by: 白貓 <yen.max@gmail.com>
Co-authored-by: beq <beqbdean@gmail.com>
Co-authored-by: 空影/Sorakage <sorakage033@gmail.com>
2023-07-04 17:24:55 +00:00
namakeingo
c93709f80f Pontoon: Update Hebrew (he) localization of GUI
Co-authored-by: namakeingo <namakeingo@gmail.com>
2023-07-04 17:24:55 +00:00
namakeingo
f6b915a88e Pontoon: Update Greek (el) localization of GUI
Co-authored-by: namakeingo <namakeingo@gmail.com>
Co-authored-by: Uriel <urielfontan2002@gmail.com>
Co-authored-by: odydoubouridis <odydoubouridis@gmail.com>
2023-07-04 17:24:55 +00:00
thearxari
9231356638 Pontoon: Update Czech (cs) localization of GUI
Co-authored-by: thearxari <thearxari@gmail.com>
2023-07-04 17:24:55 +00:00
TheDevMinerTV
7bb32a382a Pontoon: Update German (de) localization of GUI
Co-authored-by: TheDevMinerTV <devminer@devminer.xyz>
Co-authored-by: unlogisch <unlogisch@gmx.ch>
Co-authored-by: Zahnatom <zahnatomletsplay@gmail.com>
2023-07-04 17:24:55 +00:00
Disappear9
a17f651f64 Pontoon: Update Simplified Chinese (zh-Hans) localization of GUI
Co-authored-by: Disappear9 <disappear9@outlook.com>
2023-07-04 17:24:55 +00:00
Gaabbu
c9f0f6e27c Pontoon: Update Portuguese (pt-BR) localization of GUI
Co-authored-by: Gaabbu <gabrielsonada@outlook.com.br>
2023-07-04 17:24:55 +00:00
Erimel
3defd47c29 Improve Autobone upperChest and fix VMC upperChest (#754) 2023-07-04 20:24:50 +03:00
Erimel
3068fada17 Don't ask twice to reset non-imu trackers (#760)
Co-authored-by: Uriel <urielfontan2002@gmail.com>
2023-07-04 20:24:16 +03:00
Uriel
efd20ee7b2 Merge branch 'main' into subprojects 2023-07-03 23:10:19 -03:00
Collin Kees
e71ed5cf6c Acceleration alignment fix (#737)
Co-authored-by: Erimel <marioluigivideo@gmail.com>
Co-authored-by: Butterscotch! <bscotchvanilla@gmail.com>
2023-07-03 19:43:28 -04:00
ImUrX
c076ebabb3 Merge branch 'main' into subprojects 2023-07-02 17:06:53 -03:00
Erimel
0ccd7e260c Add upper chest tracking point (#716) 2023-07-02 14:33:36 +03:00
Uriel
9e650dad08 Merge branch 'main' into subprojects 2023-07-01 23:05:57 -07:00
lucas lelievre
36c4889d75 mobile body proportions (#718)
Co-authored-by: Uriel <urielfontan2002@gmail.com>
2023-07-01 20:29:31 -04:00
Uriel
8da9e63c45 Fix Dropdown not opening (#744) 2023-07-01 19:59:21 -04:00
Uriel
dc22b503e8 Merge branch 'main' into subprojects 2023-06-29 19:04:07 -03:00
Butterscotch!
5e81e3ac4c Make AutoBone more modular and readable (#684) 2023-06-30 00:44:14 +03:00
Uriel
0bd6a9002a Merge branch 'main' into subprojects 2023-06-26 20:26:28 -03:00
Uriel
9c7558cae8 it works then 2023-06-26 23:07:10 +00:00
Uriel
dabb78e545 Fix mobile bugs (#740)
Co-authored-by: lucas lelievre <loucass003@gmail.com>
2023-06-27 00:49:16 +03:00
Evgeniy Zhabotinskiy
582618ee72 Stop unconditionally hogging serial ports (#692) 2023-06-27 00:47:15 +03:00
ImUrX
d89a53ef44 Merge branch 'main' into subprojects 2023-06-26 17:51:22 -03:00
ImUrX
525f29f3c5 add copy script 2023-06-26 17:50:11 -03:00
Erimel
047667432c That's cringe (#742) 2023-06-26 23:10:23 +03:00
Erimel
f4261d5bc2 Clear untranslated keys (#741) 2023-06-24 23:20:40 -04:00
Butterscotch!
c94d71c24f Disable gradle config cache 2023-06-24 21:50:37 -04:00
Butterscotch!
31ff3f4868 Re-revert broken dependency update 2023-06-24 21:25:14 -04:00
Butterscotch!
a6911e072c Fix workflow targeting wrong build directory 2023-06-24 20:43:26 -04:00
Butterscotch!
bf062c9b65 Merge remote-tracking branch 'upstream/main' into pr/727 2023-06-24 20:12:21 -04:00
ImUrX
8945e05354 just delete it then lol 2023-06-16 16:15:12 -03:00
ImUrX
ea3cdb7658 pls work? 2023-06-16 16:07:45 -03:00
ImUrX
ae40121a31 pls work 2023-06-16 15:01:17 -03:00
ImUrX
f64a45fb2e fix unresolved reference from merge 2023-06-16 14:50:25 -03:00
ImUrX
cb19aa17cc forgot server folder 2023-06-16 14:48:56 -03:00
ImUrX
4564671b38 Merge branch 'main' into subprojects 2023-06-16 14:45:26 -03:00
ImUrX
60f74d6d5c fix tests 2023-06-16 14:44:14 -03:00
ImUrX
4450260dd0 make softlink valid 2023-06-15 18:02:19 -03:00
ImUrX
55f030a145 spotless 2023-06-15 17:52:09 -03:00
ImUrX
3038de8a5f Merge branch 'main' into subprojects 2023-06-15 17:39:25 -03:00
ImUrX
338e153834 keep fixing gradle script 2023-06-15 16:33:07 -03:00
ImUrX
544efb6efe fetch tags in gh actions 2023-06-15 15:59:43 -03:00
ImUrX
0e64f1241f Merge branch 'main' into subprojects 2023-06-15 15:38:23 -03:00
ImUrX
ffe530dc94 move bridges to desktop 2023-06-15 15:37:21 -03:00
ImUrX
a8ce510f70 fix soft link 2023-06-15 01:16:32 -03:00
ImUrX
1b17fcbec3 android 2023-06-15 01:16:32 -03:00
ImUrX
01f1d2ee56 im having so much fun 2023-06-15 01:16:31 -03:00
ImUrX
d14a7bb5e7 it runs 2023-06-15 01:16:30 -03:00
ImUrX
a14a2ea253 im ruining everything 2023-06-15 01:16:27 -03:00
Butterscotch!
b67de108e7 Bump versions 2023-06-13 20:30:44 -04:00
Butterscotch!
e4a4f38c15 Disable cache on WebView 2023-06-13 20:30:44 -04:00
Butterscotch!
858354eee8 Revert broken dependency update 2023-06-13 20:30:44 -04:00
Butterscotch!
fcb736d371 Fix gradle build somewhat 2023-06-13 20:30:44 -04:00
Butterscotch!
f6d8026761 Don't cache & try more to allow zooming on GUI 2023-06-13 20:30:44 -04:00
Butterscotch!
cb5e27875c Update Gradle stuff & fix compilation + proguard 2023-06-13 20:30:44 -04:00
Butterscotch!
72f506822a Update Gradle stuff 2023-06-13 20:30:43 -04:00
Butterscotch!
4e942fded5 Revert "Work around TransformNode race condition"
This reverts commit 23a2abbbdcc9a070c6fe907ec56bc2d10a607b27.
2023-06-13 20:30:43 -04:00
Butterscotch!
463e558e7f Enable WebView debugging 2023-06-13 20:30:43 -04:00
Butterscotch!
a1db52144a Work around TransformNode race condition 2023-06-13 20:30:43 -04:00
Butterscotch!
81b7ea0967 Fix screen rotation crashing 2023-06-13 20:30:43 -04:00
Butterscotch!
a489e32828 Fix Gradle build 2023-06-13 20:30:43 -04:00
Butterscotch!
6eaf04ba64 Update version code 2023-06-13 20:30:42 -04:00
Butterscotch!
b8ceaa6bc0 Fix OSC Android fuckery 2023-06-13 20:30:42 -04:00
Butterscotch!
6b7c47d36c Add GUI webview & remove titlebar 2023-06-13 20:30:42 -04:00
Butterscotch!
c0f8fb1758 Add locally hosted web GUI 2023-06-13 20:30:42 -04:00
Butterscotch!
07600f0133 Set version number and add icons 2023-06-13 20:30:42 -04:00
Butterscotch!
3634bedef1 Reduce minimum SDK version to 26 2023-06-13 20:30:42 -04:00
Butterscotch!
e864487246 Add basic support for Android
- Add Android build scripts
- Add Android GUI and `MainActivity`
- Fix Java records
- Fix `Path.of` errors
- Update Main and MainActivity to match better
2023-06-13 20:30:42 -04:00
835 changed files with 65308 additions and 64771 deletions

10
.envrc
View File

@@ -1 +1,9 @@
use flake
if ! has nix_direnv_version || ! nix_direnv_version 2.2.1; then
source_url "https://raw.githubusercontent.com/nix-community/nix-direnv/2.2.1/direnvrc" "sha256-zelF0vLbEl5uaqrfIzbgNzJWGmLzCmYAkInj/LNxvKs="
fi
nix_direnv_watch_file package.json
if ! use flake . --impure
then
echo "devenv could not be built. The devenv environment was not loaded. Make the necessary changes to devenv.nix and hit enter to try again." >&2
fi

5
.gitattributes vendored Normal file
View File

@@ -0,0 +1,5 @@
* text=auto
*.png binary
*.webp binary
*.gif binary

67
.github/CODEOWNERS vendored
View File

@@ -1,30 +1,37 @@
# Global code owner
* @Eirenliel
# Make Loucas the owner of all GUI stuff
/gui/ @loucass003
/package-lock.json @loucass003
# Uriel and Erimel responsible for i18n
/gui/public/i18n/ @ImUrX @Louka3000
/gui/src/i18n/ @ImUrX @Louka3000
/l10n.toml @ImUrX @Louka3000
/gui/src/components/settings/ @Louka3000 @loucass003
# Rust part of the GUI
/gui/src-tauri/ @ImUrX @TheButlah
/Cargo.lock @ImUrX @TheButlah
# Some server code~
/server/ @ButterscotchV @Eirenliel @Louka3000
/server/src/main/java/dev/slimevr/autobone/ @ButterscotchV
/server/src/main/java/dev/slimevr/poserecorder/ @ButterscotchV
/server/src/main/java/dev/slimevr/posestreamer/ @ButterscotchV
/server/src/main/java/dev/slimevr/osc/ @Louka3000
/server/src/main/java/dev/slimevr/tracking/processor/ @Louka3000
/server/src/main/java/dev/slimevr/filtering/ @Louka3000
server/src/main/java/dev/slimevr/config/ @loucass003
# Global code owner
* @Eirenliel
# Make everyone be able to approve SolarXR submodule changes
/solarxr-protocol @ButterscotchV @Erimelowo @loucass003
# Make Loucass the owner of all GUI stuff
/gui/ @loucass003
/pnpm-lock.yaml @loucass003
/pnpm-workspace.yaml @loucass003
# loucass003 and Erimel responsible for i18n
/gui/public/i18n/ @loucass003 @Erimelowo @ImSapphire
/gui/src/i18n/ @loucass003 @Erimelowo
/l10n.toml @loucass003 @Erimelowo
/gui/src/components/settings/ @Erimelowo @loucass003
# Rust part of the GUI
/gui/electron/ @loucass003
# Some server code~
/server/ @ButterscotchV @Eirenliel @Erimelowo
/server/src/main/java/dev/slimevr/autobone/ @ButterscotchV
/server/src/main/java/dev/slimevr/poserecorder/ @ButterscotchV
/server/src/main/java/dev/slimevr/posestreamer/ @ButterscotchV
/server/src/main/java/dev/slimevr/osc/ @Erimelowo
/server/src/main/java/dev/slimevr/tracking/processor/ @Erimelowo
/server/src/main/java/dev/slimevr/filtering/ @Erimelowo
# Linux files
*.nix @loucass003
/flake.lock @loucass003
/dev.slimevr.SlimeVR.metainfo.xml @loucass003
/.envrc @loucass003

3
.github/FUNDING.yml vendored Normal file
View File

@@ -0,0 +1,3 @@
# These are supported funding model platforms
github: SlimeVR

8
.github/dependabot.yml vendored Normal file
View File

@@ -0,0 +1,8 @@
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
# Check for updates to GitHub Actions every week
interval: "weekly"

37
.github/labeler.yml vendored Normal file
View File

@@ -0,0 +1,37 @@
"Area: Continuous Integration":
- changed-files:
- any-glob-to-any-file: ".github/**"
"Area: Application Protocol":
- changed-files:
- any-glob-to-any-file: ["solarxr-protocol"]
"Area: AutoBone":
- changed-files:
- any-glob-to-any-file: "server/core/src/main/java/dev/slimevr/autobone/**"
"Area: Documentation":
- changed-files:
- any-glob-to-any-file: "**/*.md"
"Area: GUI":
- all:
- changed-files:
- all-globs-to-any-file: ["gui/**/*", "!gui/public/i18n/**/*"]
"Area: Hardware Protocol":
- changed-files:
- any-glob-to-any-file: "server/core/src/main/java/dev/slimevr/tracking/trackers/udp/**"
"Area: Server":
- changed-files:
- any-glob-to-any-file: ["server/**", "*gradle*", "gradle/**"]
"Area: Skeletal Model":
- changed-files:
- any-glob-to-any-file: "server/core/src/main/java/dev/slimevr/tracking/processor/**"
"Area: SteamVR Driver":
- changed-files:
- any-glob-to-any-file: "server/desktop/src/main/java/dev/slimevr/desktop/platform/**"
"Area: Translation":
- changed-files:
- any-glob-to-any-file: "gui/public/i18n/**"
"Area: VMC":
- changed-files:
- any-glob-to-any-file: ["server/core/src/main/java/dev/slimevr/osc/Unity*", "server/core/src/main/java/dev/slimevr/osc/VMC*", "server/core/src/main/java/dev/slimevr/osc/VRM*"]
"Area: VRCOSC":
- changed-files:
- any-glob-to-any-file: ["server/core/src/main/java/dev/slimevr/osc/VRC*"]

View File

@@ -1,110 +0,0 @@
name: Build GUI
on:
push:
branches:
- main
paths:
- .github/workflows/build-gui.yml
- gui/**
- package*.json
pull_request:
paths:
- .github/workflows/build-gui.yml
- gui/**
- package*.json
workflow_dispatch:
create:
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version-file: '.node-version'
cache: 'npm'
- name: Build
run: |
npm ci
cd gui
npm run lint
build:
strategy:
fail-fast: false
matrix:
os: [ubuntu-20.04, windows-latest, macos-latest]
runs-on: ${{ matrix.os }}
env:
# Don't mark warnings as errors
CI: false
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
- if: matrix.os == 'ubuntu-20.04'
name: Set up Linux dependencies
uses: awalsh128/cache-apt-pkgs-action@latest
with:
packages: libgtk-3-dev webkit2gtk-4.0 libappindicator3-dev librsvg2-dev patchelf
# Increment to invalidate the cache
version: 1.0
# Enables a workaround to attempt to run pre and post install scripts
execute_install_scripts: true
# Disables uploading logs as a build artifact
debug: false
- name: Cache cargo dependencies
uses: Swatinem/rust-cache@v2
with:
shared-key: "${{ matrix.os }}"
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version-file: '.node-version'
cache: 'npm'
- name: Build
run: |
npm ci
npm run skipbundler
- if: matrix.os == 'windows-latest'
name: Upload a Build Artifact (Windows)
uses: actions/upload-artifact@v3
with:
# Artifact name
name: SlimeVR-GUI-Windows
# A file, directory or wildcard pattern that describes what to upload
path: target/release/slimevr.exe
- if: matrix.os == 'ubuntu-20.04'
name: Upload a Build Artifact (Linux)
uses: actions/upload-artifact@v3
with:
# Artifact name
name: SlimeVR-GUI-Linux
# A file, directory or wildcard pattern that describes what to upload
path: target/release/slimevr
- if: matrix.os == 'macos-latest'
name: Upload a Build Artifact (macOS)
uses: actions/upload-artifact@v3
with:
# Artifact name
name: SlimeVR-GUI-macOS
# A file, directory or wildcard pattern that describes what to upload
path: target/release/slimevr

263
.github/workflows/build.yml vendored Normal file
View File

@@ -0,0 +1,263 @@
name: SlimeVR Full Build
on:
push:
branches: [main]
tags: ["v*"]
pull_request:
workflow_dispatch:
jobs:
setup-matrix:
name: Configure Build Matrix
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.set-matrix.outputs.matrix }}
steps:
- id: set-matrix
shell: bash
run: |
BASE='[{"os":"ubuntu-22.04","platform":"linux"},{"os":"windows-latest","platform":"windows"},{"os":"macos-latest","platform":"macos"}]'
EXTRA='[{"os":"ubuntu-22.04-arm","platform":"linux"},{"os":"windows-11-arm","platform":"windows"}]'
if [[ "${{ github.ref }}" == refs/tags/v* || "${{ github.ref }}" == refs/heads/main || "${{ github.event_name }}" == "workflow_dispatch" ]]; then
RESULT=$(echo "$BASE $EXTRA" | jq -c -s 'add')
else
RESULT=$(echo "$BASE" | jq -c '.')
fi
echo "matrix={\"include\":$RESULT}" >> "$GITHUB_OUTPUT"
gui-checks:
name: Gui Checks
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6
with:
submodules: recursive
- name: Setup PNPM
uses: pnpm/action-setup@v4
- name: Setup Node
uses: actions/setup-node@v6
with:
node-version-file: '.node-version'
cache: 'pnpm'
- name: GUI Lint
run: pnpm i && cd gui && pnpm run lint
java-checks:
name: Java Checks
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6
with:
submodules: recursive
- name: Set up JDK 17
uses: actions/setup-java@v5
with:
java-version: '17'
distribution: 'adopt'
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v5
- name: Java Spotless Check
run: ./gradlew spotlessCheck --build-cache
build-server-jar:
name: Build Desktop Server
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6
with:
submodules: recursive
- name: Set up JDK 17
uses: actions/setup-java@v5
with:
java-version: '17'
distribution: 'adopt'
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v5
- name: Build ShadowJar
run: ./gradlew :server:desktop:shadowJar --build-cache
- name: Test with Gradle
run: ./gradlew :server:desktop:test
- name: Upload Server Jar
uses: actions/upload-artifact@v6
with:
name: server-jar
path: |
server/desktop/build/libs/slimevr.jar
server/core/resources
build-gui-frontend:
name: Build GUI Assets
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6
with:
submodules: recursive
- name: Setup PNPM
uses: pnpm/action-setup@v4
- name: Setup Node
uses: actions/setup-node@v6
with:
node-version-file: '.node-version'
cache: 'pnpm'
- name: Build JS
env:
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
run: pnpm i && cd gui && pnpm run build
- name: Tar GUI Dist
run: tar -czf slimevr-gui-dist.tar.gz -C gui/out .
- name: Upload GUI Dist
uses: actions/upload-artifact@v6
with:
name: gui-dist
path: slimevr-gui-dist.tar.gz
package-desktop:
name: Package Desktop (${{ matrix.platform }} - ${{ matrix.os }})
needs: [setup-matrix, build-server-jar, build-gui-frontend]
strategy:
fail-fast: false
matrix: ${{ fromJson(needs.setup-matrix.outputs.matrix) }}
runs-on: ${{ matrix.os }}
steps:
- name: Checkout
uses: actions/checkout@v6
with:
submodules: recursive
- name: Setup PNPM
uses: pnpm/action-setup@v4
- name: Setup Node
uses: actions/setup-node@v6
with:
node-version-file: '.node-version'
cache: 'pnpm'
- name: Download Server Jar
uses: actions/download-artifact@v6
with:
name: server-jar
path: server
- name: Download GUI Dist
uses: actions/download-artifact@v6
with:
name: gui-dist
- name: Extract GUI for Electron
shell: bash
run: mkdir -p gui/out && tar -xzf slimevr-gui-dist.tar.gz -C gui/out
- name: Run Electron Builder
shell: bash
env:
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
run: |
mkdir -p gui/dist/artifacts/linux/ \
gui/dist/artifacts/win \
gui/dist/artifacts/mac
cd gui
pnpm i
pnpm exec electron-builder --${{ matrix.platform }} \
${{ matrix.platform == 'macos' && '--universal' || '' }} \
--publish never
- name: Collect and Rename Artifacts
shell: bash
run: |
SRC_DIR="${{ github.workspace }}/gui/dist/artifacts"
DEST_DIR="${{ github.workspace }}/release-out"
mkdir -p "$DEST_DIR"
if [ "${{ matrix.platform }}" == "windows" ]; then
[[ "${{ matrix.os }}" == *"arm"* ]] && SUFFIX="win-aarch64" || SUFFIX="win64"
cp "$SRC_DIR"/win/*.zip "$DEST_DIR/SlimeVR-$SUFFIX.zip"
elif [ "${{ matrix.platform }}" == "linux" ]; then
for f in "$SRC_DIR"/linux/*; do
[ -d "$f" ] && continue
BASE=$(basename "$f")
NEW_NAME=$(echo "$BASE" | sed -e 's/x86_64/amd64/g' -e 's/arm64/aarch64/g')
cp "$f" "$DEST_DIR/$NEW_NAME"
done
elif [ "${{ matrix.platform }}" == "macos" ]; then
cp "$SRC_DIR"/mac/*.dmg "$DEST_DIR/SlimeVR-mac.dmg"
fi
echo "Collected files:"
ls -lh "$DEST_DIR"
- name: Upload For Release
uses: actions/upload-artifact@v6
with:
name: release-${{ matrix.platform }}-${{ matrix.os }}
path: release-out/*
bundle-android:
name: Build Android APK
needs: [build-gui-frontend]
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6
with:
submodules: recursive
- name: Set up JDK 17
uses: actions/setup-java@v5
with:
java-version: '17'
distribution: 'adopt'
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v5
- name: Download GUI Dist
uses: actions/download-artifact@v6
with:
name: gui-dist
- name: Extract GUI for Android
run: mkdir -p gui/out && tar -xzf slimevr-gui-dist.tar.gz -C gui/out
- name: Build APK
run: ./gradlew :server:android:build --build-cache
env:
ANDROID_STORE_FILE: ${{ secrets.ANDROID_STORE_FILE }}
ANDROID_STORE_PASSWD: ${{ secrets.ANDROID_STORE_PASSWD }}
ANDROID_KEY_ALIAS: ${{ secrets.ANDROID_KEY_ALIAS }}
ANDROID_KEY_PASSWD: ${{ secrets.ANDROID_KEY_PASSWD }}
- name: Test with Gradle
run: ./gradlew test
- name: Prepare APK
run: cp server/android/build/outputs/apk/release/*.apk ./SlimeVR-android.apk
- name: Upload APK
uses: actions/upload-artifact@v6
with:
name: release-android
path: SlimeVR-android.apk
create-release:
name: Finalize Release Draft
needs: [package-desktop, bundle-android, build-server-jar, build-gui-frontend]
if: startsWith(github.ref, 'refs/tags/')
runs-on: ubuntu-latest
steps:
- name: Download All Release Artifacts
uses: actions/download-artifact@v6
with:
pattern: release-*
path: release-out
merge-multiple: true
- name: Download Server Jar
uses: actions/download-artifact@v6
with:
name: server-jar
path: server
- name: Download GUI Dist
uses: actions/download-artifact@v6
with:
name: gui-dist
- name: Create GitHub Release
uses: softprops/action-gh-release@v2
with:
draft: true
generate_release_notes: true
files: |
release-out/*
server/desktop/build/libs/slimevr.jar
slimevr-gui-dist.tar.gz

View File

@@ -0,0 +1,34 @@
# This workflow will build the update manifest for the updater and update a GitHub release
name: Generate update manifest
on:
workflow_dispatch:
release:
types: [released]
jobs:
generate-manifest:
runs-on: ubuntu-22.04
steps:
- uses: actions/setup-node@v6
with:
node-version: '22.x'
- name: Generate update-manifest.json
run: |
npx @slimevr/update-manifest-generator@latest
- uses: actions/upload-artifact@v6
with:
name: "update-manifest.json"
path: ./update-manifest.json
- name: Upload update-manifest.json to release
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ secrets.UPDATE_MANIFEST_RELEASE_TAG }}
files: ./update-manifest.json
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -1,284 +0,0 @@
# This workflow will build a Java project with Gradle
# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-gradle
name: SlimeVR Server
on:
push:
branches:
- main
pull_request:
workflow_dispatch:
create:
jobs:
test:
strategy:
matrix:
os: [ubuntu-latest, windows-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
java-version: "17"
distribution: "adopt"
- name: Setup Gradle
uses: gradle/gradle-build-action@v2
- name: Check code formatting
run: ./gradlew spotlessCheck
- name: Test with Gradle
run: ./gradlew test
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
java-version: "17"
distribution: "adopt"
- name: Setup Gradle
uses: gradle/gradle-build-action@v2
- name: Build with Gradle
run: ./gradlew shadowJar
- name: Upload the Server JAR as a Build Artifact
uses: actions/upload-artifact@v3
with:
# Artifact name
name: "SlimeVR-Server" # optional, default is artifact
# A file, directory or wildcard pattern that describes what to upload
path: server/build/libs/*
- name: Upload to draft release
uses: softprops/action-gh-release@v1
if: startsWith(github.ref, 'refs/tags/')
with:
draft: true
generate_release_notes: true
files: |
server/build/libs/*
bundle-linux:
runs-on: ubuntu-20.04
needs: [build, test]
if: contains(fromJSON('["workflow_dispatch", "create"]'), github.event_name)
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
- uses: actions/download-artifact@v3
with:
name: "SlimeVR-Server"
path: server/build/libs/
- name: Set up Linux dependencies
uses: awalsh128/cache-apt-pkgs-action@latest
with:
packages: libgtk-3-dev webkit2gtk-4.0 libappindicator3-dev librsvg2-dev patchelf libfuse2
# Increment to invalidate the cache
version: 1.0
# Enables a workaround to attempt to run pre and post install scripts
execute_install_scripts: true
# Disables uploading logs as a build artifact
debug: false
- name: Cache cargo dependencies
uses: Swatinem/rust-cache@v2
with:
shared-key: "ubuntu-20.04"
- name: Use Node.js
uses: actions/setup-node@v3
with:
node-version-file: '.node-version'
cache: 'npm'
- name: Build
run: |
npm ci
npm run tauri build
- uses: actions/upload-artifact@v3.1.0
with:
name: SlimeVR-GUI-Deb
path: target/release/bundle/deb/slimevr*.deb
- name: Install appimage-builder
run: |
wget "https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage"
chmod a+x appimagetool-x86_64.AppImage
sudo mv appimagetool-x86_64.AppImage /usr/local/bin/appimagetool
- name: Modify and Build AppImage
run: |
cd target/release/bundle/appimage
chmod a+x slimevr*.AppImage
./slimevr*.AppImage --appimage-extract
cp $( git rev-parse --show-toplevel )/server/build/libs/slimevr.jar squashfs-root/slimevr.jar
chmod 644 squashfs-root/slimevr.jar
appimagetool squashfs-root slimevr*.AppImage
- uses: actions/upload-artifact@v3.1.0
with:
name: SlimeVR-GUI-AppImage
path: target/release/bundle/appimage/slimevr*.AppImage
- name: Prepare for release
if: startsWith(github.ref, 'refs/tags/')
run: |
cp target/release/bundle/appimage/slimevr*.AppImage ./SlimeVR-amd64.appimage
cp target/release/bundle/deb/slimevr*.deb ./SlimeVR-amd64.deb
- name: Upload to draft release
uses: softprops/action-gh-release@v1
if: startsWith(github.ref, 'refs/tags/')
with:
draft: true
generate_release_notes: true
files: |
./SlimeVR-amd64.appimage
./SlimeVR-amd64.deb
bundle-mac:
runs-on: macos-latest
needs: [build, test]
if: contains(fromJSON('["workflow_dispatch", "create"]'), github.event_name)
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
- uses: actions/download-artifact@v3
with:
name: "SlimeVR-Server"
path: server/build/libs/
- name: Cache cargo dependencies
uses: Swatinem/rust-cache@v2
with:
shared-key: "macos-latest"
- name: Use Node.js
uses: actions/setup-node@v3
with:
node-version-file: '.node-version'
cache: 'npm'
- name: Build
run: |
npm ci
npm run tauri build -- "--target universal-apple-darwin"
- name: Modify Application
run: |
cd target/release/bundle/macos/slimevr.app/Contents/MacOS
cp $( git rev-parse --show-toplevel )/server/build/libs/slimevr.jar ./
cd ../../../../dmg/
./bundle_dmg.sh --volname slimevr --icon slimevr 180 170 --app-drop-link 480 170 \
--window-size 660 400 --hide-extension ../macos/slimevr.app \
--volicon ../macos/slimevr.app/Contents/Resources/icon.icns --skip-jenkins \
--eula ../../../../LICENSE-MIT slimevr.dmg ../macos/slimevr.app
- uses: actions/upload-artifact@v3.1.0
with:
name: SlimeVR-GUI-MacApp
path: target/release/bundle/macos/slimevr*.app
- uses: actions/upload-artifact@v3.1.0
with:
name: SlimeVR-GUI-MacDmg
path: target/release/bundle/dmg/slimevr.dmg
- name: Prepare for release
if: startsWith(github.ref, 'refs/tags/')
run: |
cp target/release/bundle/dmg/slimevr.dmg ./SlimeVR-mac.dmg
- name: Upload to draft release
uses: softprops/action-gh-release@v1
if: startsWith(github.ref, 'refs/tags/')
with:
draft: true
generate_release_notes: true
files: |
./SlimeVR-mac.dmg
bundle-windows:
runs-on: windows-latest
needs: [build, test]
if: contains(fromJSON('["workflow_dispatch", "create"]'), github.event_name)
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
- uses: actions/download-artifact@v3
with:
name: "SlimeVR-Server"
path: server/build/libs/
- name: Cache cargo dependencies
uses: Swatinem/rust-cache@v2
with:
shared-key: "windows-latest"
- name: Use Node.js
uses: actions/setup-node@v3
with:
node-version-file: '.node-version'
cache: 'npm'
- name: Build
run: |
npm ci
npm run skipbundler
- name: Bundle to zips
shell: bash
run: |
mkdir SlimeVR
cp gui/src-tauri/icons/icon.ico ./SlimeVR/run.ico
cp server/build/libs/slimevr.jar ./SlimeVR/slimevr.jar
cp server/resources/* ./SlimeVR/
cp target/release/slimevr.exe ./SlimeVR/
7z a -tzip SlimeVR-win64.zip ./SlimeVR/
mv ./SlimeVR/slimevr.exe ./SlimeVR/slimevr-ui.exe
7z a -tzip SlimeVR.zip ./SlimeVR/
- uses: actions/upload-artifact@v3.1.0
with:
name: SlimeVR-GUI-Windows
path: ./SlimeVR*.zip
- name: Upload to draft release
uses: softprops/action-gh-release@v1
if: startsWith(github.ref, 'refs/tags/')
with:
draft: true
generate_release_notes: true
files: |
./SlimeVR-win64.zip
./SlimeVR.zip

22
.github/workflows/label.yml vendored Normal file
View File

@@ -0,0 +1,22 @@
# This workflow will triage pull requests and apply a label based on the
# paths that are modified in the pull request.
#
# To use this workflow, you will need to set up a .github/labeler.yml
# file with configuration. For more information, see:
# https://github.com/actions/labeler
name: Labeler
on: [pull_request_target]
jobs:
label:
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: write
steps:
- uses: actions/labeler@v6
with:
repo-token: "${{ secrets.GITHUB_TOKEN }}"

View File

@@ -3,22 +3,19 @@ on:
push:
branches:
- pontoon
jobs:
pull_request:
if: ${{ github.repository == 'SlimeVR/SlimeVR-Server' }}
runs-on: ubuntu-latest
permissions:
pull-requests: write
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v6
with:
submodules: recursive
- uses: repo-sync/pull-request@v2
with:
destination_branch: "main"
pr_title: "New Pontoon translations"
pr_body: "Please don't squash me 🥺"
pr_label: "Area: Translation"
github_token: ${{ secrets.PONTOON_BOT_KEY }}
- name: pull-request
env:
GH_TOKEN: ${{ secrets.PONTOON_BOT_KEY }}
run: |
gh_pr_up() { gh pr create "$@" --label "Area: Translation" --base main || gh pr edit "$@"; }
gh_pr_up --title "New Pontoon translations" --body "Please don't squash me 🥺"

View File

@@ -15,7 +15,7 @@ jobs:
contents: write
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v6
with:
ref: pontoon
submodules: recursive
@@ -24,7 +24,7 @@ jobs:
- name: Rebase
run: |
git config --local user.name "slimevr-bot"
git config --local user.email pantoon@slimevr.dev
git config --local user.email 'pantoon@slimevr.dev'
git fetch origin main
git rebase origin/main
git submodule update
@@ -36,3 +36,4 @@ jobs:
commit-message: "update"
force-push: "true"
name: "slimevr-bot"
email: "pantoon@slimevr.dev"

17
.gitignore vendored
View File

@@ -17,6 +17,7 @@
# VSCode stuff
/.vscode/settings.json
/.vscode/launch.json
# Ignore eclipse stuff
.project
@@ -27,12 +28,22 @@
/node_modules
.husky
# kotlin stuff
/.kotlin
# ignore gradle build folder
build/
# Rust build artifacts
/target
# direnv has been claimed for Nix usage
.direnv/
.devenv
# Ignore Android local properties
local.properties
# Ignore temporary config
vrconfig.yml.tmp
# Nixos
.bin/

33
.husky/pre-commit Executable file
View File

@@ -0,0 +1,33 @@
YELLOW="\033[1;33m"
GREEN="\033[1;32m"
RESET="\033[0m"
if git rev-parse -q --verify MERGE_HEAD; then
echo -e "${YELLOW}Skipping precommit hook because of merge${RESET}"
exit 0
fi
APP_PRE_COMMIT_OPTIONS="$(dirname "$0")/_/pre-commit.options"
if ! [ -f "$APP_PRE_COMMIT_OPTIONS" ]; then
echo -e "${YELLOW}\nSkipping pre-commit hook."
echo -e "If you want to use pre-commit for lint-staged, run:\n"
echo -e " ${GREEN}echo -e 'APP_LINT=true;' > ${APP_PRE_COMMIT_OPTIONS}${RESET}"
echo -e "${YELLOW}\nIt will add some delay before committing!\n${RESET}"
exit 0
fi
source $APP_PRE_COMMIT_OPTIONS
if [ -n "${APP_LINT}" ] && [ "${APP_LINT}" == "true" ]; then
echo -e "${GREEN}[husky] [pre-commit] [lint-staged]${RESET}"
case "$(uname -sr)" in
CYGWIN*|MINGW*|MINGW32*|MSYS*)
npx.cmd lint-staged
;;
*)
npx lint-staged
;;
esac
fi

9
.lintstagedrc.mjs Normal file
View File

@@ -0,0 +1,9 @@
export default {
'server/**/*.{java,kt,kts}': (filenames) =>
filenames.map(
(filename) =>
`./gradlew${
process.platform === 'win32' ? '.bat' : ''
} spotlessApply "-PspotlessIdeHook=${filename}"`
),
};

View File

@@ -1 +1 @@
18.12.1
22.17.0

1
.npmrc Normal file
View File

@@ -0,0 +1 @@
update-notifier=false

View File

@@ -7,10 +7,10 @@
"gaborv.flatbuffers",
"dbaeumer.vscode-eslint",
"esbenp.prettier-vscode",
"rust-lang.rust-analyzer",
"bradlc.vscode-tailwindcss",
"EditorConfig.EditorConfig",
"macabeus.vscode-fluent",
"redhat.vscode-yaml"
],
// List of extensions recommended by VS Code that should not be recommended for users of this workspace.
"unwantedRecommendations": []

View File

@@ -6,9 +6,7 @@ This document describes essential knowledge required to contribute to the SlimeV
- [Git](https://git-scm.com/downloads)
- [Java v17+](https://adoptium.net/temurin/releases/)
- [Node.js v16+](https://nodejs.org) (We recommend the use of `nvm` instead of installing Node.js directly)
- [Microsoft Edge WebView2](https://developer.microsoft.com/en-us/microsoft-edge/webview2/#download-section) or `webkit2gtk` for Linux
- [Rust](https://rustup.rs)
- [Node.js v16.9+](https://nodejs.org) (We recommend the use of `nvm` instead of installing Node.js directly)
## Cloning the code
First, clone the codebase using git in a terminal in the folder you want.
@@ -24,6 +22,8 @@ Now you can open the codebase in [IDEA](https://www.jetbrains.com/idea/download/
### Java (server)
Before contributing to the server, read [server/README.md](server/README.md) for an overview of its architecture and design guidelines.
The Java code is built with `gradle`, a CLI tool that manages java projects and their
dependencies.
- You can run the server by running `./gradlew run` in your IDE's terminal.
@@ -32,12 +32,13 @@ be at `server/build/libs/slimevr.jar` (you can ignore `server.jar`).
(Note: Your IDE may be able to do all of the above for you.)
### Tauri (gui)
### Electron (gui)
- Run `npm install` in your IDE's terminal to download and install dependencies.
- To launch the GUI in dev mode, run `npm run gui`.
- Finally, to compile for production, run `npm run tauri build`. The result
will be at `target/release/slimevr.exe`.
- Activate corepack (included with Node.JS) via `corepack enable` (might require administrator permissions)
- Run `pnpm i` in your IDE's terminal to download and install dependencies.
- To launch the GUI in dev mode, run `pnpm gui`.
- Finally, to compile for production, run `pnpm package:build`. The result
will be at `dist/artifacts/` content will change depending of the platform.
## Code style
@@ -83,12 +84,12 @@ Import the formatting settings defined in `spotless.xml`, like this:
Eclipse will only do a subset of the checks in `spotless`, so you may still want to do
`./gradlew spotlessApply` if you ever see an error from spotless.
### Tauri (gui)
### Electron (gui)
We use ESLint and Prettier to format GUI code.
- First, go into the GUI's directory with your terminal by running `cd gui`.
- To check code formatting, run `npm run lint`.
- To fix code formatting, run `npm run lint:fix` and `npm run format`
- To check code formatting, run `pnpm run lint`.
- To fix code formatting, run `pnpm run lint:fix` and `pnpm run format`
Don't forget to run `cd ..` to return to the root directory.
@@ -104,6 +105,7 @@ When touching SolarXR:
- After editing files, you should run `cd solarxr-protocol`, then either run
`./generate-flatbuffer.ps1` (Windows) or `./generate-flatbuffer.sh` (Linux/OSX)
- Make sure to commit your changes inside the submodule.
- To make sure the gui use the latest generated code, run `pnpm i`.
## Code Licensing
SlimeVR uses dual MIT and Apache-2.0 license. Be sure that any code that you reference,
@@ -114,3 +116,9 @@ licensed under `GPL-v3`.
## Discord
We use discord *a lot* to coordinate and discuss development. Come join us at
https://discord.gg/SlimeVR!
## Use of AI
We DO NOT accept contributions that are generated with AI (for example, "vibe-coding").
If you do use AI, and you believe your usage of AI is reasonable, you must clearly disclose
how you used AI in your submission.

4196
Cargo.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,13 +0,0 @@
[workspace]
# Use 2021 edition resolver, better resolves crate features.
resolver = "2"
# A list of all rust crates in the workspace.
members = ["gui/src-tauri"]
# These settings can be inherited by workspace members
[workspace.package]
edition = "2021"
license = "MIT OR Apache-2.0"
rust-version = "1.65" # This version stabilized GATs and let-else
repository = "https://github.com/SlimeVR/SlimeVR-Server"

View File

@@ -22,6 +22,8 @@ Latest setup instructions are [in our docs](https://docs.slimevr.dev/server/inde
## Building & Contributing
For information on building and contributing to the codebase, see [CONTRIBUTING.md](CONTRIBUTING.md).
For an overview of the server architecture and design guidelines, see [server/README.md](server/README.md).
## Translating
Translation is done via Pontoon at [i18n.slimevr.dev](https://i18n.slimevr.dev/). Please join our [Discord translation forum](https://discord.com/channels/817184208525983775/1050413434249949235) to coordinate.
@@ -47,6 +49,11 @@ on SlimeVR, you need to be aware of them:**
Please refer to the [LICENSE-MIT] and [LICENSE-APACHE] files if you are at any point
uncertain what the exact requirements are.
## Trademark and Logo use
**SlimeVR is a trademark or a registered trademark of SlimeVR B.V. Usage of SlimeVR software, hardware, or other intellectual property in this or other repositories does not grant you the right to use SlimeVR trademark as your own.**
For more information, please refer to the [TRADEMARK].
## Contributions
Any contributions submitted for inclusion in this repository will be dual-licensed under
either:
@@ -64,3 +71,7 @@ okay with this and that you are authorized to provide the above licenses.
[LICENSE-MIT]: LICENSE-MIT
[LICENSE-APACHE]: LICENSE-APACHE
[TRADEMARK]: TRADEMARK.md
*if you read this, u cute*

33
TRADEMARK.md Normal file
View File

@@ -0,0 +1,33 @@
## SlimeVR is a trademark or a registered trademark of SlimeVR B.V.
**Usage of SlimeVR software, hardware, or other intellectual property in this or other repositories does not grant you the right to use SlimeVR trademark as your own.**
The purpose of a trademark is to remove uncertainty for users and customers regarding the product's manufacturer or endorsement. You're not allowed to market your product using SlimeVR name, and your usage of the name should be only factual and descriptive. For example, calling original SlimeVR products SlimeVR or describing compatibility of other products or derivatives. This applies to all products, including software, and hardware including non-official Full-Body Trackers.
**Here are a few _acceptable_ uses of SlimeVR name when selling unofficial Slime trackers:**
* SlimeVR-compatible trackers
* Unofficial SlimeVR trackers / Non-official SlimeVR trackers
* DIY SlimeVR trackers
* Third-party SlimeVR Trackers
* Custom SlimeVR-compatible trackers
* < Your Brand > Slime Trackers
* Using "SlimeVR" as a search tag
**_Unacceptable_ uses include, but are not limited to:**
* SlimeVR store
* Buy SlimeVR
* SlimeVR Trackers
* Original SlimeVR
* Official SlimeVR
* SlimeVR BMI270 (or any other IMU model along with SlimeVR name)
* < Your brand > SlimeVR / < your brand > SlimeVR Trackers
Use of the SlimeVR name that can cause confusion is not allowed in any part of the listing, including, but not limited to: product title, product description, product metadata, site title, site name, site metadata, site texts, social media posts, or other advertisement.
Also, please ensure you use the correct spelling and capitalization: only **"SlimeVR" is acceptable**. Not "Slimevr", "slimevr", or "Slime VR". You're allowed to use the word "slime" as you wish, it's not a trademark.
Please understand that we have an obligation to reduce confusion for the customers, and we believe that our usage terms are generous compared to many other companies and products. This applies to all sellers or derivative products, we do not make exceptions.
---
If you have any questions about SlimeVR trademark or copyrighted materials, you can reach out to us at *tm[at]slimevr.dev*.

View File

@@ -1,26 +1,3 @@
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath("org.jetbrains.kotlinx:atomicfu-gradle-plugin:0.20.2")
}
}
plugins {
kotlin("jvm") version "1.8.21"
}
subprojects {
plugins.apply("kotlinx-atomicfu")
}
dependencies {
implementation(kotlin("stdlib-jdk8"))
}
repositories {
mavenCentral()
}
kotlin {
jvmToolchain(17)
id("org.ajoberstar.grgit")
}

View File

@@ -1,74 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
dev.slimevr.SlimeVR.metainfo.xml by SlimeVR contributors
To the extent possible under law, the person who associated CC0 with
dev.slimevr.SlimeVR.metainfo.xml has waived all copyright and related or neighboring rights
to dev.slimevr.SlimeVR.metainfo.xml.
You should have received a copy of the CC0 legalcode along with this
work. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
-->
<component type="desktop-application">
<id>dev.slimevr.SlimeVR</id>
<name>SlimeVR</name>
<summary>An app for facilitating full-body tracking in virtual reality</summary>
<developer_name>SlimeVR Team</developer_name>
<!-- CC0 so attribution is not required -->
<metadata_license>CC0-1.0</metadata_license>
<project_license>MIT OR Apache-2.0</project_license>
<content_rating type="oars-1.1" />
<url type="homepage">https://slimevr.dev/</url>
<url type="bugtracker">https://github.com/SlimeVR/SlimeVR-Server/issues</url>
<url type="faq">https://docs.slimevr.dev/slimevr101.html</url>
<url type="vcs-browser">https://github.com/SlimeVR/SlimeVR-Server</url>
<url type="translate">https://i18n.slimevr.dev</url>
<url type="help">https://docs.slimevr.dev/server-setup/slimevr-setup.html</url>
<url type="contribute">https://github.com/SlimeVR/SlimeVR-Server/blob/main/CONTRIBUTING.md</url>
<url type="contact">https://discord.gg/SlimeVR</url>
<recommends>
<display_length compare="ge">880</display_length>
</recommends>
<supports>
<control>pointing</control>
<control>keyboard</control>
<control>touch</control>
</supports>
<branding>
<color type="primary">#663499</color>
</branding>
<description>
<p>
<code>SlimeVR</code>
is a set of open hardware sensors and open source software that facilitates full-body
tracking (FBT) in virtual reality. With no base station required, SlimeVR makes wireless
VR FBT affordable and comfortable.
</p>
</description>
<launchable type="desktop-id">dev.slimevr.SlimeVR.desktop</launchable>
<screenshots>
<screenshot type="default">
<caption>The onboarding for the GUI</caption>
<image>https://raw.githubusercontent.com/SlimeVR/SlimeVR-Server/main/assets/img/onboarding.png</image>
</screenshot>
</screenshots>
<releases>
<release version="0.6.2" date="2023-02-17"><url>https://github.com/SlimeVR/SlimeVR-Server/releases/tag/v0.6.2</url></release>
<release version="0.6.1" date="2023-02-12"><url>https://github.com/SlimeVR/SlimeVR-Server/releases/tag/v0.6.1</url></release>
<release version="0.6.0" date="2023-01-05"><url>https://github.com/SlimeVR/SlimeVR-Server/releases/tag/v0.6.0</url></release>
<release version="0.5.1" date="2022-12-12"><url>https://github.com/SlimeVR/SlimeVR-Server/releases/tag/v0.5.1</url></release>
<release version="0.5.0" date="2022-12-07"><url>https://github.com/SlimeVR/SlimeVR-Server/releases/tag/v0.5.0</url></release>
<release version="0.4.0" date="2022-11-24"><url>https://github.com/SlimeVR/SlimeVR-Server/releases/tag/v0.4.0</url></release>
<release version="0.3.1" date="2022-11-22"><url>https://github.com/SlimeVR/SlimeVR-Server/releases/tag/v0.3.1</url></release>
<release version="0.3.0" date="2022-11-16"><url>https://github.com/SlimeVR/SlimeVR-Server/releases/tag/v0.3.0</url></release>
<release version="0.2.1" date="2022-08-24"><url>https://github.com/SlimeVR/SlimeVR-Server/releases/tag/v0.2.1</url></release>
<release version="0.2.0" date="2022-06-28"><url>https://github.com/SlimeVR/SlimeVR-Server/releases/tag/v0.2.0</url></release>
</releases>
</component>

118
flake.lock generated
View File

@@ -1,126 +1,58 @@
{
"nodes": {
"flake-utils": {
"flake-parts": {
"inputs": {
"systems": "systems"
"nixpkgs-lib": "nixpkgs-lib"
},
"locked": {
"lastModified": 1685518550,
"narHash": "sha256-o2d0KcvaXzTrPRIo0kOLV0/QXHhDQ5DTi+OxcjO8xqY=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "a1720a10a6cfe8234c0e93907ffe81be440f4cef",
"lastModified": 1762980239,
"narHash": "sha256-8oNVE8TrD19ulHinjaqONf9QWCKK+w4url56cdStMpM=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "52a2caecc898d0b46b2b905f058ccc5081f842da",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils_2": {
"inputs": {
"systems": "systems_2"
},
"locked": {
"lastModified": 1681202837,
"narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "cfacdce06f30d2b68473a46042957675eebb3401",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1686412476,
"narHash": "sha256-inl9SVk6o5h75XKC79qrDCAobTD1Jxh6kVYTZKHzewA=",
"lastModified": 1756787288,
"narHash": "sha256-rw/PHa1cqiePdBxhF66V7R+WAP8WekQ0mCDG4CFqT8Y=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "21951114383770f96ae528d0ae68824557768e81",
"rev": "d0fc30899600b9b3466ddb260fd83deb486c32f1",
"type": "github"
},
"original": {
"id": "nixpkgs",
"owner": "NixOS",
"ref": "nixos-unstable",
"type": "indirect"
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"nixpkgs-lib": {
"locked": {
"lastModified": 1681358109,
"narHash": "sha256-eKyxW4OohHQx9Urxi7TQlFBTDWII+F+x2hklDOQPB50=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "96ba1c52e54e74c3197f4d43026b3f3d92e83ff9",
"lastModified": 1761765539,
"narHash": "sha256-b0yj6kfvO8ApcSE+QmA6mUfu8IYG6/uU28OFn4PaC8M=",
"owner": "nix-community",
"repo": "nixpkgs.lib",
"rev": "719359f4562934ae99f5443f20aa06c2ffff91fc",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"owner": "nix-community",
"repo": "nixpkgs.lib",
"type": "github"
}
},
"root": {
"inputs": {
"flake-utils": "flake-utils",
"nixpkgs": "nixpkgs",
"rust-overlay": "rust-overlay"
}
},
"rust-overlay": {
"inputs": {
"flake-utils": "flake-utils_2",
"nixpkgs": "nixpkgs_2"
},
"locked": {
"lastModified": 1686364106,
"narHash": "sha256-h4gCQg+jizmAbdg6UPlhxQVk4A7Ar/zoLa0wx3wBya0=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "ba011dd1c5028dbb880bc3b0f427e0ff689e6203",
"type": "github"
},
"original": {
"owner": "oxalica",
"repo": "rust-overlay",
"type": "github"
}
},
"systems": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"systems_2": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
"flake-parts": "flake-parts",
"nixpkgs": "nixpkgs"
}
}
},

127
flake.nix
View File

@@ -1,87 +1,52 @@
{
description = "Server app for SlimeVR ecosystem";
description = "SlimeVR Server & GUI";
inputs.nixpkgs.url = "nixpkgs/nixos-unstable";
inputs.flake-utils.url = "github:numtide/flake-utils";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
flake-parts.url = "github:hercules-ci/flake-parts";
};
inputs.rust-overlay.url = "github:oxalica/rust-overlay";
outputs = inputs@{ self, nixpkgs, flake-parts, ... }:
flake-parts.lib.mkFlake { inherit inputs; } {
systems = [ "x86_64-linux" ];
outputs = {
self,
nixpkgs,
flake-utils,
rust-overlay,
}:
flake-utils.lib.eachDefaultSystem
(
system: let
overlays = [(import rust-overlay)];
pkgs = import nixpkgs {
inherit system overlays;
perSystem = { pkgs, ... }:
let
java = pkgs.javaPackages.compiler.temurin-bin.jdk-24;
runtimeLibs = pkgs: (with pkgs; [
java
alsa-lib at-spi2-atk at-spi2-core cairo cups dbus expat
gdk-pixbuf glib gtk3 libdrm libgbm libglvnd libnotify
libxkbcommon mesa nspr nss pango systemd vulkan-loader
wayland xorg.libX11 xorg.libXcomposite xorg.libXdamage
xorg.libXext xorg.libXfixes xorg.libXrandr xorg.libxcb
xorg.libxshmfence libusb1 udev libxcrypt-legacy
rpm fpm
wineWow64Packages.stable
zlib squashfsTools fakeroot libarchive icu
nodejs_22 pnpm pkg-config python3 gcc gnumake binutils git
pkgs.nodePackages.node-gyp-build
]);
slimeShell = pkgs.buildFHSEnv {
name = "slimevr-env";
targetPkgs = runtimeLibs;
profile = ''
export JAVA_HOME=${java}
export PATH="${java}/bin:$PATH"
# Tell electron-builder to use system tools instead of downloading them
export USE_SYSTEM_FPM=true
export USE_SYSTEM_MKSQUASHFS=true
'';
runScript = "bash";
};
in
{
devShells.default = slimeShell.env;
};
rustTarget = pkgs.rust-bin.fromRustupToolchainFile ./rust-toolchain.toml;
nativeBuildInputs = with pkgs; [
curl
gcc
openssl
pkgconfig
which
zlib
freetype
expat
];
buildInputs = with pkgs; [
appimagekit
atk
cairo
dbus
dbus.lib
dprint
gdk-pixbuf
glib.out
gobject-introspection
gtk3
harfbuzz
libayatana-appindicator-gtk3
libffi
libsoup
openssl.out
pango
pkg-config
treefmt
webkitgtk
zlib
gst_all_1.gstreamer
gst_all_1.gst-plugins-base
gst_all_1.gst-plugins-good
gst_all_1.gst-plugins-bad
# Some nice things to have
exa
fd
jdk17 # JDK17
nodejs
gradle
];
in {
devShells.default = pkgs.mkShell {
nativeBuildInputs =
nativeBuildInputs
++ [
];
buildInputs =
buildInputs
++ [
rustTarget
];
shellHook = ''
alias ls=exa
alias find=fd
'';
};
}
);
};
}

View File

@@ -8,3 +8,16 @@ org.gradle.jvmargs=--add-exports jdk.compiler/com.sun.tools.javac.api=ALL-UNNAME
kotlin.code.style=official
# https://github.com/Kotlin/kotlinx-atomicfu#atomicfu-compiler-plugin
kotlinx.atomicfu.enableJvmIrTransformation=true
android.useAndroidX=true
android.nonTransitiveRClass=true
org.gradle.unsafe.configuration-cache=false
kotlinVersion=2.3.10
spotlessVersion=8.2.1
shadowJarVersion=9.3.1
buildconfigVersion=6.0.7
# We should probably stop using grgit, see:
# https://andrewoberstar.com/posts/2024-04-02-dont-commit-to-grgit/
grgitVersion=5.3.3
wireVersion=5.3.1

Binary file not shown.

View File

@@ -1,6 +1,8 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.4-bin.zip
distributionSha256Sum=f1771298a70f6db5a29daf62378c4e18a17fc33c9ba6b14362e0cdf40610380d
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

27
gradlew vendored
View File

@@ -15,6 +15,8 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
# SPDX-License-Identifier: Apache-2.0
#
##############################################################################
#
@@ -55,7 +57,7 @@
# Darwin, MinGW, and NonStop.
#
# (3) This script is generated from the Groovy template
# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
# within the Gradle project.
#
# You can find Gradle at https://github.com/gradle/gradle/.
@@ -83,7 +85,9 @@ done
# This is normally unused
# shellcheck disable=SC2034
APP_BASE_NAME=${0##*/}
APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit
# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s
' "$PWD" ) || exit
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD=maximum
@@ -130,10 +134,13 @@ location of your Java installation."
fi
else
JAVACMD=java
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
if ! command -v java >/dev/null 2>&1
then
die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
fi
# Increase the maximum file descriptors if we can.
@@ -141,7 +148,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
case $MAX_FD in #(
max*)
# In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
# shellcheck disable=SC3045
# shellcheck disable=SC2039,SC3045
MAX_FD=$( ulimit -H -n ) ||
warn "Could not query maximum file descriptor limit"
esac
@@ -149,7 +156,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
'' | soft) :;; #(
*)
# In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
# shellcheck disable=SC3045
# shellcheck disable=SC2039,SC3045
ulimit -n "$MAX_FD" ||
warn "Could not set maximum file descriptor limit to $MAX_FD"
esac
@@ -198,11 +205,11 @@ fi
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
# Collect all arguments for the java command;
# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of
# shell script including quotes and variable substitutions, so put them in
# double quotes to make sure that they get re-expanded; and
# * put everything else in single quotes, so that it's not re-expanded.
# Collect all arguments for the java command:
# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
# and any embedded shellness will be escaped.
# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
# treated as '${Hostname}' itself on the command line.
set -- \
"-Dorg.gradle.appname=$APP_BASE_NAME" \

22
gradlew.bat vendored Normal file → Executable file
View File

@@ -13,6 +13,8 @@
@rem See the License for the specific language governing permissions and
@rem limitations under the License.
@rem
@rem SPDX-License-Identifier: Apache-2.0
@rem
@if "%DEBUG%"=="" @echo off
@rem ##########################################################################
@@ -43,11 +45,11 @@ set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1
if %ERRORLEVEL% equ 0 goto execute
echo.
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.
echo. 1>&2
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2
echo. 1>&2
echo Please set the JAVA_HOME variable in your environment to match the 1>&2
echo location of your Java installation. 1>&2
goto fail
@@ -57,11 +59,11 @@ set JAVA_EXE=%JAVA_HOME%/bin/java.exe
if exist "%JAVA_EXE%" goto execute
echo.
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.
echo. 1>&2
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2
echo. 1>&2
echo Please set the JAVA_HOME variable in your environment to match the 1>&2
echo location of your Java installation. 1>&2
goto fail

8
gui/.env Normal file
View File

@@ -0,0 +1,8 @@
VITE_FIRMWARE_TOOL_URL=https://fw-tool-api-v2.slimevr.io
VITE_FIRMWARE_TOOL_S3_URL=https://fw-tool-bucket-v2.slimevr.io
FIRMWARE_TOOL_SCHEMA_URL=https://fw-tool-api-v2.slimevr.io/api-json
# VITE_FIRMWARE_TOOL_URL=http://localhost:3000
# VITE_FIRMWARE_TOOL_S3_URL=http://localhost:9099
# FIRMWARE_TOOL_SCHEMA_URL=http://localhost:3000/api-json

View File

@@ -1,43 +0,0 @@
{
"env": {
"browser": true,
"es2021": true,
"jest": true
},
"extends": ["eslint:recommended", "plugin:@typescript-eslint/recommended"],
"parser": "@typescript-eslint/parser",
"parserOptions": {
"ecmaFeatures": {
"jsx": true
},
"ecmaVersion": "latest",
"sourceType": "module"
},
"plugins": ["react-hooks", "@typescript-eslint"],
"rules": {
"react/react-in-jsx-scope": "off",
"react/prop-types": "off",
"spaced-comment": "error",
"quotes": ["error", "single"],
"no-duplicate-imports": "error",
"no-inline-styles": "off",
"@typescript-eslint/no-explicit-any": "off",
"react/no-unescaped-entities": "off",
"camelcase": "error",
"@typescript-eslint/no-unused-vars": [
"warn",
{
"argsIgnorePattern": "^_",
"varsIgnorePattern": "^_"
}
]
},
"settings": {
"import/resolver": {
"typescript": {}
},
"react": {
"version": "detect"
}
}
}

14
gui/.gitignore vendored
View File

@@ -25,5 +25,17 @@ yarn-error.log*
*.log
# vite
/dist
/stats.html
vite.config.ts.timestamp*
electron.vite.config.*.mjs
/dist
# eslint
.eslintcache
# Sentry Config File
.env.sentry-build-plugin
# electron
out/

5
gui/.lintstagedrc.mjs Normal file
View File

@@ -0,0 +1,5 @@
export default {
'**/*.{ts,tsx}': () => 'tsc -p tsconfig.json --noEmit',
'src/**/*.{js,jsx,ts,tsx}': 'eslint --max-warnings=0 --no-warn-ignored --cache --fix',
'**/*.{js,jsx,ts,tsx,css,scss,md,json}': 'prettier --write',
};

70
gui/electron-builder.yml Normal file
View File

@@ -0,0 +1,70 @@
appId: dev.slimevr.SlimeVR
productName: SlimeVR
# Global naming pattern
artifactName: "${productName}-${version}-${os}-${arch}.${ext}"
directories:
output: dist/artifacts/${os}
asar: true
asarUnpack:
- out/main/chunks/*.jar
electronLanguages:
- en-US
files:
- out/**/*
- index.html
- package.json
- node_modules/**
- "!node_modules/*/{README,readme,README.md,readme.md,CHANGELOG,CHANGELOG.md,changelog.md}"
- "!node_modules/*/{test,tests,__tests__,docs,doc,example,examples}"
- "!node_modules/*/.{git,github,vscode,editorconfig,eslintrc,prettierrc}"
- "!node_modules/**/*.{map,ts,tsx,d.ts}"
- "!**/.DS_Store"
linux:
category: Game
artifactName: "${productName}-${arch}.${ext}"
target:
- target: AppImage
- target: deb
- target: rpm
extraFiles:
- from: "../server/desktop/build/libs/slimevr.jar"
to: "."
- from: "./electron/resources/69-slimevr-devices.rules"
to: "."
icon: "./electron/resources/icons"
deb:
depends: [openjdk-17-jre-headless, udev]
afterInstall: "./electron/resources/scripts/postinstall.sh"
afterRemove: "./electron/resources/scripts/postremove.sh"
rpm:
depends: [java-latest-openjdk, udev]
afterInstall: "./electron/resources/scripts/postinstall.sh"
afterRemove: "./electron/resources/scripts/postremove.sh"
win:
artifactName: "${productName}-${os}-${arch}.${ext}"
target: zip
icon: "./electron/resources/icons/icon.ico"
extraFiles:
- from: "../server/desktop/build/libs/slimevr.jar"
to: "."
- from: "../server/core/resources"
to: "."
filter: ["**/*"]
mac:
target: dmg
artifactName: "SlimeVR-mac.${ext}"
x64ArchFiles: "**/register-protocol-handler.node"
icon: "./electron/resources/icons/icon.icns"
extraFiles:
- from: "../server/desktop/build/libs/slimevr.jar"
to: "Resources/slimevr.jar"

View File

@@ -0,0 +1,47 @@
import { defineConfig } from 'electron-vite'
import { resolve } from 'path'
import rendererConfig from './vite.config' // Import your existing React config
export default defineConfig({
main: {
build: {
rollupOptions: {
input: resolve(__dirname, 'electron/main/index.ts'),
external: [
'pino',
'pino-pretty',
'pino-roll',
'commander',
'open'
]
}
}
},
preload: {
build: {
rollupOptions: {
input: resolve(__dirname, 'electron/preload/index.ts'),
output: {
format: 'cjs', // Force CJS for the preload
entryFileNames: 'index.js' // Change back to .js
}
}
}
},
renderer: {
...rendererConfig,
root: '.',
build: {
commonjsOptions: {
// Force Rollup to treat the protocol directory as CommonJS
// even though it's not in node_modules
include: [/solarxr-protocol/, /node_modules/],
// Required for Flatbuffers/Generated code interop
transformMixedEsModules: true,
},
rollupOptions: {
input: resolve(__dirname, 'index.html')
}
}
}
})

1
gui/electron/.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
resources/java-version/JavaVersion.class

12
gui/electron/main/cli.ts Normal file
View File

@@ -0,0 +1,12 @@
import { program } from "commander";
program
.option('-p --path <path>', 'set launch path')
.option(
'--skip-server-if-running',
'gui will not launch the server if it is already running'
)
.allowUnknownOption();
program.parse(process.argv);
export const options = program.opts();

448
gui/electron/main/index.ts Normal file
View File

@@ -0,0 +1,448 @@
import {
app,
BrowserWindow,
dialog,
Menu,
nativeImage,
net,
protocol,
screen,
shell,
Tray,
} from 'electron';
import { IPC_CHANNELS } from '../shared';
import path, { dirname, join } from 'path';
import open from 'open';
import trayIcon from '../resources/icons/icon.png?asset';
import appleTrayIcon from '../resources/icons/appleTrayIcon.png?asset';
import { readFile, stat } from 'fs/promises';
import { getPlatform, handleIpc, isPortAvailable } from './utils';
import {
findServerJar,
findSystemJRE,
getGuiDataFolder,
getLogsFolder,
getServerDataFolder,
getWindowStateFile,
} from './paths';
import { stores } from './store';
import { logger } from './logger';
import { writeFileSync } from 'node:fs';
import { spawn } from 'node:child_process';
import { discordPresence } from './presence';
import { options } from './cli';
import { ServerStatusEvent } from 'electron/preload/interface';
import { mkdir } from 'node:fs/promises';
import { MenuItem } from 'electron/main';
app.setPath('userData', getGuiDataFolder())
app.setPath('sessionData', join(getGuiDataFolder(), 'electron'))
// Register custom protocol to handle asset paths with leading slashes
protocol.registerSchemesAsPrivileged([
{
scheme: 'app',
privileges: {
standard: true,
secure: true,
supportFetchAPI: true,
corsEnabled: true,
},
},
]);
let mainWindow: BrowserWindow | null = null;
handleIpc(IPC_CHANNELS.GH_FETCH, async (e, options) => {
if (options.type === 'fw-releases') {
return fetch(
'https://api.github.com/repos/SlimeVR/SlimeVR-Tracker-ESP/releases'
).then((res) => res.json());
}
if (options.type === 'asset') {
if (
!options.url.startsWith(
'https://github.com/SlimeVR/SlimeVR-Tracker-ESP/releases/download'
)
)
return null;
return fetch(options.url).then((res) => res.json());
}
});
handleIpc(IPC_CHANNELS.OS_STATS, async () => {
return {
type: getPlatform(),
};
});
handleIpc(IPC_CHANNELS.I18N_OVERRIDE, async () => {
const overridefile = join(getServerDataFolder(), 'override.ftl');
const exists = await stat(overridefile)
.then(() => true)
.catch(() => false);
if (!exists) return false;
return readFile(overridefile, { encoding: 'utf-8' });
});
handleIpc(IPC_CHANNELS.LOG, (e, type, ...args) => {
let payload: Record<string, unknown> = {};
const messageParts: unknown[] = [];
args.forEach((arg) => {
if (arg instanceof Error) {
payload.err = arg;
} else if (typeof arg === 'object' && arg !== null) {
payload = { ...payload, ...arg };
} else {
messageParts.push(arg);
}
});
const msg = messageParts.join(' ');
switch (type) {
case 'error':
logger.error(payload, msg);
break;
case 'warn':
logger.warn(payload, msg);
break;
default:
logger.info(payload, msg);
}
});
handleIpc(IPC_CHANNELS.OPEN_URL, (e, url) => {
const allowed_urls = [
/steam:\/\/.*/,
/ms-settings:network$/,
/https:\/\/.*\.slimevr\.dev.*/,
/https:\/\/github\.com\/.*/,
/https:\/\/discord\.gg\/slimevr$/,
];
if (allowed_urls.find((a) => url.match(a))) open(url);
else logger.error({ url }, 'attempted to open non-whitelisted URL');
});
handleIpc(IPC_CHANNELS.STORAGE, async (e, { type, method, key, value }) => {
const store = stores[type];
if (!store) throw new Error(`Storage type ${type} not found`);
switch (method) {
case 'get':
return store.get(key!);
case 'set':
return store.set(key!, value);
case 'delete':
return store.delete(key!);
case 'save':
return store.save();
}
});
handleIpc(IPC_CHANNELS.DISCORD_PRESENCE, async (e, options) => {
if (options.enable && !discordPresence.state.ready) {
await discordPresence.connect();
discordPresence.updateActivity(options.activity);
} else if (!options.enable && discordPresence.state.ready) {
discordPresence.destroy();
}
});
handleIpc(IPC_CHANNELS.OPEN_FILE, (e, folder) => {
const requestedPath = path.resolve(folder);
const isAllowed = [getServerDataFolder(), getGuiDataFolder(), getLogsFolder()].some(
(parent) => {
const absoluteParent = path.resolve(parent);
const relative = path.relative(absoluteParent, requestedPath);
return !relative.includes('..') && !path.isAbsolute(relative);
}
);
if (isAllowed) {
shell.openPath(requestedPath);
} else {
logger.error({ path: requestedPath }, 'Blocked unauthorized path');
}
});
handleIpc(IPC_CHANNELS.GET_FOLDER, (e, folder) => {
switch (folder) {
case 'config':
return getGuiDataFolder();
case 'logs':
return getLogsFolder();
}
});
const windowStateFile = await readFile(getWindowStateFile(), {
encoding: 'utf-8',
}).catch(() => null);
const defaultWindowState: {
width: number;
height: number;
x?: number;
y?: number;
} = {
width: 1289.0,
height: 709.0,
x: undefined,
y: undefined,
};
const windowState = windowStateFile ? JSON.parse(windowStateFile) : defaultWindowState;
const MIN_WIDTH = 393;
const MIN_HEIGHT = 667;
function validateWindowState(state: typeof defaultWindowState) {
if (state.x === undefined || state.y === undefined) {
return state;
}
const displays = screen.getAllDisplays();
const isVisible = displays.some((display) => {
return (
state.x! >= display.bounds.x &&
state.y! >= display.bounds.y &&
state.x! + state.width <= display.bounds.x + display.bounds.width &&
state.y! + state.height <= display.bounds.y + display.bounds.height
);
});
const minWidth = MIN_WIDTH;
const minHeight = MIN_HEIGHT;
if (!isVisible || state.width < minWidth || state.height < minHeight) {
return defaultWindowState;
}
return state;
}
const saveWindowState = async () => {
await mkdir(dirname(getWindowStateFile()), { recursive: true });
writeFileSync(getWindowStateFile(), JSON.stringify(windowState));
};
function createWindow() {
const validatedState = validateWindowState(windowState);
mainWindow = new BrowserWindow({
width: validatedState.width,
height: validatedState.height,
x: validatedState.x,
y: validatedState.y,
minHeight: MIN_HEIGHT,
minWidth: MIN_WIDTH,
movable: true,
frame: false,
roundedCorners: true,
webPreferences: {
preload: join(__dirname, '../preload/index.js'),
nodeIntegration: false,
contextIsolation: true,
devTools: true,
},
});
if (process.env.ELECTRON_RENDERER_URL) {
mainWindow.loadURL(process.env.ELECTRON_RENDERER_URL);
mainWindow.webContents.openDevTools();
} else {
mainWindow.loadURL('app://./index.html');
}
mainWindow.on('closed', () => {
mainWindow = null;
});
handleIpc('window-actions', (e, action) => {
switch (action) {
case 'close':
mainWindow?.close();
break;
case 'minimize':
mainWindow?.minimize();
break;
case 'maximize':
mainWindow?.maximize();
break;
}
});
handleIpc('open-dialog', (e, options) => dialog.showOpenDialog(options));
handleIpc('save-dialog', (e, options) => dialog.showSaveDialog(options));
const icon = nativeImage.createFromPath(
getPlatform() === 'macos' ? appleTrayIcon : trayIcon
);
const tray = new Tray(icon);
tray.setToolTip('SlimeVR');
tray.on('click', () => {
mainWindow?.show();
});
const contextMenu = Menu.buildFromTemplate([
{
label: 'Show',
click: () => {
mainWindow?.show();
},
},
{
label: 'Hide',
click: () => {
mainWindow?.hide();
},
},
{ role: 'quit' },
]);
tray.setContextMenu(contextMenu);
const updateWindowState = () => {
if (!mainWindow) return;
windowState.minimized = mainWindow.isMinimized();
if (!mainWindow.isMinimized() && !mainWindow.isMaximized()) {
const bounds = mainWindow.getBounds();
windowState.width = bounds.width;
windowState.height = bounds.height;
windowState.x = bounds.x;
windowState.y = bounds.y;
}
};
mainWindow.on('move', updateWindowState);
mainWindow.on('resize', updateWindowState);
mainWindow.on('minimize', updateWindowState);
mainWindow.on('maximize', updateWindowState);
mainWindow.webContents.on('context-menu', (event, params) => {
const menu = new Menu();
menu.append(
new MenuItem({
label: 'Inspect Element',
click: () => {
mainWindow?.webContents.inspectElement(params.x, params.y);
},
})
);
menu.append(new MenuItem({ type: 'separator' }));
menu.append(new MenuItem({ label: 'Copy', role: 'copy' }));
menu.append(new MenuItem({ label: 'Paste', role: 'paste' }));
if (mainWindow)
menu.popup({ window: mainWindow });
});
}
const checkEnvironmentVariables = () => {
const to_check = ['_JAVA_OPTIONS', 'JAVA_TOOL_OPTIONS'];
const set = to_check.filter((env) => !!process.env[env]);
if (set.length > 0) {
dialog.showErrorBox(
'SlimeVR',
`You have environment variables ${set.join(', ')} set, which may cause the SlimeVR Server to fail to launch properly.`
);
app.exit(0);
}
};
const isServerRunning = async () => !(await isPortAvailable(21110));
const spawnServer = async () => {
if (options.skipServerIfRunning && (await isServerRunning())) {
logger.info(
{ skipServerIfRunning: options.skipServerIfRunning },
'Server is already running, skipping server start'
);
return;
}
const serverJar = findServerJar();
if (!serverJar) {
logger.info('server jar not found, skipping');
return;
}
const sharedDir = dirname(serverJar);
const javaBin = await findSystemJRE(sharedDir);
if (!javaBin) {
dialog.showErrorBox(
'SlimeVR',
`Couldn't find a compatible Java version, please download Java 17 or higher`
);
app.exit(0);
return;
}
logger.info({ javaBin, serverJar }, 'Found Java and server jar');
const process = spawn(javaBin, ['-Xmx128M', '-jar', serverJar, 'run']);
process.stdout?.on('data', (message) => {
mainWindow?.webContents.send(IPC_CHANNELS.SERVER_STATUS, {
message: message.toString(),
type: 'stdout',
} satisfies ServerStatusEvent);
});
process.stderr?.on('data', (message) => {
mainWindow?.webContents.send(IPC_CHANNELS.SERVER_STATUS, {
message: message.toString(),
type: 'stderr',
} satisfies ServerStatusEvent);
});
return {
process: process,
close: () => {
process.kill('SIGTERM');
},
};
};
app.whenReady().then(async () => {
// Register protocol handler for app:// scheme to handle assets with leading slashes
protocol.handle('app', (request) => {
const url = request.url.slice('app://'.length);
const filePath = path.normalize(join(__dirname, '../renderer', url));
return net.fetch('file://' + filePath);
});
checkEnvironmentVariables();
const server = await spawnServer();
createWindow();
logger.info('SlimeVR started!');
app.on('window-all-closed', () => {
if (process.platform !== 'darwin') {
app.quit();
}
});
process.on('exit', () => {
server?.close();
});
app.on('before-quit', async () => {
logger.info('App quitting, saving...');
server?.close();
stores.settings.save();
stores.cache.save();
discordPresence.destroy();
await saveWindowState();
});
});

View File

@@ -0,0 +1,26 @@
import pino from 'pino';
import { getLogsFolder } from './paths';
import { join } from 'node:path';
const transport = pino.transport({
targets: [
{
target: 'pino-roll',
options: {
file: join(getLogsFolder(), 'slimevr-gui.log'),
frequency: 'daily',
size: '10m',
mkdir: true,
limit: { count: 7 },
},
level: 'info',
},
{
target: 'pino-pretty',
options: { colorize: true },
level: 'debug',
},
],
});
export const logger = pino(transport);

120
gui/electron/main/paths.ts Normal file
View File

@@ -0,0 +1,120 @@
import { app } from 'electron';
import path, { join } from 'node:path';
import { getPlatform } from './utils';
import { glob } from 'glob';
import { spawn } from 'node:child_process';
import javaVersionJar from '../resources/java-version/JavaVersion.jar?asset&asarUnpack';
import { existsSync } from 'node:fs';
import { options } from './cli';
const javaBin = getPlatform() === 'windows' ? 'java.exe' : 'java';
export const CONFIG_IDENTIFIER = 'dev.slimevr.SlimeVR';
export const getGuiDataFolder = () => {
const platform = getPlatform();
switch (platform) {
case 'linux':
if (process.env['XDG_DATA_HOME'])
return join(process.env['XDG_DATA_HOME'], CONFIG_IDENTIFIER);
return join(app.getPath('home'), '.local/share', CONFIG_IDENTIFIER);
case 'windows':
return join(app.getPath('appData'), CONFIG_IDENTIFIER);
case 'macos':
return join(
app.getPath('home'),
'Library/Application Support',
CONFIG_IDENTIFIER
);
case 'unknown':
throw 'error';
}
};
export const getServerDataFolder = () => {
const platform = getPlatform();
switch (platform) {
case 'linux':
case 'windows':
case 'macos':
return join(app.getPath('appData'), CONFIG_IDENTIFIER);
case 'unknown':
throw 'error';
}
};
export const getLogsFolder = () => {
return join(getGuiDataFolder(), 'logs');
};
export const getWindowStateFile = () =>
join(getServerDataFolder(), '.window-state.json');
const localJavaBin = (sharedDir: string) => {
const jre = join(sharedDir, 'jre/bin', javaBin);
return jre;
};
const javaHomeBin = () => {
const javaHome = process.env['JAVA_HOME'];
if (!javaHome) return null;
const javaHomeJre = join(javaHome, 'bin', javaBin);
return javaHomeJre;
};
export const findSystemJRE = async (sharedDir: string) => {
const paths = [
localJavaBin(sharedDir),
javaHomeBin(),
...(await glob('/usr/lib/jvm/*/bin/' + javaBin)),
...(await glob('/Library/Java/JavaVirtualMachines/*/Contents/Home/bin/' + javaBin)),
];
for (const path of paths) {
if (!path) continue;
const version = await new Promise<number | null>((resolve) => {
const process = spawn(path, ['-jar', javaVersionJar], {});
let version: number | null = null;
process.stdout?.once('data', (data) => {
try {
version = parseFloat(data.toString());
} catch {
version = null;
}
});
process.on('error', () => {
resolve(null);
});
process.on('exit', () => {
resolve(version);
});
});
if (version && version >= 17) return path;
}
return null;
};
export const findServerJar = () => {
const paths = [
options.path ? path.resolve(options.path) : undefined,
// AppImage passes the fakeroot in `APPDIR` env var.
process.env['APPDIR']
? path.resolve(join(process.env['APPDIR'], 'usr/share/slimevr/'))
: undefined,
path.dirname(app.getPath('exe')),
// For flatpack container
path.resolve('/app/share/slimevr/'),
path.resolve('/usr/share/slimevr/'),
];
return paths
.filter((p) => !!p)
.map((p) => join(p!, 'slimevr.jar'))
.find((p) => existsSync(p));
};

View File

@@ -0,0 +1,49 @@
import { Client } from '@xhayper/discord-rpc';
import { logger } from './logger';
export const richPresence = () => {
const initialState = () => ({ ready: false, start: Date.now() });
const state = initialState();
const client = new Client({
clientId: '1237970689009647639',
transport: { type: 'ipc' },
});
client.on('ready', () => {
state.ready = true;
});
client.on('disconnected', () => {
state.ready = false;
});
return {
state,
connect: async () => {
try {
await client.login();
} catch (e) {
logger.error(e, 'unable to connect to discord rpc');
}
},
updateActivity: (content: string) => {
if (!state.ready) return;
client.user
?.setActivity({
state: content,
largeImageKey: 'icon',
startTimestamp: state.start,
})
.catch((e) => {
logger.error(e, 'unable to update rpc activity');
});
},
destroy: () => {
client.destroy();
Object.assign(state, initialState());
},
};
};
export const discordPresence = richPresence();

View File

@@ -0,0 +1,76 @@
import { existsSync, mkdirSync, readFileSync, writeFileSync } from "fs";
import { dirname, join } from "path";
import { logger } from "./logger";
import { getGuiDataFolder } from "./paths";
export class CustomStore {
private data: Record<string, unknown> = {};
private saveTimeout: NodeJS.Timeout | null = null;
private filePath: string;
private debounceMs: number;
constructor(filePath: string, debounceMs: number = 2000) {
this.filePath = filePath;
this.debounceMs = debounceMs;
this.load();
}
private load() {
try {
if (existsSync(this.filePath)) {
const raw = readFileSync(this.filePath, 'utf-8');
this.data = JSON.parse(raw);
}
} catch (err) {
logger.error(err, `Failed to load store at ${this.filePath}`);
this.data = {};
}
}
/** Set a key and trigger the debounced auto-save */
set(key: string, value: unknown) {
this.data[key] = value;
this.triggerAutoSave();
}
get<T>(key: string): T | undefined {
return this.data[key] as T;
}
delete(key: string): boolean {
if (key in this.data) {
delete this.data[key];
this.triggerAutoSave();
return true;
}
return false;
}
private triggerAutoSave() {
if (this.saveTimeout) clearTimeout(this.saveTimeout);
this.saveTimeout = setTimeout(() => {
this.save();
}, this.debounceMs);
}
save(): boolean {
try {
if (this.saveTimeout) clearTimeout(this.saveTimeout);
const dir = dirname(this.filePath);
if (!existsSync(dir)) mkdirSync(dir, { recursive: true });
writeFileSync(this.filePath, JSON.stringify(this.data, null, 2), 'utf-8');
return true;
} catch (err) {
logger.error(err, 'Save failed', this.filePath);
return false;
}
}
}
export const stores = {
settings: new CustomStore(join(getGuiDataFolder(), 'gui-settings.dat'), 1000),
cache: new CustomStore(join(getGuiDataFolder(), 'gui-cache.dat'), 100),
};

View File

@@ -0,0 +1,50 @@
import os from 'os'
import { OSStats } from "../preload/interface";
import { ipcMain, IpcMainInvokeEvent } from 'electron';
import { IpcInvokeMap } from '../shared';
import net from 'net'
export const getPlatform = (): OSStats['type'] => {
switch (os.platform()) {
case 'darwin':
return 'macos';
case 'win32':
return 'windows';
case 'linux':
return 'linux';
default:
return 'unknown';
}
};
export const isPortAvailable = (port: number) => {
return new Promise((resolve) => {
const s = net.createServer();
s.once('error', (err) => {
s.close();
if ("code" in err && err["code"] == "EADDRINUSE") {
resolve(false);
} else {
resolve(false);
}
});
s.once('listening', () => {
resolve(true);
s.close();
});
s.listen(port);
});
};
export function handleIpc<K extends keyof IpcInvokeMap>(
channel: K,
handler: (
event: IpcMainInvokeEvent,
...args: Parameters<IpcInvokeMap[K]>
) => ReturnType<IpcInvokeMap[K]>
) {
ipcMain.handle(channel, (event, ...args) => {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
return handler(event, ...args as any);
});
}

View File

@@ -0,0 +1,39 @@
import { contextBridge, ipcRenderer, IpcRendererEvent } from 'electron';
import { IElectronAPI, ServerStatusEvent } from './interface';
import { IPC_CHANNELS } from '../shared';
contextBridge.exposeInMainWorld('electronAPI', {
onServerStatus: (callback) => {
const subscription = (_event: IpcRendererEvent, value: ServerStatusEvent) =>
callback(value);
ipcRenderer.on(IPC_CHANNELS.SERVER_STATUS, subscription);
return () => ipcRenderer.removeListener(IPC_CHANNELS.SERVER_STATUS, subscription);
},
openUrl: (url) => ipcRenderer.invoke(IPC_CHANNELS.OPEN_URL, url),
osStats: () => ipcRenderer.invoke(IPC_CHANNELS.OS_STATS),
close: () => ipcRenderer.invoke(IPC_CHANNELS.WINDOW_ACTIONS, 'close'),
minimize: () => ipcRenderer.invoke(IPC_CHANNELS.WINDOW_ACTIONS, 'minimize'),
maximize: () => ipcRenderer.invoke(IPC_CHANNELS.WINDOW_ACTIONS, 'maximize'),
getStorage: async (type) => {
return {
get: (key) =>
ipcRenderer.invoke(IPC_CHANNELS.STORAGE, { type, method: 'get', key }),
set: (key, value) =>
ipcRenderer.invoke(IPC_CHANNELS.STORAGE, { type, method: 'set', key, value }),
delete: (key) =>
ipcRenderer.invoke(IPC_CHANNELS.STORAGE, { type, method: 'delete', key }),
save: () => ipcRenderer.invoke(IPC_CHANNELS.STORAGE, { type, method: 'save' }),
};
},
log: (type, ...args) => ipcRenderer.invoke(IPC_CHANNELS.LOG, type, ...args),
i18nOverride: async () => ipcRenderer.invoke(IPC_CHANNELS.I18N_OVERRIDE),
showDecorations: () => {},
setTranslations: () => {},
openDialog: (options) => ipcRenderer.invoke(IPC_CHANNELS.OPEN_DIALOG, options),
saveDialog: (options) => ipcRenderer.invoke(IPC_CHANNELS.SAVE_DIALOG, options),
openConfigFolder: async () => ipcRenderer.invoke(IPC_CHANNELS.OPEN_FILE, await ipcRenderer.invoke(IPC_CHANNELS.GET_FOLDER, 'config')),
openLogsFolder: async () => ipcRenderer.invoke(IPC_CHANNELS.OPEN_FILE, await ipcRenderer.invoke(IPC_CHANNELS.GET_FOLDER, 'logs')),
openFile: (path) => ipcRenderer.invoke(IPC_CHANNELS.OPEN_FILE, path),
ghGet: (req) => ipcRenderer.invoke(IPC_CHANNELS.GH_FETCH, req),
setPresence: (options) => ipcRenderer.invoke(IPC_CHANNELS.DISCORD_PRESENCE, options)
} satisfies IElectronAPI);

64
gui/electron/preload/interface.d.ts vendored Normal file
View File

@@ -0,0 +1,64 @@
import {
OpenDialogOptions,
OpenDialogReturnValue,
SaveDialogOptions,
SaveDialogReturnValue,
} from 'electron';
export type ServerStatusEvent = {
type: 'stdout' | 'stderr' | 'error' | 'terminated' | 'other';
message: string;
};
export type OSStats = {
type: 'linux' | 'windows' | 'macos' | 'unknown';
};
export interface CrossStorage {
set(key: string, value: unknown): Promise<void>;
get<T>(key: string): Promise<T | undefined>;
delete(key: string): Promise<boolean>;
save(): Promise<boolean>;
}
export type GHGet = { type: 'fw-releases' } | { type: 'asset'; url: string };
export type GHReturn = {
asset: [number, string][] | null;
['fw-releases']:
| {
assets: { browser_download_url: string; name: string; digest: string }[];
prerelease: boolean;
tag_name: string;
body: string;
}[]
| null;
};
export type DiscordPresence = { enable: false } | { enable: true, activity: string }
export interface IElectronAPI {
onServerStatus: (cb: (data: ServerStatusEvent) => void) => () => void;
openUrl: (url: string) => Promise<void>;
osStats: () => Promise<OSStats>;
openLogsFolder: () => Promise<void>;
openConfigFolder: () => Promise<void>;
close: () => void;
minimize: () => void;
maximize: () => void;
showDecorations: (decorations: boolean) => void;
setTranslations: (translations: Record<string, string>) => void;
i18nOverride: () => Promise<string | false>;
getStorage: (type: 'settings' | 'cache') => Promise<CrossStorage>;
openDialog: (options: OpenDialogOptions) => Promise<OpenDialogReturnValue>;
saveDialog: (options: SaveDialogOptions) => Promise<SaveDialogReturnValue>;
log: (type: 'info' | 'error' | 'warn', ...args: unknown[]) => void;
openFile: (path: string) => void;
ghGet: <T extends GHGet>(options: T) => Promise<GHReturn[T['type']]>;
setPresence: (options: DiscordPresence) => void;
}
declare global {
interface Window {
electronAPI: IElectronAPI;
}
}

View File

@@ -0,0 +1,46 @@
# Copyright 2025 Eiren Rain and SlimeVR Contributors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
## QinHeng
# CH340
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1A86", ATTRS{idProduct}=="7522", MODE="0660", TAG+="uaccess"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1A86", ATTRS{idProduct}=="7523", MODE="0660", TAG+="uaccess"
# CH341
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1A86", ATTRS{idProduct}=="5523", MODE="0660", TAG+="uaccess"
# CH343
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1A86", ATTRS{idProduct}=="55D3", MODE="0660", TAG+="uaccess"
# CH9102x
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1A86", ATTRS{idProduct}=="55D4", MODE="0660", TAG+="uaccess"
## Silabs
# CP210x
SUBSYSTEMS=="usb", ATTRS{idVendor}=="10C4", ATTRS{idProduct}=="EA60", MODE="0660", TAG+="uaccess"
## Espressif
# ESP32-S3 / ESP32-C3 / ESP32-C5 / ESP32-C6 / ESP32-C61 / ESP32-H2 / ESP32-P4
SUBSYSTEMS=="usb", ATTRS{idVendor}=="303A", ATTRS{idProduct}=="1001", MODE="0660", TAG+="uaccess"
# ESP32-S2
SUBSYSTEMS=="usb", ATTRS{idVendor}=="303A", ATTRS{idProduct}=="0002", MODE="0660", TAG+="uaccess"
## FTDI
# FT232BM/L/Q, FT245BM/L/Q
# FT232RL/Q, FT245RL/Q
# VNC1L with VDPS Firmware
# VNC2 with FT232Slave
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", MODE="0660", TAG+="uaccess"
## SlimeVR
# smol slime dongle
SUBSYSTEM=="usb", ATTR{idVendor}=="1209", ATTR{idProduct}=="7690", MODE="0660", TAG+="uaccess"
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1209", ATTRS{idProduct}=="7690", MODE="0660", TAG+="uaccess"

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 747 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 698 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1008 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 922 B

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" stroke-miterlimit="10" clip-rule="evenodd" version="1.1" viewBox="0 0 380 380" xml:space="preserve"><rect id="bg" width="380" height="380" fill="#663499" stroke-width="1" rx="76" /><g id="logo" fill="none" stroke="#fff"><path id="left" stroke-width="13.62" d="m72.867 191.74 37-39 39 36"/><path id="right" stroke-width="13.62" d="m208.87 187.74 38-35 36 38"/><path id="outer" stroke-linecap="square" stroke-width="17" d="m56.867 253.74s130.61-31.182 248 5c13.45 4.146 20.244 2.975 20-8s1.909-126.06-46-131"/></g></svg>

After

Width:  |  Height:  |  Size: 579 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 555 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 848 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 848 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 645 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 848 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

View File

@@ -1,8 +1,8 @@
public class JavaVersion {
public static void main(String[] args)
{
var version = Runtime.version().version().get(0);
System.exit(version);
System.out.println(version);
}
}

View File

@@ -0,0 +1,26 @@
#!/bin/bash
SRC="/opt/SlimeVR/69-slimevr-devices.rules"
DESTDIRS=("/lib" "/usr/lib")
if [[ ! -f "$SRC" ]]; then
echo "SlimeVR udev rules not found, serial console and dongles may not work" >&2
exit 0
fi
echo "Configuring SlimeVR udev rules..."
for DIR in "${DESTDIRS[@]}"; do
if [[ -d "$DIR" && ! -h "$DIR" ]]; then
echo "Copying rules to $DIR"
install -Dm644 "$SRC" "$DIR/udev/rules.d/69-slimevr-devices.rules"
if command -v udevadm >/dev/null 2>&1; then
udevadm control --reload-rules
udevadm trigger
fi
exit 0
fi
done
echo "Couldn't copy SlimeVR udev rules, serial console and dongles may not work" >&2

View File

@@ -0,0 +1,8 @@
#!/bin/bash
echo "Removing SlimeVR udev rules..."
rm -f "/lib/udev/rules.d/69-slimevr-devices.rules"
rm -f "/usr/lib/udev/rules.d/69-slimevr-devices.rules"
if command -v udevadm >/dev/null 2>&1; then
udevadm control --reload-rules
fi

49
gui/electron/shared.ts Normal file
View File

@@ -0,0 +1,49 @@
import {
OpenDialogOptions,
OpenDialogReturnValue,
SaveDialogOptions,
SaveDialogReturnValue,
} from 'electron';
import { DiscordPresence, GHGet, GHReturn, OSStats } from './preload/interface';
export const IPC_CHANNELS = {
SERVER_STATUS: 'server-status',
OPEN_URL: 'open-url',
OS_STATS: 'os-stats',
WINDOW_ACTIONS: 'window-actions',
LOG: 'log',
STORAGE: 'storage',
OPEN_DIALOG: 'open-dialog',
SAVE_DIALOG: 'save-dialog',
I18N_OVERRIDE: 'i18n-override',
OPEN_FILE: 'open-file',
GET_FOLDER: 'get-folder',
GH_FETCH: 'gh-fetch',
DISCORD_PRESENCE: 'discord-presence'
} as const;
export interface IpcInvokeMap {
[IPC_CHANNELS.OPEN_URL]: (url: string) => void;
[IPC_CHANNELS.OS_STATS]: () => Promise<OSStats>;
[IPC_CHANNELS.WINDOW_ACTIONS]: (action: 'close' | 'minimize' | 'maximize') => void;
[IPC_CHANNELS.LOG]: (type: 'info' | 'error' | 'warn', ...args: unknown[]) => void;
[IPC_CHANNELS.OPEN_DIALOG]: (
options: OpenDialogOptions
) => Promise<OpenDialogReturnValue>;
[IPC_CHANNELS.SAVE_DIALOG]: (
options: SaveDialogOptions
) => Promise<SaveDialogReturnValue>;
[IPC_CHANNELS.I18N_OVERRIDE]: () => Promise<string | false>;
[IPC_CHANNELS.STORAGE]: (args: {
type: 'settings' | 'cache';
method: 'get' | 'set' | 'delete' | 'save';
key?: string;
value?: unknown;
}) => Promise<unknown>;
[IPC_CHANNELS.OPEN_FILE]: (path: string) => void;
[IPC_CHANNELS.GET_FOLDER]: (folder: 'config' | 'logs') => string;
[IPC_CHANNELS.GH_FETCH]: <T extends GHGet>(
options: T
) => Promise<GHReturn[T['type']]>;
[IPC_CHANNELS.DISCORD_PRESENCE]: (options: DiscordPresence) => void;
}

82
gui/eslint.config.js Normal file
View File

@@ -0,0 +1,82 @@
import { FlatCompat } from '@eslint/eslintrc';
import eslint from '@eslint/js';
import globals from 'globals';
import tseslint from 'typescript-eslint';
import stylistic from '@stylistic/eslint-plugin';
const compat = new FlatCompat();
export const gui = [
eslint.configs.recommended,
...tseslint.configs.recommended,
...compat.extends('plugin:@dword-design/import-alias/recommended'),
...compat.plugins('eslint-plugin-react-hooks'),
// Add import-alias rule inside compat because plugin doesn't like flat configs
...compat.config({
rules: {
'@dword-design/import-alias/prefer-alias': [
'error',
{
alias: {
'@': './src/',
},
},
],
},
}),
{
languageOptions: {
ecmaVersion: 'latest',
sourceType: 'module',
parser: tseslint.parser,
parserOptions: {
ecmaFeatures: {
jsx: true,
},
},
globals: {
...globals.browser,
...globals.jest,
},
},
files: ['src/**/*.{js,jsx,ts,tsx,json}'],
plugins: {
'@typescript-eslint': tseslint.plugin,
'@stylistic': stylistic,
},
rules: {
'react/react-in-jsx-scope': 'off',
'react/prop-types': 'off',
'spaced-comment': 'error',
quotes: ['error', 'single'],
'no-duplicate-imports': 'error',
'no-inline-styles': 'off',
'@typescript-eslint/no-explicit-any': 'off',
'react/no-unescaped-entities': 'off',
camelcase: 'error',
'@typescript-eslint/no-unused-vars': [
'warn',
{
argsIgnorePattern: '^_',
varsIgnorePattern: '^_',
ignoreRestSiblings: true,
},
],
'@stylistic/jsx-self-closing-comp': 'error',
},
settings: {
'import/resolver': {
typescript: {},
},
react: {
version: 'detect',
},
},
},
// Global ignore
{
ignores: ['**/firmware-tool-api/'],
},
];
export default gui;

View File

@@ -10,7 +10,7 @@
<link rel="manifest" href="/manifest.json" />
<title>React App</title>
<title>SlimeVR GUI</title>
</head>
<body>
<noscript>You need to enable JavaScript to run this app.</noscript>

View File

@@ -0,0 +1,28 @@
import {
generateSchemaTypes,
generateReactQueryComponents,
} from '@openapi-codegen/typescript';
import { defineConfig } from '@openapi-codegen/cli';
import dotenv from 'dotenv';
dotenv.config()
export default defineConfig({
firmwareTool: {
from: {
source: 'url',
url: process.env.FIRMWARE_TOOL_SCHEMA_URL ?? 'http://localhost:3000/api-json',
},
outputDir: 'src/firmware-tool-api',
to: async (context) => {
const filenamePrefix = 'firmwareTool';
const { schemasFiles } = await generateSchemaTypes(context, {
filenamePrefix,
});
await generateReactQueryComponents(context, {
filenamePrefix,
schemasFiles,
});
},
},
});

View File

@@ -1,92 +1,113 @@
{
"name": "slimevr-ui",
"version": "0.5.1",
"private": true,
"name": "slimevr",
"version": "0.0.0",
"author": "SlimeVR Team <contact@slimevr.dev>",
"homepage": "https://slimevr.dev",
"type": "module",
"dependencies": {
"@fluent/bundle": "^0.17.1",
"@fluent/react": "^0.14.1",
"@fontsource/poppins": "^4.5.8",
"@formatjs/intl-localematcher": "^0.2.32",
"@react-three/fiber": "^8.10.0",
"@tauri-apps/api": "^1.4.0",
"@vitejs/plugin-react": "^3.0.0",
"browserslist": "^4.18.1",
"classnames": "^2.3.1",
"eslint-config-react-app": "^7.0.0",
"file-saver": "^2.0.5",
"flatbuffers": "^22.10.26",
"identity-obj-proxy": "^3.0.0",
"intl-pluralrules": "^1.3.1",
"ip-num": "^1.4.1",
"postcss-flexbugs-fixes": "^5.0.2",
"postcss-normalize": "^10.0.1",
"postcss-preset-env": "^7.0.1",
"prompts": "^2.4.2",
"react": "^18.0.0",
"react-dev-utils": "^12.0.0",
"react-dom": "^18.0.0",
"react-hook-form": "^7.29.0",
"react-modal": "3.15.1",
"react-responsive": "^9.0.2",
"react-router-dom": "^6.2.2",
"semver": "^7.5.0",
"solarxr-protocol": "file:../solarxr-protocol",
"three": "^0.148.0",
"typescript": "^4.6.3"
"@ryuziii/discord-rpc": "1.0.1-rc.1",
"@xhayper/discord-rpc": "^1.3.0",
"commander": "^14.0.3",
"discord-rich-presence": "^0.0.8",
"glob": "^13.0.3",
"open": "^11.0.0",
"pino": "^10.3.1",
"pino-pretty": "^13.1.3",
"pino-roll": "^4.0.0"
},
"scripts": {
"start": "vite --force",
"build": "vite build",
"dev": "tauri dev",
"skipbundler": "tauri build -b none",
"tauri": "tauri",
"lint": "eslint --max-warnings=0 \"src/**/*.{js,jsx,ts,tsx,json}\" && prettier --check \"src/**/*.{js,jsx,ts,tsx,css,md,json}\"",
"lint:fix": "eslint --fix \"src/**/*.{js,jsx,ts,tsx,json}\"",
"format": "prettier --write \"src/**/*.{js,jsx,ts,tsx,css,md,json}\"",
"preview-vite": "vite preview",
"javaversion-build": "cd src-tauri/src/ && javac JavaVersion.java && jar cvfe JavaVersion.jar JavaVersion JavaVersion.class"
},
"eslintConfig": {
"extends": [
"react-app"
]
},
"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
"gui": "electron-vite dev --config electron.vite.config.ts --watch",
"build": "electron-vite build --config electron.vite.config.ts",
"package": "electron-builder",
"package:build": "pnpm build && pnpm package",
"preview": "electron-vite preview --config electron.vite.config.ts",
"skipbundler": "vite build",
"lint": "tsc --noEmit && eslint --max-warnings=0 \"src/**/*.{js,jsx,ts,tsx,json}\" && prettier --check \"src/**/*.{js,jsx,ts,tsx,css,scss,md,json}\"",
"lint:fix": "tsc --noEmit && eslint --fix --max-warnings=0 \"src/**/*.{js,jsx,ts,tsx,json}\" && pnpm run format",
"format": "prettier --write \"src/**/*.{js,jsx,ts,tsx,css,scss,md,json}\"",
"javaversion-build": "cd electron/resources/java-version/ && javac JavaVersion.java && jar cvfe JavaVersion.jar JavaVersion JavaVersion.class",
"gen:javaversion": "cd electron/resources/java-version/ && javac JavaVersion.java && jar cvfe JavaVersion.jar JavaVersion JavaVersion.class",
"gen:firmware-tool": "openapi-codegen gen firmwareTool"
},
"devDependencies": {
"@tailwindcss/forms": "^0.5.0",
"@tauri-apps/cli": "^1.4.0",
"@types/file-saver": "^2.0.5",
"@types/react": "18.0.25",
"@types/react-dom": "^18.0.5",
"@types/react-modal": "3.13.1",
"@types/three": "^0.148.0",
"@typescript-eslint/eslint-plugin": "^5.59.6",
"@typescript-eslint/parser": "^5.59.0",
"autoprefixer": "^10.4.4",
"cross-env": "^7.0.3",
"eslint": "^8.18.0",
"eslint-config-airbnb": "^19.0.4",
"eslint-import-resolver-typescript": "^3.1.1",
"eslint-plugin-import": "^2.26.0",
"eslint-plugin-jsx-a11y": "^6.6.0",
"eslint-plugin-react": "^7.30.1",
"eslint-plugin-react-hooks": "^4.6.0",
"postcss": "^8.4.12",
"prettier": "^2.7.1",
"pretty-quick": "^3.1.3",
"tailwind-gradient-mask-image": "^1.0.0",
"tailwindcss": "^3.3.1",
"vite": "^4.0.3"
}
"@dword-design/eslint-plugin-import-alias": "^4.0.9",
"@electron/asar": "^4.0.1",
"@fluent/bundle": "^0.18.0",
"@fluent/react": "^0.15.2",
"@fontsource/poppins": "^5.1.0",
"@formatjs/intl-localematcher": "^0.2.32",
"@hookform/resolvers": "^3.6.0",
"@openapi-codegen/cli": "^3.1.0",
"@openapi-codegen/typescript": "^8.0.2",
"@react-hookz/deep-equal": "^3.0.3",
"@sentry/react": "10.29.0",
"@sentry/vite-plugin": "^2.22.7",
"@stylistic/eslint-plugin": "^5.5.0",
"@tailwindcss/forms": "^0.5.9",
"@tailwindcss/typography": "^0.5.15",
"@tanstack/react-query": "^5.48.0",
"@tweenjs/tween.js": "^25.0.0",
"@twemoji/svg": "^15.0.0",
"@types/file-saver": "^2.0.7",
"@types/node": "^24.3.1",
"@types/react": "^18.3.11",
"@types/react-dom": "^18.3.0",
"@types/react-helmet": "^6.1.11",
"@types/react-modal": "3.16.3",
"@types/semver": "^7.5.8",
"@types/three": "^0.163.0",
"@typescript-eslint/eslint-plugin": "^8.48.1",
"@typescript-eslint/parser": "^8.48.1",
"@vitejs/plugin-react": "^4.3.2",
"ajv": "^8.17.1",
"autoprefixer": "^10.4.20",
"browser-fs-access": "^0.35.0",
"classnames": "^2.5.1",
"convert": "^5.12.0",
"dmg-license": "^1.0.11",
"dotenv": "^16.4.5",
"electron": "^40.3.0",
"electron-builder": "^26.7.0",
"electron-vite": "^5.0.0",
"eslint": "^9.39.1",
"eslint-import-resolver-typescript": "^3.10.1",
"eslint-plugin-import": "^2.32.0",
"eslint-plugin-jsx-a11y": "^6.10.2",
"eslint-plugin-react": "^7.37.5",
"eslint-plugin-react-hooks": "^7.0.1",
"flatbuffers": "22.10.26",
"globals": "^15.10.0",
"intl-pluralrules": "^2.0.1",
"ip-num": "^1.5.1",
"jotai": "^2.12.2",
"prettier": "^3.3.3",
"prompts": "^2.4.2",
"react": "^18.3.1",
"react-dom": "^18.3.1",
"react-error-boundary": "^4.0.13",
"react-helmet": "^6.1.0",
"react-hook-form": "^7.63.0",
"react-markdown": "^9.0.1",
"react-modal": "^3.16.1",
"react-responsive": "^10.0.0",
"react-router-dom": "^6.26.2",
"remark-gfm": "^4.0.0",
"rollup-plugin-visualizer": "^5.12.0",
"sass": "^1.79.4",
"semver": "^7.6.3",
"solarxr-protocol": "file:../solarxr-protocol",
"spdx-satisfies": "^5.0.1",
"tailwind-gradient-mask-image": "^1.2.0",
"tailwindcss": "^3.4.13",
"three": "^0.163.0",
"ts-pattern": "^5.4.0",
"typescript": "^5.6.3",
"typescript-eslint": "^8.46.2",
"use-double-tap": "^1.3.6",
"uuid": "^13.0.0",
"vite": "^5.4.8",
"yup": "^1.4.0"
},
"main": "./out/main/index.js"
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More