HAL takes over Xorg, now with less restarting
X.Org is well on its way to getting rid of lots of xorg.conf magic and moving it into obscure elements of HAL. Well, obscure for now. Here is to hoping that they soon come up with lots more documentation.
So why is this interesting? It makes it possible to see if your changes did something without having to log out, restart login manager and hope you didn't have a typo since your X server then just dies and you have to check /var/log/Xorg.0.log. Also, you have your custom elements in /etc and always up to date defaults in /usr. Hopefully, this will make multiple screen configurations easier.
Since I upgraded to X.Org 7.3 a bug in the behavior of evdev has been driving me crazy. The Apple mouse I use thought buttons were being pressed rapidly when the button wasn't released, making drag and drop impossible. Going back to the mouse driver fixed the problem. This stopped working when HAL took over my X.
Time to get to know the new crazy XML scheme. The first config that worked for me was the following, which went as foo.fdi into /etc/hal/fdi/policy/ (adapted from a forum post). After saving the file I only had to unplug the mouse, plug it back in and hal-device used the new rule.
<?xml version="1.0" encoding="ISO-8859-1"?> <deviceinfo version="0.2"> <device> <match key="input.product" contains="Mitsumi Electric Apple Optical USB Mouse"> <merge key="input.x11_driver" type="string">mouse</merge> </match> </device> </deviceinfo>
I use another FDI file for my keyboard layout (otherwise wrong layout at login manager) and it seems that match as the top element is fine, too. That worked for the mouse as well, but shows how unclear it still is what is necessary syntax and what isn't for most users. If you are interested in having the weird NEO layout at the login manager, there you go:
<?xml version="1.0" encoding="ISO-8859-1"?> <match key="info.capabilities" contains="input.keyboard"> <merge key="input.x11_driver" type="string">keyboard</merge> <merge key="input.xkb.layout" type="string">de</merge> <merge key="input.xkb.model" type="string">pc105</merge> <merge key="input.xkb.rules" type="string">xorg</merge> <merge key="input.xkb.variant" type="string">neo</merge> </match>
Next on the list when bored: converting the Synaptics configuration to such an FDI file.