summarylogtreecommitdiffstats
path: root/devices.py
blob: ef47ae136aaf0a65d823708f4f39391196b9b339 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
from textwrap import dedent


class ArctisDevice:
    name: str
    product_id: int

    def __init__(self, name: str, product_id: int):
        self.name = name
        self.product_id = product_id

    def gen_entry(self) -> str:
        pid = hex(self.product_id)[2:]
        pid = pid.zfill(4)
        lines = f'''
            # {self.name}
            SUBSYSTEMS=="usb", ATTRS{{idVendor}}=="1038", ATTRS{{idProduct}}=="{pid}", MODE="0660", TAG+="uaccess"
        '''  # noqa: E501

        return dedent(lines).strip()


devices = [
    ArctisDevice("Arctis Pro Wireless", 4752),
    ArctisDevice("Arctis 7 2017", 4704),
    ArctisDevice("Arctis 7 2019", 4781),
    ArctisDevice("Arctis Pro 2019", 4690),
    ArctisDevice("Arctis Pro GameDac", 4736),
    ArctisDevice("Arctis 9", 4802),
    ArctisDevice("Arctis 1 Wireless", 4787),
    ArctisDevice("Arctis 1 Xbox", 4790),
    ArctisDevice("Arctis 7X", 4823),
    ArctisDevice("Arctis 7 Plus", 8718),
    ArctisDevice("Arctis 7P Plus", 8722),
    ArctisDevice("Arctis 7X Plus", 8726),
    ArctisDevice("Arctis 7 Destiny Plus", 8758),
    ArctisDevice("Arctis Nova 7", 8706),
    ArctisDevice("Arctis Nova 7X", 8710),
    ArctisDevice("Arctis Nova 7X v2", 8792),
    ArctisDevice("Arctis Nova 7P", 8714),
    ArctisDevice("Arctis Nova 7 Diablo IV", 8762),
    ArctisDevice("Arctis Nova 5", 8754),
    ArctisDevice("Arctis Nova 5X", 8787),
]

OUTPUT_FILE = "71-steelseries-arctis.rules"

with open(OUTPUT_FILE, "w") as f:
    for device in devices:
        f.write(device.gen_entry() + "\n\n")