Use packaged Dell XPS touchpad haptics (#5534)

* Configure Dell XPS haptics directly

* Use packaged Dell XPS touchpad haptics service

* fix: keep one Dell haptics migration

* We already have a dedicated Trigger > Hardware menu

* Name for action

* Moved

* Need to make the package available for offline

* Simplify

---------

Co-authored-by: David Heinemeier Hansson <david@hey.com>
This commit is contained in:
Jacob Mink
2026-05-08 21:07:51 +02:00
committed by GitHub
co-authored by David Heinemeier Hansson
parent 30f9a8da54
commit 1537547f91
9 changed files with 43 additions and 135 deletions
-2
View File
@@ -50,8 +50,6 @@ run_logged $OMARCHY_INSTALL/config/hardware/intel/fred.sh
run_logged $OMARCHY_INSTALL/config/hardware/intel/fix-wifi7-eht.sh
run_logged $OMARCHY_INSTALL/config/hardware/intel/sof-firmware.sh
run_logged $OMARCHY_INSTALL/config/hardware/dell/fix-xps-haptic-touchpad.sh
run_logged $OMARCHY_INSTALL/config/hardware/asus/fix-asus-ptl-display-backlight.sh
run_logged $OMARCHY_INSTALL/config/hardware/asus/fix-asus-ptl-b9406-display.sh
run_logged $OMARCHY_INSTALL/config/hardware/asus/fix-asus-ptl-b9406-touchpad.sh
@@ -1,36 +0,0 @@
# Fix Dell XPS haptic touchpad.
# The Synaptics haptic touchpad (vendor 06CB) uses the HID Manual Trigger
# protocol, but the kernel's HID haptic subsystem only supports Auto Trigger.
# This sets up a lightweight daemon that monitors touchpad button events and
# sends haptic pulses via HID feature reports on the hidraw device.
# Also disables I2C runtime PM to prevent the haptic engine losing state
# across suspend/resume.
if omarchy-hw-match "XPS" \
&& ls /sys/bus/i2c/devices/i2c-VEN_06CB:00 2>/dev/null; then
# Keep I2C controller power on to prevent haptic engine losing state
sudo tee /etc/udev/rules.d/99-dell-xps-haptic-touchpad.rules << 'EOF'
ACTION=="add", SUBSYSTEM=="pci", KERNEL=="0000:00:19.0", ATTR{power/control}="on"
ACTION=="add", SUBSYSTEM=="platform", KERNEL=="i2c_designware.0", ATTR{power/control}="on"
EOF
sudo udevadm control --reload-rules
# Haptic feedback daemon as a systemd service
sudo tee /etc/systemd/system/dell-xps-haptic-touchpad.service << SVC
[Unit]
Description=Dell XPS haptic touchpad feedback
After=systemd-udev-settle.service
[Service]
Type=simple
ExecStart=$OMARCHY_PATH/bin/omarchy-haptic-touchpad
Restart=on-failure
RestartSec=2
[Install]
WantedBy=multi-user.target
SVC
sudo systemctl daemon-reload
sudo systemctl enable dell-xps-haptic-touchpad.service
fi
+3
View File
@@ -61,6 +61,9 @@ vulkan-asahi
# Surface laptop support packages
linux-firmware-marvell
# Dell laptop support packages
dell-xps-touchpad-haptics
# T2 MacBook support packages
apple-bcm-firmware
apple-t2-audio-config
+1
View File
@@ -7,4 +7,5 @@ run_logged $OMARCHY_INSTALL/packaging/tuis.sh
run_logged $OMARCHY_INSTALL/packaging/npx.sh
run_logged $OMARCHY_INSTALL/packaging/asus-rog.sh
run_logged $OMARCHY_INSTALL/packaging/framework16.sh
run_logged $OMARCHY_INSTALL/packaging/dell-xps-touchpad-haptics.sh
run_logged $OMARCHY_INSTALL/packaging/surface.sh
+3
View File
@@ -0,0 +1,3 @@
if omarchy-hw-dell-xps-haptic-touchpad; then
omarchy-pkg-add dell-xps-touchpad-haptics
fi