diff --git a/.xinitrc b/.xinitrc index b8870225..5a65797a 100755 --- a/.xinitrc +++ b/.xinitrc @@ -6,17 +6,33 @@ # Distributed under terms of the MIT license. # -# Set up our session target -which i3 > /dev/null 2>&1 && export STARTUP="i3" -which bspwm > /dev/null 2>&1 && export STARTUP="bspwm" -[ -x "$HOME/.concession/conspiracy" ] && export STARTUP="$HOME/.concession/conspiracy" +step_get_target() { + # Set up our session target + which i3 > /dev/null 2>&1 && export STARTUP="i3" + which bspwm > /dev/null 2>&1 && export STARTUP="bspwm" + [ -x "$HOME/.concession/conspiracy" ] && export STARTUP="$HOME/.concession/conspiracy" +} -# Execute Xsession stuff -[ -r /etc/X11/Xsession ] && . /etc/X11/Xsession +step_start_xsession() { + # Execute Xsession stuff + [ -r /etc/X11/Xsession ] && . /etc/X11/Xsession +} -# Do the do -[ -z "${STARTUP+x}" ] || exec "$STARTUP" +step_start_manual() { + # Execute our target directly + [ -z "${STARTUP+x}" ] || exec "$STARTUP" +} + +main() { + # Set up the environment + step_get_target + # Execute our target + step_start_xsession # Through Xsession scripts, or... + step_start_manual # ...manually, if need be + # Or maybe just die, I guess + echo "Failed to start session" >&2 + exit 1 +} + +main $@ -# Or maybe just die, I guess -echo "Failed to start Concession!" >&2 -exit 1