#!/bin/sh

# xinitrc runs automatically when you run startx.

# There are some small but important commands that need to be run when we start
# the graphical environment. I keep those commands in ~/.xprofile because that
# file is run automatically if someone uses a display manager (login screen)
# and so they are needed there. To prevent doubling up commands, I source them
# here with the line below.

[ -f ~/.xprofile ] && . ~/.xprofile

startlarbs() {
	# Here, LARBS decides whether to boot dwm or i3. It will boot what is manually
	# set in ~/.local/share/larbs/wm, otherwise it will test to see if dwm is
	# installed, in which case it will load dwm. It will assume i3 otherwise.

	LARBSWM="$(cat ~/.local/share/larbs/wm 2>/dev/null)" ||
		{ LARBSWM="$(type dwm >/dev/null 2>&1)" && LARBSWM="dwm" ;} ||
		{ LARBSWM="$(type i3 >/dev/null 2>&1)" && LARBSWM="i3" ;}

	# To be clear, you can run:
	#	echo dwm > ~/.local/share/larbs/wm
	# to set dwm as your default LARBS WM (or echo i3 for i3).

	# Here we start the window manager, whichever it's supposed to be.
	# Note that we set the different status bar commands here too.

	case "$LARBSWM" in
		dwm)
			export FILE="lf"
			export STATUSBAR="dwmblocks"
			# The loop is just to enable dwm's "restart" feature (mod+F2).
			while :; do
				ssh-agent dwm || break
			done
			;;
		i3)
			export FILE="ranger"
			export STATUSBAR="i3blocks"
			exec i3
			;;
		*) echo "No valid LARBS window manager detected." ;;
	esac ;}

startlarbs