diff options
author | Ryan Pavlik <ryan.pavlik@collabora.com> | 2020-12-02 10:11:35 -0600 |
---|---|---|
committer | Ryan Pavlik <ryan.pavlik@collabora.com> | 2020-12-02 10:11:35 -0600 |
commit | 5ae81d276859aa12097c27e977c4d99e35475ba8 (patch) | |
tree | 9d78dec4d0be4536c04e4c32214fb046d9c8c058 | |
parent | 8488cd14e7c208b597029ca55729072945c0b76b (diff) |
New upstream version 0.3.0
-rw-r--r-- | 70-xrhardware.hwdb | 30 | ||||
-rw-r--r-- | 70-xrhardware.rules | 28 | ||||
-rw-r--r-- | CHANGELOG.md | 59 | ||||
-rw-r--r-- | README.md | 6 | ||||
-rw-r--r-- | changes/.proclamation.json | 20 | ||||
-rw-r--r-- | changes/.proclamation.json.license | 2 | ||||
-rw-r--r-- | changes/README.md | 151 | ||||
-rw-r--r-- | changes/additions/.gitkeep | 0 | ||||
-rw-r--r-- | changes/fixes/.gitkeep | 0 | ||||
-rw-r--r-- | changes/improvements/.gitkeep | 0 | ||||
-rw-r--r-- | xrhardware/db.py | 21 | ||||
-rw-r--r-- | xrhardware/device.py | 4 |
12 files changed, 321 insertions, 0 deletions
diff --git a/70-xrhardware.hwdb b/70-xrhardware.hwdb index ac2b5b9..b3ddb2f 100644 --- a/70-xrhardware.hwdb +++ b/70-xrhardware.hwdb @@ -18,6 +18,10 @@ usb:v0bb4p0309* usb:v28dep2101* ID_xrhardware=1 +# Valve VR Radio +usb:v28dep2102* + ID_xrhardware=1 + # Valve Index Controller usb:v28dep2300* ID_xrhardware=1 @@ -44,6 +48,14 @@ usb:v16d0p0515* usb:v0483p5750* ID_xrhardware=1 +# NOLO CV1 +usb:v28e9p028a* + ID_xrhardware=1 + +# Pimax 4k +usb:v0483p0021* + ID_xrhardware=1 + # Oculus Rift (DK1) usb:v2833p0001* ID_xrhardware=1 @@ -60,6 +72,10 @@ usb:v2833p2021* usb:v2833p0031* ID_xrhardware=1 +# Oculus Rift S +usb:v2833p0051* + ID_xrhardware=1 + # Samsung GearVR (Gen1) usb:v04e8pa500* ID_xrhardware=1 @@ -88,6 +104,16 @@ usb:v2b1cp0100* usb:v2b1cp0101* ID_xrhardware=1 +# Microsoft Windows MR Controller +bluetooth:v045ep065b* + ID_xrhardware=1 + LIBINPUT_IGNORE_DEVICE=1 + +# Microsoft Windows MR Controller +bluetooth:v045ep065d* + ID_xrhardware=1 + LIBINPUT_IGNORE_DEVICE=1 + # Sony PlayStation VR usb:v054cp09af* ID_xrhardware=1 @@ -113,3 +139,7 @@ usb:v045ep0659* # Samsung Odyssey+ sensors usb:v04e8p7312* ID_xrhardware=1 + +# Vis3r NxtVR +usb:v1209p9d0f* + ID_xrhardware=1 diff --git a/70-xrhardware.rules b/70-xrhardware.rules index 3422ca5..791ec7c 100644 --- a/70-xrhardware.rules +++ b/70-xrhardware.rules @@ -27,6 +27,10 @@ ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="0309", TAG+="uaccess", ENV{ID_xrhard ATTRS{idVendor}=="28de", ATTRS{idProduct}=="2101", TAG+="uaccess", ENV{ID_xrhardware}="1" +# Valve VR Radio - USB +ATTRS{idVendor}=="28de", ATTRS{idProduct}=="2102", TAG+="uaccess", ENV{ID_xrhardware}="1" + + # Valve Index Controller - USB ATTRS{idVendor}=="28de", ATTRS{idProduct}=="2300", TAG+="uaccess", ENV{ID_xrhardware}="1" @@ -51,6 +55,14 @@ ATTRS{idVendor}=="16d0", ATTRS{idProduct}=="0515", TAG+="uaccess", ENV{ID_xrhard ATTRS{idVendor}=="0483", ATTRS{idProduct}=="5750", TAG+="uaccess", ENV{ID_xrhardware}="1" +# NOLO CV1 - USB +ATTRS{idVendor}=="28e9", ATTRS{idProduct}=="028a", TAG+="uaccess", ENV{ID_xrhardware}="1" + + +# Pimax 4k - USB +ATTRS{idVendor}=="0483", ATTRS{idProduct}=="0021", TAG+="uaccess", ENV{ID_xrhardware}="1" + + # Oculus Rift (DK1) - USB ATTRS{idVendor}=="2833", ATTRS{idProduct}=="0001", TAG+="uaccess", ENV{ID_xrhardware}="1" @@ -67,6 +79,10 @@ ATTRS{idVendor}=="2833", ATTRS{idProduct}=="2021", TAG+="uaccess", ENV{ID_xrhard ATTRS{idVendor}=="2833", ATTRS{idProduct}=="0031", TAG+="uaccess", ENV{ID_xrhardware}="1" +# Oculus Rift S - USB +ATTRS{idVendor}=="2833", ATTRS{idProduct}=="0051", TAG+="uaccess", ENV{ID_xrhardware}="1" + + # Samsung GearVR (Gen1) - USB ATTRS{idVendor}=="04e8", ATTRS{idProduct}=="a500", TAG+="uaccess", ENV{ID_xrhardware}="1" @@ -95,6 +111,14 @@ ATTRS{idVendor}=="2b1c", ATTRS{idProduct}=="0100", TAG+="uaccess", ENV{ID_xrhard ATTRS{idVendor}=="2b1c", ATTRS{idProduct}=="0101", TAG+="uaccess", ENV{ID_xrhardware}="1" +# Microsoft Windows MR Controller - Bluetooth +KERNELS=="0005:045E:065B.*", TAG+="uaccess", ENV{ID_xrhardware}="1", ENV{LIBINPUT_IGNORE_DEVICE}="1" + + +# Microsoft Windows MR Controller - Bluetooth +KERNELS=="0005:045E:065D.*", TAG+="uaccess", ENV{ID_xrhardware}="1", ENV{LIBINPUT_IGNORE_DEVICE}="1" + + # Sony PlayStation VR - USB ATTRS{idVendor}=="054c", ATTRS{idProduct}=="09af", TAG+="uaccess", ENV{ID_xrhardware}="1" @@ -120,6 +144,10 @@ ATTRS{idVendor}=="045e", ATTRS{idProduct}=="0659", TAG+="uaccess", ENV{ID_xrhard # Samsung Odyssey+ sensors - USB ATTRS{idVendor}=="04e8", ATTRS{idProduct}=="7312", TAG+="uaccess", ENV{ID_xrhardware}="1" + +# Vis3r NxtVR - USB +ATTRS{idVendor}=="1209", ATTRS{idProduct}=="9d0f", TAG+="uaccess", ENV{ID_xrhardware}="1" + ################### # END DEVICE LIST # diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..46edbff --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,59 @@ +# Changelog for xr-hardware + +<!-- +SPDX-License-Identifier: CC0-1.0 +SPDX-FileCopyrightText: 2020 Collabora, Ltd. and the xr-hardware contributors +--> + +## xr-hardware 0.3.0 (2020-12-02) + +Note that the default branch has been renamed to "main" in the repository. + +- Additions + - Oculus Rift S + ([!5](https://gitlab.freedesktop.org/monado/utilities/xr-hardware/merge_requests/5), + [#3](https://gitlab.freedesktop.org/monado/utilities/xr-hardware/issues/3)) + - Windows MR controller support + ([!6](https://gitlab.freedesktop.org/monado/utilities/xr-hardware/merge_requests/6), + [#1](https://gitlab.freedesktop.org/monado/utilities/xr-hardware/issues/1)) + - Vis3r NxtVR budget VR headset + ([!7](https://gitlab.freedesktop.org/monado/utilities/xr-hardware/merge_requests/7)) + - Pimax 4k headset + ([!10](https://gitlab.freedesktop.org/monado/utilities/xr-hardware/merge_requests/10), + [#5](https://gitlab.freedesktop.org/monado/utilities/xr-hardware/issues/5)) +- Improvements + - Valve Index: ID for Watchman device + ([!8](https://gitlab.freedesktop.org/monado/utilities/xr-hardware/merge_requests/8)) + - Now using [Proclamation](https://gitlab.com/ryanpavlik/proclamation) to + maintain a project changelog. + ([!9](https://gitlab.freedesktop.org/monado/utilities/xr-hardware/merge_requests/9)) + - NOLO CV1: Additional ID + ([!10](https://gitlab.freedesktop.org/monado/utilities/xr-hardware/merge_requests/10), + [#5](https://gitlab.freedesktop.org/monado/utilities/xr-hardware/issues/5)) + - Additional IDs for HTC Vive Pro + ([!11](https://gitlab.freedesktop.org/monado/utilities/xr-hardware/merge_requests/11), + [#6](https://gitlab.freedesktop.org/monado/utilities/xr-hardware/issues/6)) + +## xr-hardware 0.2.1 (2020-01-22) + +- Fixes + - Vive support + +## xr-hardware 0.2 (2020-01-22) + +- Additions + - Support for Bluetooth devices + - 3Glasses devices + - PS Move controllers +- Improvements + - Refactor generated files + - Re-organize code and improve testing/quality + +## xr-hardware 0.1.1 (2020-01-21) + +- Fixes + - Fix a typo related to HTC Vive support. + +## xr-hardware 0.1 (2020-01-21) + +Initial release. @@ -90,6 +90,12 @@ If you're a distro packager, use slightly different targets: ## Contributing +Contributions are assumed to be under the same license license as you received +with the files: the Inbound==Outbound convention. + +Please submit a changelog fragment with your changes: see the `changes` +directory for details. + The device database is in `xrhardware/db.py` so that's the most likely file to be modified. diff --git a/changes/.proclamation.json b/changes/.proclamation.json new file mode 100644 index 0000000..a1308d5 --- /dev/null +++ b/changes/.proclamation.json @@ -0,0 +1,20 @@ +{ + "$schema": "https://ryanpavlik.gitlab.io/proclamation/proclamation.schema.json", + "#": "This is a config file for Proclamation, the changelog combiner: https://gitlab.com/ryanpavlik/proclamation", + "SPDX-License-Identifier: CC0-1.0": "", + "SPDX-FileCopyrightText: 2020 Collabora, Ltd. and the Proclamation contributors": "", + "project_name": "xr-hardware", + "base_url": "https://gitlab.freedesktop.org/monado/utilities/xr-hardware", + "news_filename": "../CHANGELOG.md", + "sections": { + "Additions": { + "directory": "additions" + }, + "Improvements": { + "directory": "improvements" + }, + "Fixes": { + "directory": "fixes" + } + } +} diff --git a/changes/.proclamation.json.license b/changes/.proclamation.json.license new file mode 100644 index 0000000..34163f2 --- /dev/null +++ b/changes/.proclamation.json.license @@ -0,0 +1,2 @@ +# SPDX-License-Identifier: CC0-1.0 +# SPDX-FileCopyrightText: 2020 Collabora, Ltd. and the Proclamation contributors diff --git a/changes/README.md b/changes/README.md new file mode 100644 index 0000000..92e471b --- /dev/null +++ b/changes/README.md @@ -0,0 +1,151 @@ +# Usage of Proclamation to maintain changelogs + +<!-- +SPDX-License-Identifier: CC0-1.0 +SPDX-FileCopyrightText: 2020 Collabora, Ltd. and the Proclamation contributors +--> + +This project uses the [Proclamation][] tool to maintain changelogs. Contributors +to this project do not need to use Proclamation, but they are asked to write a +fragment for the changelog describing their change. See below for more details. + +- Directory to run Proclamation in: `changes/` + - Config file: default name (`.proclamation.json`) +- Location of the per-changelog-section directories: `changes/` + +[Proclamation]: https://gitlab.com/ryanpavlik/proclamation + +## Table of Contents + +- [Table of Contents](#table-of-contents) +- [Quick Start Instructions for Contributors](#quick-start-instructions-for-contributors) +- [About Proclamation and Usage Instructions](#about-proclamation-and-usage-instructions) + - [Fragments](#fragments) + - [References](#references) +- [Sample Usage Workflow](#sample-usage-workflow) + - [During Development](#during-development) + - [Preparing for a Release](#preparing-for-a-release) + +## Quick Start Instructions for Contributors + +- Get a merge request number for your change: this might involve pushing it as a + WIP. +- Create a file in the appropriate section's directory, named `mr.YOURNUMBER.md` +- In that file, briefly describe your change as you would like it describe in + the changelog for the next release. A common format is to start with a + component, subsection, or type of change (bug fix, feature), then a colon, + then a sentence describing the user impact of the change. +- If your changes affect multiple sections, you can have a file in each section + describing the section-specific changes. +- If you want more than one changelog fragment per section in a single change, + you can name the additional fragments `mr.YOURNUMBER.2.md`, + `mr.YOURNUMBER.3.md`, etc. The additional number appended at the end will not + appear in the output, but will keep the files separate and will affect the + sort order of the fragments. +- If your change resolves an issue or otherwise references some issue or + merge request, you can add those references to the beginning of your + changelog fragment. See the full instructions below regarding + [References](#references). + +## About Proclamation and Usage Instructions + +The "Proclamation" tool assembles changelogs, which incorporate fragments of +changelog text added by the author of a change in a specific location and +format. + +### Fragments + +Each change should add a changelog fragment file, whose contents are +Markdown-formatted text describing the change briefly. Reference metadata will +be used to automatically add links to associated issues/merge requests/pull +requests, so no need to add these in your fragment text. The simplest changelog +fragment just contains one line of Markdown text describing the change: + +```md +Here the author of a change has written some text about it. +``` + +### References + +The changelog fragment system revolves around "references" - these are issue +reports or merge requests associated with a change. Each fragment must have at +least one of these, which forms the main part of the filename. If applicable, +additional can be added within the file - see below for details. + +The format of references in general is: + +```txt +<ref_type>.<number> +``` + +where + +- `ref_type` is "issue" or "mr" +- `number` is the issue or MR number + +Your changelog fragment filename is simply the "main" reference with the `.md` +extension added. + +Notably, you can append an extra token, like `.2`, before the file extension to +easily handle multiple fragments for a single merge request, etc. + +To specify additional references in a file, prefix the contents of the changelog +fragment with a block delimited above and below by `---`, with one reference on +each line. (This can be seen as a very minimal subset of "YAML Front Matter", if +you're familiar with that concept.) For example: + +```md +--- +- issue.35 +- mr.93 +--- +Here the author of a change has written some text about it. +``` + +## Sample Usage Workflow + +Note that the base `proclamation` script and all its subcommands have help, +accessible through `-h` or `--help`. The guidance in this section of the README +is intentionally minimal, to avoid contradicting the online help which remains +up-to-date implicitly. This is also only the simplest, minimal way to perform +these operations: if your project is more complex, there may already be more +features to support your needs in the command line help. + +### During Development + +As changes get submitted to your project, have each change author create a +changelog fragment file. Since these are all separate files, with names made +unique by your issue/repo tracker, there won't be merge conflicts no matter what +order they're merged in. (This is the central benefit of Proclamation, and its +inspiration, towncrier, over having each contributor edit CHANGES as part of +their submission.) + +At any time you can run `proclamation draft` to preview the release portion that +would be added to your changelog if you released at that time. + +### Preparing for a Release + +When you're ready to perform a release, you'll want to run Proclamation to +update your changelog, then remove the fragments that you've incorporated into +the regular changelog. You can use a command like the following: + +```sh +proclamation build YOUR_NEW_VERSION +``` + +to preview the full file on screen. When you're ready to actually perform the +update, run something like: + +```sh +proclamation build YOUR_NEW_VERSION --delete-fragments --overwrite +``` + +to overwrite your changelog file with the updated one and delete the used +changelog fragments. + +You're welcome to manually edit the new (or old!) changelog entries as desired: +as long as the `insert_point_pattern` (by default, `^## .*`) can still match, +Proclamation will not be confused. + +Finally, make sure the deletion of the fragments and the update of the changelog +has been checked in to your version control system. diff --git a/changes/additions/.gitkeep b/changes/additions/.gitkeep new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/changes/additions/.gitkeep diff --git a/changes/fixes/.gitkeep b/changes/fixes/.gitkeep new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/changes/fixes/.gitkeep diff --git a/changes/improvements/.gitkeep b/changes/improvements/.gitkeep new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/changes/improvements/.gitkeep diff --git a/xrhardware/db.py b/xrhardware/db.py index 4c6a396..97eb818 100644 --- a/xrhardware/db.py +++ b/xrhardware/db.py @@ -16,6 +16,7 @@ def get_devices(): Device("HTC Vive", "0bb4", "2c87"), Device("HTC Vive Pro", "0bb4", "0309"), Device("Valve Watchman Dongle", "28de", "2101"), + Device("Valve VR Radio", "28de", "2102"), Device("Valve Index Controller", "28de", "2300"), # Name might be wrong. Device("Valve Receiver for Lighthouse - HTC Vive", "28de", "2000"), @@ -24,12 +25,21 @@ def get_devices(): Device("OSVR HDK Camera", "0bda", "57e8"), Device("Sensics zSight", "16d0", "0515", usb_serial_name="zSight"), + # Re-used ID from ST Micro "LED badge -- mini LED display -- 11x44" Device("NOLO CV1", "0483", "5750"), + # Unknown where this VID was assigned + Device("NOLO CV1", "28e9", "028a"), + + # ST Micro VID, and PID not listed in usb-ids so may be uniquely + # assigned (or may be just copied from PID of DK2 since the product + # string is "Rift P1") + Device("Pimax 4k", "0483", "0021"), Device("Oculus Rift (DK1)", "2833", "0001"), Device("Oculus Rift (DK2)", "2833", "0021"), Device("Oculus Rift (DK2)", "2833", "2021"), Device("Oculus Rift (CV1)", "2833", "0031"), + Device("Oculus Rift S", "2833", "0051"), Device("Samsung GearVR (Gen1)", "04e8", "a500"), Device("3Glasses-D3V1", "2b1c", "0200"), @@ -39,6 +49,14 @@ def get_devices(): Device("3Glasses-S1V5", "2b1c", "0100"), Device("3Glasses-S1V8", "2b1c", "0101"), + # Need to be ignored by libinput to avoid spurious touchscreen events + Device("Microsoft Windows MR Controller", "045e", "065b", + bluetooth=True, usb=False, + extra_properties={"LIBINPUT_IGNORE_DEVICE": "1"}), + Device("Microsoft Windows MR Controller", "045e", "065d", + bluetooth=True, usb=False, + extra_properties={"LIBINPUT_IGNORE_DEVICE": "1"}), + Device("Sony PlayStation VR", "054c", "09af"), Device("Sony PlayStation Move Motion Controller CECH-ZCM1", @@ -54,4 +72,7 @@ def get_devices(): Device("Samsung Odyssey+ sensors", "04e8", "7312"), # Pretends to be a DK1... # Device("VR-Tek WVR1", "2833", "0001"), + + # Vis3r NxtVR + Device("Vis3r NxtVR", "1209", "9d0f"), ) diff --git a/xrhardware/device.py b/xrhardware/device.py index 865ac64..9ded55d 100644 --- a/xrhardware/device.py +++ b/xrhardware/device.py @@ -17,6 +17,7 @@ class Device: usb_serial_name = attr.ib(default=None) usb = attr.ib(default=True) bluetooth = attr.ib(default=False) + extra_properties = attr.ib(default=None) def get_properties_to_set(self): """Generate the udev properties to set for this device.""" @@ -24,6 +25,9 @@ class Device: if self.usb_serial_name: yield ('ID_xrhardware_USBSERIAL_NAME', self.usb_serial_name) + if self.extra_properties: + for k, v in self.extra_properties.items(): + yield (k, v) def yield_hwdb_identification(self): """Compute identification for hwdb recognition of this device.""" |