summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorTroy Hoover2022-11-16 17:58:04 -0600
committerTroy Hoover2022-11-16 17:58:04 -0600
commit37841eacdb900c23416e8a770e32eff6d97060fa (patch)
tree35a93c681b62969de65af53f58a62876a9e2049b
downloadaur-37841eacdb900c23416e8a770e32eff6d97060fa.tar.gz
initial release
-rw-r--r--.SRCINFO20
-rw-r--r--8bitdo-ultimate-dinput@.service7
-rw-r--r--8bitdo-ultimate-xinput@.service6
-rw-r--r--99-8bitdo-ultimate-controllers.rules8
-rw-r--r--PKGBUILD24
-rw-r--r--install13
6 files changed, 78 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..9088422b4bda
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,20 @@
+pkgbase = 8bitdo-ultimate-controller-udev
+ pkgdesc = udev rules for 8bitdo controller 2.4GHz mode
+ pkgver = 1.0
+ pkgrel = 1
+ install = install
+ arch = x86_64
+ arch = aarch64
+ license = GPL
+ depends = libevdev
+ depends = xboxdrv
+ depends = systemd
+ depends = udev
+ source = file://99-8bitdo-ultimate-controllers.rules
+ source = file://8bitdo-ultimate-dinput@.service
+ source = file://8bitdo-ultimate-xinput@.service
+ sha256sums = 25b2fd49c1c60068f1b9d7607b63e1942442691ba5014d4c0fa96b198bb616ca
+ sha256sums = c9b8f6853518baa14fcddb8b021dd643142e8ea8f94443c625257272f6b5a66d
+ sha256sums = a0fe329b4f86af73b594055150fecce1f2c55c48b7d5adeb1c4d287a3e866df5
+
+pkgname = 8bitdo-ultimate-controller-udev
diff --git a/8bitdo-ultimate-dinput@.service b/8bitdo-ultimate-dinput@.service
new file mode 100644
index 000000000000..4a7d3b16412a
--- /dev/null
+++ b/8bitdo-ultimate-dinput@.service
@@ -0,0 +1,7 @@
+[Unit]
+Description=8BitDo Ultimate Controller DInput Mode Xbobxdrv Daemon
+StopWhenUnneeded=true
+
+[Service]
+Type=simple
+ExecStart=/usr/bin/xboxdrv --mimic-xpad --silent --quiet --type xbox360 --evdev %I --evdev-absmap ABS_BRAKE=LT,ABS_GAS=RT,ABS_Y=Y1,ABS_X=X1,ABS_RZ=Y2,ABS_Z=X2,ABS_HAT0X=dpad_x,ABS_HAT0Y=dpad_y --evdev-keymap BTN_TL=LB,BTN_TR=RB,BTN_X=X,BTN_Y=Y,BTN_A=A,BTN_B=B,BTN_THUMBL=TL,BTN_THUMBR=TR,BTN_SELECT=back,BTN_START=start,BTN_MODE=guide --axismap -Y1=Y1,-Y2=Y2
diff --git a/8bitdo-ultimate-xinput@.service b/8bitdo-ultimate-xinput@.service
new file mode 100644
index 000000000000..065e9feeb582
--- /dev/null
+++ b/8bitdo-ultimate-xinput@.service
@@ -0,0 +1,6 @@
+[Unit]
+Description=8BitDo Ultimate Controller XInput Mode Xbobxdrv Daemon
+
+[Service]
+Type=simple
+ExecStart=/usr/bin/xboxdrv --mimic-xpad --silent --type xbox360 --device-by-id %I
diff --git a/99-8bitdo-ultimate-controllers.rules b/99-8bitdo-ultimate-controllers.rules
new file mode 100644
index 000000000000..aced581fadb7
--- /dev/null
+++ b/99-8bitdo-ultimate-controllers.rules
@@ -0,0 +1,8 @@
+# dinput
+KERNEL=="event[0-9]*", SUBSYSTEM=="input", SUBSYSTEMS=="usb", ENV{ID_VENDOR_ID}=="2dc8", ENV{ID_MODEL_ID}=="3013", TAG+="systemd", ENV{SYSTEMD_WANTS}="8bitdo-ultimate-dinput@$env{DEVNAME}"
+
+# xinput
+SUBSYSTEM=="usb", ATTR{idVendor}=="2dc8", ATTR{idProduct}=="3106", ATTR{manufacturer}=="8BitDo", RUN+="/usr/bin/systemctl start 8bitdo-ultimate-xinput@2dc8:3106"
+
+# This device is connected when the above device disconnects
+SUBSYSTEM=="usb", ATTR{idVendor}=="2dc8", ATTR{idProduct}=="3109", ATTR{manufacturer}=="8BitDo", RUN+="/usr/bin/systemctl stop 8bitdo-ultimate-xinput@2dc8:3106"
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..ba3a30c5ce89
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,24 @@
+pkgname=8bitdo-ultimate-controller-udev
+pkgver=1.0
+pkgrel=1
+pkgdesc='udev rules for 8bitdo controller 2.4GHz mode'
+arch=('x86_64' 'aarch64')
+license=('GPL')
+depends=('libevdev' 'xboxdrv' 'systemd' 'udev')
+install="install"
+source=('file://99-8bitdo-ultimate-controllers.rules'
+ 'file://8bitdo-ultimate-dinput@.service'
+ 'file://8bitdo-ultimate-xinput@.service')
+sha256sums=('25b2fd49c1c60068f1b9d7607b63e1942442691ba5014d4c0fa96b198bb616ca'
+ 'c9b8f6853518baa14fcddb8b021dd643142e8ea8f94443c625257272f6b5a66d'
+ 'a0fe329b4f86af73b594055150fecce1f2c55c48b7d5adeb1c4d287a3e866df5')
+
+package() {
+ # install udev rules
+ install -dm 755 "${pkgdir}/usr/lib/udev/rules.d"
+ cp "$srcdir"/*.rules "$pkgdir/usr/lib/udev/rules.d/"
+
+ # install systemd services
+ install -dm 755 "${pkgdir}/usr/lib/systemd/system"
+ cp "$srcdir"/*.service "$pkgdir/usr/lib/systemd/system"
+}
diff --git a/install b/install
new file mode 100644
index 000000000000..1bc9951fabe6
--- /dev/null
+++ b/install
@@ -0,0 +1,13 @@
+post_install() {
+ ## reload udev rules
+ udevadm control --reload-rules
+
+ ## reload systemd services
+ systemctl daemon-reload
+}
+
+post_remove() {
+ udevadm control --reload-rules
+
+ systemctl daemon-reload
+}