Cleaning up a Steam Container For better maintainability and restrictiveness

I created an unprivileged steam container, and it works for what I need it, but I’m not sure if I’ve properly constrained it, or passed the devices in a way that’s good for a longer term. This is a large software project and the terms I need to know are hard to search for as I only know how to refer to them in so many ways. Essentially I need my controllers and vr equipment to be available to the container. I manually added all the devices from the steam shipped udev rules, and the hidraw devices which seems to work, but I’m not certain if it’s the best way to do it. Any pointers would be great!
Thanks!p

# lxc config show arch-games
architecture: x86_64
config:
  environment.DISPLAY: :0
  environment.DRI_PRIME: "1"
  environment.PULSE_SERVER: unix:/home/loser/pulse-native
  image.architecture: amd64
  image.description: Archlinux current amd64 (20230220_04:19)
  image.os: Archlinux
  image.release: current
  image.requirements.secureboot: "false"
  image.serial: "20230220_04:19"
  image.type: squashfs
  image.variant: default
  security.nesting: "true"
  security.privileged: "false"
  volatile.base_image: 6bbff45f6c028d528c7b282465ff35169da6beb0cec43938d4a166e31e9bc4cf
  volatile.cloud-init.instance-id: 58ed88b6-9c65-47f4-a741-077923fb6b67
  volatile.eth0.host_name: vethcdd5e55f
  volatile.eth0.hwaddr: 00:16:3e:08:8e:54
  volatile.idmap.base: "0"
  volatile.idmap.current: '[{"Isuid":true,"Isgid":false,"Hostid":1000000,"Nsid":0,"Maprange":1000000000},{"Isuid":false,"Isgid":true,"Hostid":1000000,"Nsid":0,"Maprange":1000000000}]'
  volatile.idmap.next: '[{"Isuid":true,"Isgid":false,"Hostid":1000000,"Nsid":0,"Maprange":1000000000},{"Isuid":false,"Isgid":true,"Hostid":1000000,"Nsid":0,"Maprange":1000000000}]'
  volatile.last_state.idmap: '[]'
  volatile.last_state.power: RUNNING
  volatile.last_state.ready: "false"
  volatile.uuid: 403dddbd-c462-4153-b016-a30ed1a683e4
devices:
  PASocket1:
    bind: container
    connect: unix:/run/user/1000/pulse/native
    gid: "1000"
    listen: unix:/home/loser/pulse-native
    mode: "0777"
    security.gid: "1000"
    security.uid: "1000"
    type: proxy
    uid: "1000"
  X0:
    bind: container
    connect: unix:/tmp/.X11-unix/X0
    gid: "1000"
    listen: unix:/tmp/.X11-unix/X0
    mode: "0777"
    security.gid: "1000"
    security.uid: "1000"
    type: proxy
    uid: "1000"
  hidraw0:
    gid: "1000"
    mode: "0660"
    path: /dev/hidraw0
    type: unix-char
    uid: "1000"
  hidraw1:
    gid: "1000"
    mode: "0660"
    path: /dev/hidraw1
    type: unix-char
    uid: "1000"
  hidraw2:
    gid: "1000"
    mode: "0660"
    path: /dev/hidraw2
    type: unix-char
    uid: "1000"
  hidraw3:
    gid: "1000"
    mode: "0660"
    path: /dev/hidraw3
    type: unix-char
    uid: "1000"
  hidraw4:
    gid: "1000"
    mode: "0660"
    path: /dev/hidraw4
    type: unix-char
    uid: "1000"
  hidraw5:
    gid: "1000"
    mode: "0660"
    path: /dev/hidraw5
    type: unix-char
    uid: "1000"
  hidraw6:
    gid: "1000"
    mode: "0660"
    path: /dev/hidraw6
    type: unix-char
    uid: "1000"
  hidraw7:
    gid: "1000"
    mode: "0660"
    path: /dev/hidraw7
    type: unix-char
    uid: "1000"
  hidraw8:
    gid: "1000"
    mode: "0660"
    path: /dev/hidraw8
    type: unix-char
    uid: "1000"
  hidraw9:
    gid: "1000"
    mode: "0660"
    path: /dev/hidraw9
    type: unix-char
    uid: "1000"
  hidraw10:
    gid: "1000"
    mode: "0660"
    path: /dev/hidraw10
    type: unix-char
    uid: "1000"
  mydevice1:
    productid: "2740"
    type: usb
    vendorid: "0424"
  mydevice2:
    productid: "2744"
    type: usb
    vendorid: "0424"
  mydevice3:
    productid: "5744"
    type: usb
    vendorid: "0424"
  mydevice4:
    productid: "2613"
    type: usb
    vendorid: 28de
  mydevice5:
    productid: "2400"
    type: usb
    vendorid: 28de
  mygpu:
    type: gpu
  steam-input1:
    type: usb
    vendorid: 28de
  steam-input2:
    productid: 05c4
    type: usb
    vendorid: 054c
  steam-input3:
    productid: 0ba0
    type: usb
    vendorid: 054c
  steam-input4:
    productid: 09cc
    type: usb
    vendorid: 054c
  steam-input5:
    productid: 0ce6
    type: usb
    vendorid: 054c
  steam-input6:
    productid: "2009"
    type: usb
    vendorid: 057e
  steam-input7:
    productid: "0180"
    type: usb
    vendorid: 0e6f
  steam-input8:
    productid: "0185"
    type: usb
    vendorid: 0e6f
  steam-input9:
    productid: a711
    type: usb
    vendorid: 20d6
  steam-input10:
    productid: a713
    type: usb
    vendorid: 20d6
  steam-input11:
    productid: "0188"
    type: usb
    vendorid: 0e6f
  steam-input12:
    productid: 0d01
    type: usb
    vendorid: 146b
  steam-input13:
    productid: "1000"
    type: usb
    vendorid: "1532"
  steam-input14:
    productid: "1007"
    type: usb
    vendorid: "1532"
  steam-input15:
    productid: "1008"
    type: usb
    vendorid: "1532"
  steam-input16:
    productid: 100a
    type: usb
    vendorid: "1532"
  steam-input17:
    productid: "0401"
    type: usb
    vendorid: "1532"
  steam-input18:
    productid: "8250"
    type: usb
    vendorid: "0738"
  steam-input19:
    productid: "8384"
    type: usb
    vendorid: "0738"
  steam-input20:
    productid: 0c30
    type: usb
    vendorid: 0c12
  steam-input21:
    productid: 1cf6
    type: usb
    vendorid: 0c12
  steam-input22:
    productid: 0ef6
    type: usb
    vendorid: 0c12
  steam-input23:
    productid: 008a
    type: usb
    vendorid: 0f0d
  steam-input24:
    productid: "0055"
    type: usb
    vendorid: 0f0d
  steam-input25:
    productid: "0066"
    type: usb
    vendorid: 0f0d
  steam-input26:
    productid: 00c1
    type: usb
    vendorid: 0f0d
  steam-input27:
    productid: 00ee
    type: usb
    vendorid: 0f0d
  steam-input28:
    productid: "0e10"
    type: usb
    vendorid: 0c12
  steam-input29:
    productid: 05c5
    type: usb
    vendorid: 054c
  steam-input30:
    productid: "7203"
    type: usb
    vendorid: "0955"
  steam-input31:
    productid: "7210"
    type: usb
    vendorid: "0955"
  steam-input32:
    productid: "7214"
    type: usb
    vendorid: "0955"
  steam-input33:
    productid: "0025"
    type: usb
    vendorid: "9886"
  steam-input34:
    productid: d00e
    type: usb
    vendorid: 044f
  steamvr1:
    productid: 8a12
    type: usb
    vendorid: 114d
  steamvr2:
    productid: 2c87
    type: usb
    vendorid: 0bb4
  steamvr3:
    productid: "0306"
    type: usb
    vendorid: 0bb4
  steamvr4:
    productid: "0309"
    type: usb
    vendorid: 0bb4
  steamvr5:
    productid: 030a
    type: usb
    vendorid: 0bb4
  steamvr6:
    productid: 030b
    type: usb
    vendorid: 0bb4
  steamvr7:
    productid: 030c
    type: usb
    vendorid: 0bb4
  steamvr8:
    productid: 030e
    type: usb
    vendorid: 0bb4
  steamvr9:
    productid: "1043"
    type: usb
    vendorid: 28de
  steamvr10:
    productid: "1142"
    type: usb
    vendorid: 28de
  steamvr11:
    productid: "2000"
    type: usb
    vendorid: 28de
  steamvr12:
    productid: "2010"
    type: usb
    vendorid: 28de
  steamvr13:
    productid: "2011"
    type: usb
    vendorid: 28de
  steamvr14:
    productid: "2012"
    type: usb
    vendorid: 28de
  steamvr15:
    productid: "2021"
    type: usb
    vendorid: 28de
  steamvr16:
    productid: "2022"
    type: usb
    vendorid: 28de
  steamvr17:
    productid: "2050"
    type: usb
    vendorid: 28de
  steamvr18:
    productid: "2101"
    type: usb
    vendorid: 28de
  steamvr19:
    productid: "2102"
    type: usb
    vendorid: 28de
  steamvr20:
    productid: "2150"
    type: usb
    vendorid: 28de
  steamvr21:
    productid: "2300"
    type: usb
    vendorid: 28de
  steamvr22:
    productid: "2301"
    type: usb
    vendorid: 28de
ephemeral: false
profiles:
- default
stateful: false
description: "
$ cat /etc/udev/rules.d/70-steam-vr.rules
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="114d", ATTRS{idProduct}=="8a12", MODE="0660", MODE="0660", TAG+="uaccess"

KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="2c87", MODE="0660", MODE="0660", TAG+="uaccess"
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="0306", MODE="0660", MODE="0660", TAG+="uaccess"
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="0309", MODE="0660", MODE="0660", TAG+="uaccess"
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="030a", MODE="0660", MODE="0660", TAG+="uaccess"
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="030b", MODE="0660", MODE="0660", TAG+="uaccess"
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="030c", MODE="0660", MODE="0660", TAG+="uaccess"
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="030e", MODE="0660", MODE="0660", TAG+="uaccess"

KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="28de", ATTRS{idProduct}=="1043", MODE="0660", MODE="0660", TAG+="uaccess"
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="28de", ATTRS{idProduct}=="1142", MODE="0660", MODE="0660", TAG+="uaccess"
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="28de", ATTRS{idProduct}=="2000", MODE="0660", MODE="0660", TAG+="uaccess"
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="28de", ATTRS{idProduct}=="2010", MODE="0660", MODE="0660", TAG+="uaccess"
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="28de", ATTRS{idProduct}=="2011", MODE="0660", MODE="0660", TAG+="uaccess"
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="28de", ATTRS{idProduct}=="2012", MODE="0660", MODE="0660", TAG+="uaccess"
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="28de", ATTRS{idProduct}=="2021", MODE="0660", MODE="0660", TAG+="uaccess"
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="28de", ATTRS{idProduct}=="2022", MODE="0660", MODE="0660", TAG+="uaccess"
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="28de", ATTRS{idProduct}=="2050", MODE="0660", MODE="0660", TAG+="uaccess"
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="28de", ATTRS{idProduct}=="2101", MODE="0660", MODE="0660", TAG+="uaccess"
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="28de", ATTRS{idProduct}=="2102", MODE="0660", MODE="0660", TAG+="uaccess"
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="28de", ATTRS{idProduct}=="2150", MODE="0660", MODE="0660", TAG+="uaccess"
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="28de", ATTRS{idProduct}=="2300", MODE="0660", MODE="0660", TAG+="uaccess"
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="28de", ATTRS{idProduct}=="2301", MODE="0660", MODE="0660", TAG+="uaccess"
[root@arch-games ~]# cat /usr/lib/udev/rules.d/70-steam-vr.rules

KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="114d", ATTRS{idProduct}=="8a12", MODE="0660", MODE="0660", TAG+="uaccess"

KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="2c87", MODE="0660", MODE="0660", TAG+="uaccess"
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="0306", MODE="0660", MODE="0660", TAG+="uaccess"
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="0309", MODE="0660", MODE="0660", TAG+="uaccess"
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="030a", MODE="0660", MODE="0660", TAG+="uaccess"
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="030b", MODE="0660", MODE="0660", TAG+="uaccess"
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="030c", MODE="0660", MODE="0660", TAG+="uaccess"
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="030e", MODE="0660", MODE="0660", TAG+="uaccess"

KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="28de", ATTRS{idProduct}=="1043", MODE="0660", MODE="0660", TAG+="uaccess"
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="28de", ATTRS{idProduct}=="1142", MODE="0660", MODE="0660", TAG+="uaccess"
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="28de", ATTRS{idProduct}=="2000", MODE="0660", MODE="0660", TAG+="uaccess"
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="28de", ATTRS{idProduct}=="2010", MODE="0660", MODE="0660", TAG+="uaccess"
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="28de", ATTRS{idProduct}=="2011", MODE="0660", MODE="0660", TAG+="uaccess"
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="28de", ATTRS{idProduct}=="2012", MODE="0660", MODE="0660", TAG+="uaccess"
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="28de", ATTRS{idProduct}=="2021", MODE="0660", MODE="0660", TAG+="uaccess"
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="28de", ATTRS{idProduct}=="2022", MODE="0660", MODE="0660", TAG+="uaccess"
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="28de", ATTRS{idProduct}=="2050", MODE="0660", MODE="0660", TAG+="uaccess"
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="28de", ATTRS{idProduct}=="2101", MODE="0660", MODE="0660", TAG+="uaccess"
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="28de", ATTRS{idProduct}=="2102", MODE="0660", MODE="0660", TAG+="uaccess"
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="28de", ATTRS{idProduct}=="2150", MODE="0660", MODE="0660", TAG+="uaccess"
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="28de", ATTRS{idProduct}=="2300", MODE="0660", MODE="0660", TAG+="uaccess"
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="28de", ATTRS{idProduct}=="2301", MODE="0660", MODE="0660", TAG+="uaccess"
$ cat /etc/udev/rules.d/70-steam-input.rules
# Valve USB devices
SUBSYSTEM=="usb", ATTRS{idVendor}=="28de", MODE="0660", TAG+="uaccess"

# Steam Controller udev write access
KERNEL=="uinput", SUBSYSTEM=="misc", OPTIONS+="static_node=uinput", TAG+="uaccess", OPTIONS+="static_node=uinput"

# Valve HID devices over USB hidraw
KERNEL=="hidraw*", ATTRS{idVendor}=="28de", MODE="0660", TAG+="uaccess"

# Valve HID devices over bluetooth hidraw
KERNEL=="hidraw*", KERNELS=="*28DE:*", MODE="0660", TAG+="uaccess"

# DualShock 4 over USB hidraw
KERNEL=="hidraw*", ATTRS{idVendor}=="054c", ATTRS{idProduct}=="05c4", MODE="0660", TAG+="uaccess"

# DualShock 4 wireless adapter over USB hidraw
KERNEL=="hidraw*", ATTRS{idVendor}=="054c", ATTRS{idProduct}=="0ba0", MODE="0660", TAG+="uaccess"

# DualShock 4 Slim over USB hidraw
KERNEL=="hidraw*", ATTRS{idVendor}=="054c", ATTRS{idProduct}=="09cc", MODE="0660", TAG+="uaccess"

# DualShock 4 over bluetooth hidraw
KERNEL=="hidraw*", KERNELS=="*054C:05C4*", MODE="0660", TAG+="uaccess"

# DualShock 4 Slim over bluetooth hidraw
KERNEL=="hidraw*", KERNELS=="*054C:09CC*", MODE="0660", TAG+="uaccess"

# PS5 DualSense controller over USB hidraw
KERNEL=="hidraw*", ATTRS{idVendor}=="054c", ATTRS{idProduct}=="0ce6", MODE="0660", TAG+="uaccess"

# PS5 DualSense controller over bluetooth hidraw
KERNEL=="hidraw*", KERNELS=="*054C:0CE6*", MODE="0660", TAG+="uaccess"

# Nintendo Switch Pro Controller over USB hidraw
KERNEL=="hidraw*", ATTRS{idVendor}=="057e", ATTRS{idProduct}=="2009", MODE="0660", TAG+="uaccess"

# Nintendo Switch Pro Controller over bluetooth hidraw
KERNEL=="hidraw*", KERNELS=="*057E:2009*", MODE="0660", TAG+="uaccess"

# Faceoff Wired Pro Controller for Nintendo Switch
KERNEL=="hidraw*", ATTRS{idVendor}=="0e6f", ATTRS{idProduct}=="0180", MODE="0660", TAG+="uaccess"

# PDP Wired Fight Pad Pro for Nintendo Switch
KERNEL=="hidraw*", ATTRS{idVendor}=="0e6f", ATTRS{idProduct}=="0185", MODE="0660", TAG+="uaccess"

# PowerA Wired Controller for Nintendo Switch
KERNEL=="hidraw*", ATTRS{idVendor}=="20d6", ATTRS{idProduct}=="a711", MODE="0660", TAG+="uaccess"
KERNEL=="hidraw*", ATTRS{idVendor}=="20d6", ATTRS{idProduct}=="a713", MODE="0660", TAG+="uaccess"

# PowerA Wireless Controller for Nintendo Switch we have to use
# ATTRS{name} since VID/PID are reported as zeros. We use /bin/sh
# instead of udevadm directly becuase we need to use '*' glob at the
# end of "hidraw" name since we don't know the index it'd have.
#
KERNEL=="input*", ATTRS{name}=="Lic Pro Controller", RUN{program}+="/bin/sh -c 'udevadm test-builtin uaccess /sys/%p/../../hidraw/hidraw*'"

# Afterglow Deluxe+ Wired Controller for Nintendo Switch
KERNEL=="hidraw*", ATTRS{idVendor}=="0e6f", ATTRS{idProduct}=="0188", MODE="0660", TAG+="uaccess"

# Nacon PS4 Revolution Pro Controller
KERNEL=="hidraw*", ATTRS{idVendor}=="146b", ATTRS{idProduct}=="0d01", MODE="0660", TAG+="uaccess"

# Razer Raiju PS4 Controller
KERNEL=="hidraw*", ATTRS{idVendor}=="1532", ATTRS{idProduct}=="1000", MODE="0660", TAG+="uaccess"

# Razer Raiju 2 Tournament Edition
KERNEL=="hidraw*", ATTRS{idVendor}=="1532", ATTRS{idProduct}=="1007", MODE="0660", TAG+="uaccess"

# Razer Panthera EVO Arcade Stick
KERNEL=="hidraw*", ATTRS{idVendor}=="1532", ATTRS{idProduct}=="1008", MODE="0660", TAG+="uaccess"

# Razer Raiju PS4 Controller Tournament Edition over bluetooth hidraw
KERNEL=="hidraw*", KERNELS=="*1532:100A*", MODE="0660", TAG+="uaccess"

# Razer Panthera Arcade Stick
KERNEL=="hidraw*", ATTRS{idVendor}=="1532", ATTRS{idProduct}=="0401", MODE="0660", TAG+="uaccess"

# Mad Catz - Street Fighter V Arcade FightPad PRO
KERNEL=="hidraw*", ATTRS{idVendor}=="0738", ATTRS{idProduct}=="8250", MODE="0660", TAG+="uaccess"

# Mad Catz - Street Fighter V Arcade FightStick TE S+
KERNEL=="hidraw*", ATTRS{idVendor}=="0738", ATTRS{idProduct}=="8384", MODE="0660", TAG+="uaccess"

# Brooks Universal Fighting Board
KERNEL=="hidraw*", ATTRS{idVendor}=="0c12", ATTRS{idProduct}=="0c30", MODE="0660", TAG+="uaccess"

# EMiO Elite Controller for PS4
KERNEL=="hidraw*", ATTRS{idVendor}=="0c12", ATTRS{idProduct}=="1cf6", MODE="0660", TAG+="uaccess"

# ZeroPlus P4 (hitbox)
KERNEL=="hidraw*", ATTRS{idVendor}=="0c12", ATTRS{idProduct}=="0ef6", MODE="0660", TAG+="uaccess"

# HORI RAP4
KERNEL=="hidraw*", ATTRS{idVendor}=="0f0d", ATTRS{idProduct}=="008a", MODE="0660", TAG+="uaccess"

# HORIPAD 4 FPS
KERNEL=="hidraw*", ATTRS{idVendor}=="0f0d", ATTRS{idProduct}=="0055", MODE="0660", TAG+="uaccess"

# HORIPAD 4 FPS Plus
KERNEL=="hidraw*", ATTRS{idVendor}=="0f0d", ATTRS{idProduct}=="0066", MODE="0660", TAG+="uaccess"

# HORIPAD for Nintendo Switch
KERNEL=="hidraw*", ATTRS{idVendor}=="0f0d", ATTRS{idProduct}=="00c1", MODE="0660", TAG+="uaccess"

# HORIPAD mini 4
KERNEL=="hidraw*", ATTRS{idVendor}=="0f0d", ATTRS{idProduct}=="00ee", MODE="0660", TAG+="uaccess"

# Armor Armor 3 Pad PS4
KERNEL=="hidraw*", ATTRS{idVendor}=="0c12", ATTRS{idProduct}=="0e10", MODE="0660", TAG+="uaccess"

# STRIKEPAD PS4 Grip Add-on
KERNEL=="hidraw*", ATTRS{idVendor}=="054c", ATTRS{idProduct}=="05c5", MODE="0660", TAG+="uaccess"

# NVIDIA Shield Portable (2013 - NVIDIA_Controller_v01.01 - In-Home Streaming only)
KERNEL=="hidraw*", ATTRS{idVendor}=="0955", ATTRS{idProduct}=="7203", MODE="0660", TAG+="uaccess", ENV{ID_INPUT_JOYSTICK}="1", ENV{ID_INPUT_MOUSE}=""

# NVIDIA Shield Controller (2015 - NVIDIA_Controller_v01.03 over USB hidraw)
KERNEL=="hidraw*", ATTRS{idVendor}=="0955", ATTRS{idProduct}=="7210", MODE="0660", TAG+="uaccess", ENV{ID_INPUT_JOYSTICK}="1", ENV{ID_INPUT_MOUSE}=""

# NVIDIA Shield Controller (2017 - NVIDIA_Controller_v01.04 over bluetooth hidraw)
KERNEL=="hidraw*", KERNELS=="*0955:7214*", MODE="0660", TAG+="uaccess"

# Astro C40
KERNEL=="hidraw*", ATTRS{idVendor}=="9886", ATTRS{idProduct}=="0025", MODE="0660", TAG+="uaccess"

# Thrustmaster eSwap Pro
KERNEL=="hidraw*", ATTRS{idVendor}=="044f", ATTRS{idProduct}=="d00e", MODE="0660", TAG+="uaccess"