Hi guys, Using Ubuntu 13.10 i686 and the superb work in the ubuntu-multiseat PPA, I run a configured X server on a dual-output Intel GPU (started from a modified lightdm upstart script [1]): # /usr/bin/Xorg :0 -nolisten tcp vt7
then start configured [2] lightdm, which in turn runs the Xephyr wrapper [3]. Both user sessions start; so far so good. Since I need to also attach touchscreen and sound to the screens, I have to use udev tags, so I assign a mouse the 'seat1' tag [4,5] and it isn't listed in 'loginctl seat-status seat0' as expected, but it doesn't move the cursor on the second head (or first). loginctl shows only a single seat, despite both Xephyr servers being passed '-seat seat0' and '-seat1' (which isn't listed in 'Xephyr -help): $ loginctl list-seats SEAT seat0 1 seats listed. Any idea what I'm missing? Many thanks! Daniel -- [1] /etc/init/lightdm.conf # LightDM - light Display Manager # # The display manager service manages the X servers running on the # system, providing login and auto-login services # # based on gdm upstart script description "LightDM Display Manager" author "Robert Ancell <robert.anc...@canonical.com>" start on ((filesystem and runlevel [!06] and started dbus and plymouth-ready) or runlevel PREVLEVEL=S) stop on runlevel [016] emits login-session-start emits desktop-session-start emits desktop-shutdown script if [ -n "$UPSTART_EVENTS" ] then # Check kernel command-line for inhibitors, unless we are being called # manually for ARG in $(cat /proc/cmdline); do if [ "$ARG" = "text" ]; then plymouth quit || : stop exit 0 fi done [ ! -f /etc/X11/default-display-manager -o "$(cat /etc/X11/default-display-manager 2>/dev/null)" = "/usr/bin/lightdm" -o "$(cat /etc/X11/default-display-manager 2>/dev/null)" = "/usr/sbin/lightdm" ] || { stop; exit 0; } if [ "$RUNLEVEL" = S -o "$RUNLEVEL" = 1 ] then # Single-user mode plymouth quit || : exit 0 fi fi # start parent X server /usr/bin/Xorg :0 -nolisten tcp vt7 & until xrefresh -display :0.0 2>/dev/null; do sleep 0.2; done exec lightdm end script post-start script sleep 5 clear > /dev/tty7 end script post-stop script if [ "$UPSTART_STOP_EVENTS" = runlevel ]; then initctl emit desktop-shutdown fi killall /usr/bin/Xorg || : end script -- [2] /usr/share/X11/xorg.conf.d/90-multiseat.conf Section "ServerLayout" Identifier "Layout" Screen "screen0" Screen "screen1" Below "screen0" Option "AllowMouseOpenFail" "true" Option "DontVTSwitch" "yes" Option "DontZap" "yes" EndSection Section "Device" Identifier "card0" Driver "intel" Option "AccelMethod" "SNA" Option "ZaphodHeads" "HDMI1" Screen 0 EndSection Section "Device" Identifier "card1" Driver "intel" Option "AccelMethod" "SNA" Option "ZaphodHeads" "HDMI2" Screen 1 EndSection Section "Screen" Identifier "screen0" Device "card0" EndSection Section "Screen" Identifier "screen1" Device "card1" EndSection -- [2] /etc/lightdm/lightdm.conf.d/90-multiseat.conf [SeatDefaults] user-authority-in-system-dir=true autologin-user-timeout=10 autologin-session=ubuntu xserver-command=/usr/local/bin/xephyr-wrapper [Seat:0] xdg-seat=seat0 autologin-user=me1 [Seat:1] xdg-seat=seat1 autologin-user=me2 xserver-vt=0 -- [3] /usr/local/bin/xephyr-wrapper #!/bin/bash export DISPLAY=:0.$((${1#:}-1)) declare -a argv=("$@") # drop incompatible args for (( i=0; i<${#argv[@]}; i++ )); do case ${argv[$i]} in -novtswitch|-sharevts|vt7|-config|-layout) argv[$i]="" ;; esac done echo "Starting Xephyr on display $DISPLAY with ${argv[@]}" exec /usr/bin/Xephyr -fullscreen ${argv[@]} -- [4] /etc/udev/rules.d/99-multiseat.rules DEVPATH=="/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2", ENV{ID_SEAT}="seat1", TAG+="seat1" -- [5] udevadm test /sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/ ... ACTION=add BUSNUM=001 DEVNAME=/dev/bus/usb/001/005 DEVNUM=005 DEVPATH=/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2 DEVTYPE=usb_device DRIVER=usb ID_BUS=usb ID_MODEL=USB_OPTICAL_MOUSE ID_MODEL_ENC=\x20USB\x20OPTICAL\x20MOUSE ID_MODEL_FROM_DATABASE=Optical Mouse ID_MODEL_ID=0a4d ID_REVISION=0100 ID_SEAT=seat1 ID_SERIAL=15d9_USB_OPTICAL_MOUSE ID_USB_INTERFACES=:030102: ID_VENDOR=15d9 ID_VENDOR_ENC=15d9 ID_VENDOR_FROM_DATABASE=Trust International B.V. ID_VENDOR_ID=15d9 MAJOR=189 MINOR=4 PRODUCT=15d9/a4d/100 SUBSYSTEM=usb TAGS=:seat1: TYPE=0/0/0 USEC_INITIALIZED=19896680505 unload module index -- Daniel J Blueman -- Mailing list: https://launchpad.net/~ubuntu-multiseat Post to : ubuntu-multiseat@lists.launchpad.net Unsubscribe : https://launchpad.net/~ubuntu-multiseat More help : https://help.launchpad.net/ListHelp