Attach touch screen to a single display

Peter Hutterer peter.hutterer at
Tue Jun 15 18:21:37 PDT 2010

On Mon, Jun 14, 2010 at 05:10:40PM +0200, Julian Ortiz wrote:
> Hello,
> After looking for a way to make a touch screen works only in its display
> (with nvidia configured as different XScreens) with no luck at all, I
> started to look at the input modules source. I realizes that
> the proprietary elo module calls to xf86XInputSetScreen, the function name
> seems promising, so I just patch the evdev module to support several screens
> by configuration and to call xf86InputSetScreen in the EvdevReadInput just
> before the EvdevProcessEvent.
> The result seems to work but the behavior is very erratic and sometimes the
> mouse/touch/keyboard get freezes and I need to restart X. And more strange,
> after launch several OpenGL application the performance drops so, so much
> (obviously without the patch it doesn't happen)
> Is xf86InputSetScreen the best approach to handle this?

There's a race condition that can be triggered by xf86InputSetScreen() that
ends up with a cursor jumping indefinitely between the two screens. This is
likely the freeze you're seeing.

There's unfortunately no good way to bind the device to a single screen
right now. Peter Korsgaard input transformation matrix allows it for a
RandR 1.2 setup but not for multiple protocol screens.


> Trying to find the module responsible for the mouse switch between different
> display I saw references to something called SilkenMouse, but I can't find
> any documentation about what is this. Any idea?

More information about the xorg-devel mailing list