The hotplug issue was a result of me using /etc/hal/fdi/policy/10-x11-input.fdi to allow access to all input devices (since this behavior is no longer supported in evdev directly).
<match key="info.capabilities" contains="input.keys">
<!-- If we're using Linux, we use evdev by default (falling back to keyboard otherwise). -->
<merge key="input.x11_driver" type="string">keyboard</merge>
<match key="/org/freedesktop/Hal/devices/computer:system.kernel.name" string="Linux">
<merge key="input.x11_driver" type="string">evdev</merge>
<merge key="input.xkb.layout" type="string">dvorak</merge>
</match>
</match>
</device>
</deviceinfo>
The hotplug issue was a result of me using /etc/hal/ fdi/policy/ 10-x11- input.fdi to allow access to all input devices (since this behavior is no longer supported in evdev directly).
I was able to work around this by: gitweb. freedesktop. org/?p= xorg/xserver. git;a=commit; h=47eb658e80277 5021e3efec109f9 5431cca188ca (which didn't patch cleanly, so I just upgraded config/hal.c entirely), to add support for arbitrary device options in a hal fdi
- applying http://
- editing 10-x11-input.fdi as follows:
<?xml version="1.0" encoding= "ISO-8859- 1"?> capabilities" contains= "input. mouse"> x11_driver" type="string" >mouse< /merge> freedesktop/ Hal/devices/ computer: system. kernel. name" string="Linux"> x11_driver" type="string" >evdev< /merge>
<deviceinfo version="0.2">
<device>
<!-- FIXME: Support tablets too. -->
<match key="info.
<merge key="input.
<match key="/org/
<merge key="input.
<!-- Logitech tweaks --> originating_ device: usb.vendor_ id" int="0x46d"> originating_ device: usb.product_ id" int_outof= "0xc50e; 0xc518" > x11_options. RelHWHEELOption s" type="string" >invert< /merge>
<match key="@input.
<match key="@input.
<merge key="input.
</match>
</match>
</match>
</match>
<match key="info. capabilities" contains= "input. keys"> x11_driver" type="string" >keyboard< /merge> freedesktop/ Hal/devices/ computer: system. kernel. name" string="Linux"> x11_driver" type="string" >evdev< /merge> xkb.layout" type="string" >dvorak< /merge>
<!-- If we're using Linux, we use evdev by default (falling back to keyboard otherwise). -->
<merge key="input.
<match key="/org/
<merge key="input.
<merge key="input.
</match>
</match>
</device>
</deviceinfo>