summaryrefslogblamecommitdiffstats
path: root/core/modules/remote-access/data/opt/openslx/scripts/systemd-remote_x_config
blob: d172dda9c769d467ab19a014c19d702b0df01103 (plain) (tree)
1
2
3
4
5
6
7
8
9





                                                  

                                                      
         

                                    


                                                                                           
                                                                

                   
    
 
                                      






                                  
                            
                                               



                                                                   
 




                                                                                                                





                                                
                                                                                                    








                                                                      
#!/bin/ash

. /opt/openslx/config

[ -n "$SLX_REMOTE_VNC" ] || exit 0 # Nothing to do

# Find connected output, get driver for according card
driver=
fallback=
for cdir in /sys/class/drm/card?; do
	card="${cdir##*/}"
	d="$( awk -F= '{ if ($1 = "DRIVER") { print $2; exit; } }' "$cdir/device/uevent" )"
	[ -z "$d" ] && continue
	[ -z "$fallback" ] && fallback="$d"
	grep -qFx 'connected' "$cdir/$card"-*/status || continue
	driver="$d"
	break
done

[ -z "$driver" ] && driver="$fallback"
# ???
[ -z "$driver" ] && driver="i915"
case "$driver" in
	i915) driver="intel" ;;
	vmwgfx) driver="vmware" ;;
esac

# Enable LoingRPC of greeter
mkdir -p /etc/lightdm/qt-lightdm-greeter.conf.d
cat > /etc/lightdm/qt-lightdm-greeter.conf.d/13-loginrpc.conf <<END
[General]
rpc-port = 7551
END

[ "$driver" = "intel" ] || exit 0 # Currently only intel supports zaphod head split

# Enable the dual-screen setup
sed "s/%DRIVER%/$driver/g" "/opt/openslx/remote-access/xorg.conf" > "/etc/X11/xorg.conf.d/16-remote-access.conf"

# Force :0.0 usage

cat > /etc/X11/Xsession.d/00-force-screen0 <<END
#!/bin/ash Being sourced but hey
(
export DISPLAY=:0.1
xrandr --verbose \$( xrandr | grep '^[A-Z].* connected ' | awk '{print "--output " \$1 " --auto"}' )
text="Dieser PC wird gerade aus der Ferne verwendet.
This computer is currently being used for a remote session.

Bitte nicht abschalten.
Please don't turn it off."
zenity --info --width 630 --text "\$text" || xmessage -center "\$text"
) &
export DISPLAY=:0.0
END