Blob Blame History Raw
#!/bin/sh

XMONAD_DIR=$HOME/.xmonad

#  if no user configuration
if [ ! -d $XMONAD_DIR ]; then
    # add a desktop friendly config if possible
    if [ -r /usr/share/xmonad/xmonad.hs ]; then
	mkdir $XMONAD_DIR
	cp -p /usr/share/xmonad/xmonad.hs $XMONAD_DIR
    else
	INFO="Install xmonad, xmonad-mate, or xmonad-config to customize xmonad."
	echo "xmonad-start: $INFO"
    fi
else
    XMONAD_CUSTOM=$XMONAD_DIR/xmonad-$(uname -i)-linux
    # recompile if broken shared libs after an upgrade
    if [ -r $XMONAD_DIR/xmonad.hs -a -x $XMONAD_CUSTOM ]; then
	if ldd $XMONAD_CUSTOM | grep -q "not found"; then
	    xmonad --recompile
	fi
    fi
fi

XMONADSTART_CACHEDIR=$HOME/.cache/xmonad-start
NO_DIALOG_FILE=$HOME/.cache/xmonad-start/no-startup-dialog
if [ -x "/usr/bin/zenity" -a ! -r "$NO_DIALOG_FILE" ]; then
    if ! zenity --question --text="To open an terminal press: Alt-Shift-Return\n\nFor more keybindings and info see manpage: man xmonad\n\n${INFO:+$INFO\n\n}\nShow this dialog next time?"; then
	mkdir -p $XMONADSTART_CACHEDIR
	touch $NO_DIALOG_FILE
    fi
fi

if [ -r $XMONAD_DIR/session ]; then
    sh $XMONAD_DIR/session
fi

if [ -x /usr/bin/gnome-keyring-daemon ]; then
    eval $(gnome-keyring-daemon --start)
    export GNOME_KEYRING_SOCKET
    export GNOME_KEYRING_PID
fi

if [ -n "$*" ]; then
    if [ -d $XMONAD_DIR -a "$(ls -t $XMONAD_DIR | head -1)" = "xmonad.hs" ]; then
	xmonad --recompile
    fi
    xmonad &
    $*
else
    xmonad
fi