Difference between revisions of "Multi-pointer X"

From ArchWiki
Jump to: navigation, search
m (Software support: Added "Window managers" subsection)
(9 intermediate revisions by 4 users not shown)
Line 1: Line 1:
[[Category:X Server (English)]]
+
[[Category:X Server]]
[[Category:Stub]]
+
{{Stub}}
+
  
 
== Introduction ==
 
== Introduction ==
Xorg servers starting from version 1.7 have a feature called "multi-pointer". Basically it allows to have multiple mouse cursors (each with its own keyboard focus) on the screen and control them with separate physical input devices. It can be used as a crude [[Xorg multiseat|mutliseat]] solution.
+
Xorg servers starting from version 1.7 have a feature called "multi-pointer". Basically it allows to have multiple mouse cursors (each with its own keyboard focus) on the screen and control them with separate physical input devices. It can be used as a crude [[Xorg multiseat|multiseat]] solution.
  
 
== Basic concepts ==
 
== Basic concepts ==
 
=== Master and slave devices ===
 
=== Master and slave devices ===
With the introduction of XInput2, the input devices are organised in a two-level hierarchy:
+
With the introduction of XInput2, input devices are organised in a two-level hierarchy:
 
* Master devices, which correspond to cursors on the screen
 
* Master devices, which correspond to cursors on the screen
 
* Slave devices, which correspond to physical input devices
 
* Slave devices, which correspond to physical input devices
Master devices always come in pairs, one for pointer and one for keyboard. Each master device can have a number of slave devices attached, so that cursor of a master device can be controlled by all slave devices attached to it.
+
Master devices come in pairs, one for pointer and one for keyboard. Each master device can have a number of slave devices attached, so that cursor of a master device can be controlled by all slave devices attached to it.
  
 
=== Client pointer ===
 
=== Client pointer ===
When an application grabs input (e.g. a fullscreen game), it always grabs a master device that is set as its client pointer. By default, the client pointer is set to "Virtual core pointer", but it can be set to a different one with a "xinput" utility.
+
When an application grabs input (e.g. a fullscreen game), it grabs a master device that is set as its client pointer. By default, the client pointer is set to "Virtual core pointer", but it can be set to a different one with a "xinput" utility.
 +
 
 +
== Configuration ==
 +
=== configuration file ===
 +
{{Note|Information how to configure multipointer with {{ic|xorg.conf}} should be added}}
 +
=== xinput utility ===
 +
More pointers can be added with {{Ic|xinput}} CLI utility. Here is how to do it:
 +
 
 +
Create a new pair of master devices named "''name'' pointer" and "''name'' keyboard":
 +
xinput create-master ''[name]''
 +
 
 +
Find out names and ids of existing slave devices:
 +
xinput list
 +
 
 +
Reattach slave devices to newly created master devices:
 +
xinput reattach ''[slave device name or id]'' ''[master device name or id]''
  
 
== Software support ==
 
== Software support ==
It is possible to use multi-pointer with software that doesn't explicitly support it, but with limited functionality. Applications which don't support it won't distinguish between multiple pointers and will interpret all actions as if done by single master device pair.
+
It is possible to use multi-pointer with software that doesn't explicitly support it, but with limited functionality. Applications which do not support it won't distinguish between multiple pointers and will interpret all actions as if done by single master device pair.
  
 
=== Window managers ===
 
=== Window managers ===
Line 25: Line 38:
 
* letting move and resize windows simultaneously
 
* letting move and resize windows simultaneously
 
As of 26 September 2010, none of major window managers support multi-pointer.
 
As of 26 September 2010, none of major window managers support multi-pointer.
 +
 +
== Useful links ==
 +
* [http://www.x.org/wiki/Development/Documentation/MPX Xorg wiki article]

Revision as of 16:13, 23 April 2012


Introduction

Xorg servers starting from version 1.7 have a feature called "multi-pointer". Basically it allows to have multiple mouse cursors (each with its own keyboard focus) on the screen and control them with separate physical input devices. It can be used as a crude multiseat solution.

Basic concepts

Master and slave devices

With the introduction of XInput2, input devices are organised in a two-level hierarchy:

  • Master devices, which correspond to cursors on the screen
  • Slave devices, which correspond to physical input devices

Master devices come in pairs, one for pointer and one for keyboard. Each master device can have a number of slave devices attached, so that cursor of a master device can be controlled by all slave devices attached to it.

Client pointer

When an application grabs input (e.g. a fullscreen game), it grabs a master device that is set as its client pointer. By default, the client pointer is set to "Virtual core pointer", but it can be set to a different one with a "xinput" utility.

Configuration

configuration file

Note: Information how to configure multipointer with xorg.conf should be added

xinput utility

More pointers can be added with xinput CLI utility. Here is how to do it:

Create a new pair of master devices named "name pointer" and "name keyboard":

xinput create-master [name]

Find out names and ids of existing slave devices:

xinput list

Reattach slave devices to newly created master devices:

xinput reattach [slave device name or id] [master device name or id]

Software support

It is possible to use multi-pointer with software that doesn't explicitly support it, but with limited functionality. Applications which do not support it won't distinguish between multiple pointers and will interpret all actions as if done by single master device pair.

Window managers

In window managers multi-pointer support could mean:

  • recognizing multiple focuses
  • setting the client pointer of a focused window to the pointer that "focused" it
  • letting move and resize windows simultaneously

As of 26 September 2010, none of major window managers support multi-pointer.

Useful links