#!/bin/bash if [ -z "$1" ] ; then echo "Usage: doseat " echo "Reads /etc/multiseat/seat. file to set up seat" echo "file format is 'geometry:mousename:keyboardname'" echo "mousename and keyboard name are name of devices in /dev/input/by-id directory" echo "Geometry needs to include both screensize and offset" exit 1 fi display=$1 seatnum=$(echo $display | tr -d :) info=$(cat /etc/multiseat/seat.$seatnum) geometry=$(echo $info | cut -d: -f1) mousename=$(echo $info | cut -d: -f2) kbname=$(echo $info | cut -d: -f3) DISPLAY=:0 /usr/local/bin/xmessage.$seatnum -geometry $geometry "Seat #$seatnum" & sleep 2 target=$(xwininfo -display :0 -name xmessage.$seatnum | grep 'Window id' | cut -d: -f3 | cut -d'"' -f1) echo seatnum is $seatnum >> /var/log/doseat.log echo geometry is $geometry >> /var/log/doseat.log echo mousename is $mousename >> /var/log/doseat.log echo kbname is $kbname >> /var/log/doseat.log echo target is $target >> /var/log/doseat.log DISPLAY=:0 Xephyr $display -ac -parent $target -mouse evdev,,device=/dev/input/by-id/$mousename -keybd evdev,,device=/dev/input/by-id/$kbname,xkbmodel=evdev,xkblayout=us,xkboptions="lv3:ralt_switch,compose:caps" -dpi 100 echo Xephyr for display $display done >> /var/log/doseat.log killall xmessage.$seatnum