<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dotfiles/etc/udev/hwdb.d, branch master</title>
<subtitle>My linux config and rc files</subtitle>
<id>https://git.sommerfeld.dev/dotfiles/atom/etc/udev/hwdb.d?h=master</id>
<link rel='self' href='https://git.sommerfeld.dev/dotfiles/atom/etc/udev/hwdb.d?h=master'/>
<link rel='alternate' type='text/html' href='https://git.sommerfeld.dev/dotfiles/'/>
<updated>2026-05-13T12:43:33Z</updated>
<entry>
<title>fix(logind): ignore KEY_POWER short-press to stop Shokz dongle shutdowns</title>
<updated>2026-05-13T12:43:33Z</updated>
<author>
<name>sommerfeld</name>
<email>sommerfeld@sommerfeld.dev</email>
</author>
<published>2026-05-13T12:43:33Z</published>
<link rel='alternate' type='text/html' href='https://git.sommerfeld.dev/dotfiles/commit/?id=120ee3a0712594fb0c4fdf99c04f0e9d8874335d'/>
<id>urn:sha1:120ee3a0712594fb0c4fdf99c04f0e9d8874335d</id>
<content type='text'>
The Shokz OpenMeet dongle (3511:2EF2) emits KEY_POWER on USB
enumeration and on headset power transitions, which logind handles
with HandlePowerKey=poweroff and immediately shuts the host down.

The previous attempt — an hwdb scancode remap of c0030 to reserved —
sets the udev property correctly but the kernel does not honor
EVIOCSKEYCODE for this device's HID consumer-page mapping (verified:
KEY_POWER 116 still appears in the evdev keymap after udevadm trigger
and libinput still reports it). Drop the hwdb file and the
systemd-hwdb hooks from the etc deploy script.

Replace with a logind drop-in that sets HandlePowerKey=ignore and
HandlePowerKeyLongPress=poweroff. Single-tap power events from any
source become no-ops; a 5s hold still shuts the machine down, so the
real hardware-power-button safety net is preserved. Add a HUP to
systemd-logind in the deploy script so the change takes effect
without restarting the daemon.
</content>
</entry>
<entry>
<title>feat(udev): replace shokz blacklist with hwdb keycode override</title>
<updated>2026-05-13T12:43:33Z</updated>
<author>
<name>sommerfeld</name>
<email>sommerfeld@sommerfeld.dev</email>
</author>
<published>2026-05-13T12:43:33Z</published>
<link rel='alternate' type='text/html' href='https://git.sommerfeld.dev/dotfiles/commit/?id=66427c37fcc05ffbecde726aeea77ccfb1b860de'/>
<id>urn:sha1:66427c37fcc05ffbecde726aeea77ccfb1b860de</id>
<content type='text'>
The previous /etc/udev/rules.d/80-shokz-blacklist.rules deauthorized the
entire usbhid interface for the Shokz OpenMeet dongle (3511:2EF2) to stop
the host from powering off when the headset is turned off. That also
killed mic-mute, volume, and media keys on the same HID Consumer Control
node.

Replace it with a narrow hwdb override that remaps just the offending
scancode (Consumer page Power, c0030 -&gt; KEY_POWER) to reserved on that
specific vendor/product. KEY_MUTE / volume / media keys keep working.

Add 'systemd-hwdb update' + an input-subsystem udevadm trigger to the
etc deploy hook so new hwdb files take effect immediately.
</content>
</entry>
</feed>
