Originally posted by pingufunkybeat
View Post
Announcement
Collapse
No announcement yet.
SystemD/Udev Multi-Seat Support For X.Org
Collapse
X
-
Originally posted by pingufunkybeat View PostSo if I split xorg.conf into two files, one per seat, the peripherals will be tied to the right seat magically?
I'll have to try that, thanks!
Comment
-
Originally posted by daniels View PostYep, as long as you're using the same settings for your InputClasses as your InputDevices (e.g. matching on a specific device path, and ignoring the rest). Good luck.
There is 05-evdev.conf in my xorg.conf.d which has InputClass sections for all common input devices. Since InputClass has implicit AutoServerLayout option, all input devices are attached to each xserver. Splitting configuration files doesn't make any sense. All files in xorg.conf.d are treated as parts of one big xorg.conf.
What we need for multiseat is input device/class section which supports hotplugging and can be tied to ServerLayout section.
Comment
-
Originally posted by chelobaka View PostJust checked. It doesn't work. And I can't see why it should.
There is 05-evdev.conf in my xorg.conf.d which has InputClass sections for all common input devices. Since InputClass has implicit AutoServerLayout option, all input devices are attached to each xserver. Splitting configuration files doesn't make any sense. All files in xorg.conf.d are treated as parts of one big xorg.conf.
What we need for multiseat is input device/class section which supports hotplugging and can be tied to ServerLayout section.
Section "InputClass"
Identifier "non-HDTV"
Option "Ignore" "on"
EndSection
Section "InputClass"
Identifier "diNovo"
MatchProduct "diNovo"
Option "Ignore" "off"
EndSection
it will enable only specific device.
And if you have a main seat that should use all other devices just add the specific devices with Ignore on to it like:
Section "InputClass"
Identifier "diNovo"
MatchProduct "diNovo"
Option "Ignore" "on"
EndSection
without the first InputClass
Comment
-
I know this thread is a little old but I'm wanting to set up a multi-seat desktop and am unsure where to start or how to go about it.
I'm running Fedora 16 / 64, 8 gig of ram, quad core 955 and a 9600GT with dual dvi.
Can someone please point me in the right direction to implement a multiseat on my desktop.
Thank you.
Comment
-
If you have only one video card you should probably use ZapthodHeads option in xorg.conf to run 2 xservers on each head. Look here for details. Though you may experience problems with 3D acceleration (only my guess, you have to check it out).
Also you will need display manager which can run several servers at once. GDM was "simplified" long ago by its devs, so you will need LightDM, or KDM in case you are a KDE user.
After that you only need to edit xorg.conf and lightdm.conf (or KDM config). There are many config examples in the web (Ubuntu wiki)
Sound and removable drives privileges have no generic solution, you should find a way to set them by yourself or just live with it like I do.
P.S. Speaking of systemd, there is nothing to test yet. Somebody has to patch Xorg to honor udev "seat" tags introduced by systemd. And it looks like biggest part of work in creating multiseat with "human face".Last edited by chelobaka; 14 December 2011, 03:50 AM.
Comment
-
Update on udev
Recently I managed to reconfigure my Ubuntu 10.04 setup to use udev for input devices. I must admit I was too dump not to do it earlier.
Ok, here is it. Whole config should consists of three parts: custom udev rules for your input devices, several Xorg configuration files, one for each seat, and display manager config, for running xservers.
Part 1: udev
First of all, you have to disable mouse and keyboard autodetection in your xorg.conf.d directory. In Lucid Lynx there is no need for this, but I had to do it in Debian Wheezy.
Next, you have to make custom udev rules file, like this one:
Code:# Apply these rules only to input devices SUBSYSTEM!="input", GOTO="custom_input_end" KERNEL=="input[0-9]*", GOTO="custom_input_end" ACTION!="add|change", GOTO="custom_input_end" # Seat 0 ATTRS{description}=="i8042 KBD port", ENV{ID_INPUT.tags}="seat0" ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c01b", ENV{ID_INPUT.tags}="seat0" ATTRS{name}=="Venus USB2.0 Camera", ENV{ID_INPUT.tags}="seat0" # Seat 1 ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c069", ENV{ID_INPUT.tags}="seat1" ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c313", ENV{ID_INPUT.tags}="seat1" ATTRS{product}=="Plantronics Wireless Audio", ENV{ID_INPUT.tags}="seat1" LABEL="custom_input_end"
Part 2: xorg.conf
Each seat will require separate config. Here is my seat0:
Code:Section "ServerFlags" Option "DontZap" "false" Option "AllowEmptyInput" "true" EndSection Section "InputClass" Identifier "Generic input device" MatchTag "seat0" Driver "evdev" EndSection Section "Monitor" Identifier "Samsung" Option "DPMS" "true" EndSection Section "Device" Identifier "Radeon HD 4290" Driver "radeon" BusID "PCI:1:5:0" EndSection Section "Screen" Identifier "Left Screen" Device "Radeon HD 4290" Monitor "Samsung" DefaultDepth 24 SubSection "Display" Viewport 0 0 Depth 24 EndSubSection EndSection Section "ServerLayout" Identifier "Seat0" Screen 0 "Left Screen" 0 0 Option "SingleCard" "on" EndSection
Part 3: Display manager configuration
I have KDM, but you might have old GDM<=2.20, lightdm or something else.
Code:[X-:0-Core] AutoLoginAgain=false AutoLoginDelay=0 AutoLoginEnable=false AutoLoginLocked=false AutoLoginUser= ClientLogFile=.xsession-errors ServerVT=7 ServerCmd=/usr/bin/X -config /etc/X11/seat0.conf -layout Seat0 -sharevts -keeptty [X-:1-Core] AutoLoginAgain=false AutoLoginEnable=false AutoLoginLocked=false ClientLogFile=.xsession-errors ServerVT=9 ServerCmd=/usr/bin/X -config /etc/X11/seat1.conf -layout Seat1 -sharevts -keeptty -novtswitch
Comment
-
Hi,
Originally posted by chelobaka View PostPart 1: udev
First of all, you have to disable mouse and keyboard autodetection in your xorg.conf.d directory. In Lucid Lynx there is no need for this, but I had to do it in Debian Wheezy.
Code:Option "AutoAddDevices" "false"
I use Debian Squeeze and multiseat without hotplug.
Thanks for your reply.
Comment
Comment