#!/bin/bash

export NAME="debian"
export WSL_DISTRIBUTION="Debian"
# Uncomment next if systemd is used via genie
# export GENIE="genie -c"

# X server settings
export DISPLAY_NUMBER="0.0"
export XSRV="C:\\Program Files\\VcXsrv"
WSL_XSRV=$(wslpath "$XSRV")

WHOME=$(wslpath $(cmd.exe /C "echo %USERPROFILE%") | sed 's/\r//')
TMP="$$"
mkdir -p "$TMP" && cd $TMP

# This is the file that starts the X clients
# Modify this to meet your needs
# It is placed in $HOME
cat >start_$NAME.sh <<+EOF
#!/bin/bash
(
	export LIBGL_ALWAYS_INDIRECT=1
	export DISPLAY_NUMBER="$DISPLAY_NUMBER"
	export DISPLAY=\$(grep -m 1 nameserver /etc/resolv.conf | awk '{print \$2}'):\$DISPLAY_NUMBER

	sudo su -c "service dbus start"
	startkde
) >> $HOME/.xsession.errors 2>&1
+EOF

# Start using bat
cat >start_$NAME.bat <<+EOF
@echo off
wsl -d $WSL_DISTRIBUTION $GENIE $HOME/start_$NAME.sh
+EOF

# xlaunch file
cat >$NAME.xlaunch <<+EOF
<?xml version="1.0" encoding="UTF-8"?>
<XLaunch 
	WindowMode="Windowed" 
	Display="-1" 
	Wgl="True" 
	DisableAC="True" 
	Clipboard="True" 
	ClipboardPrimary="True" 
	ClientMode="StartProgram" 
	LocalClient="True" 
	LocalProgram="start_$NAME.bat" 
	RemoteProgram="xterm" RemotePassword="" PrivateKey="" RemoteHost="" RemoteUser="" 
	XDMCPHost="" XDMCPBroadcast="False" XDMCPIndirect="False" XDMCPTerminate="False"
	ExtraParams="" 
/>
+EOF

# xlaunch bat file
cat >launch_$NAME.bat <<+EOF
@ECHO OFF
CD "$XSRV"
.\\xlaunch.exe -run $NAME.xlaunch
+EOF

# xlaunch sh file
cat >launch_$NAME.sh <<+EOF
#!/bin/bash
cd "$WSL_XSRV"
cmd.exe /c "xlaunch.exe -run $NAME.xlaunch"
+EOF

chmod +x *.sh
test -f "$HOME/start_$NAME.sh" && {
	echo "Moving $HOME/start_$NAME.sh to $HOME/start_$NAME.sh.old"
	mv $HOME/start_$NAME.sh $HOME/start_$NAME.sh.old
}
mv start_$NAME.sh launch_$NAME.sh "$HOME"
mv launch_$NAME.bat "$WHOME"
mv start_$NAME.bat $NAME.xlaunch "$WSL_XSRV"
cd ..
rm -rf "$TMP"