#!/bin/sh
+cmd_exists () {
+ if which "$1" >/dev/null 2>&1; then
+ return 0;
+ else
+ return 1;
+ fi;
+}
+
+fork () {
+ ( "$@" >/dev/null 2>&1 & )
+}
+
echo "Starting new session"
DATE=$(date "+%Y%m%d_%H%M%S")
ln -sf ~/.xsession-errors_${DATE} ~/.xsession-errors-current;
# delete old xsession error files
find ~/ -maxdepth 1 -mindepth 1 -type f \
- -iname '.xsession-errors*' -ctime +30 -delete;
+ -iname '.xsession-errors_*' -ctime +30 -delete;
if locale -a |grep -qi en_US.utf8; then
LANG="en_US.UTF-8"
cp -f .Xauthority .Xauthority.bak
fi
-if [ -x /usr/bin/xscreensaver -a -e ~/.xscreensaver ]; then
- ( XENVIRONMENT=~/.xscreensaver /usr/bin/xscreensaver >/dev/null 2>&1 &)
-elif [ -x /usr/bin/xautolock ]; then
- (/usr/bin/xautolock -notifier true -bell 0 >/de/vnull 2>&1 &)
+if [ -e ~/bin/screensaver ]; then
+ ~/bin/screensaver on;
+elif cmd_exists i3lock && cmd_exists xss-lock; then
+ fork xss-lock -l -- ~/bin/locker
+elif cmd_exists slock && cmd_exists xautolock; then
+ fork xautolock -notifier true -bell 0 -locker slock;
+ if cmd_exists xss-lock; then
+ fork xss-lock -- xautolock -locknow;
+ fi;
+elif cmd_exists xscreensaver && [ -e ~/.xscreensaver ]; then
+ fork XENVIRONMENT=~/.xscreensaver /usr/bin/xscreensaver;
+elif cmd_exists xautolock; then
+ fork xautolock -notifier true -bell 0;
+ if cmd_exists xss-lock; then
+ fork xss-lock -- xautolock -locknow;
+ fi;
fi;
-if which redshift >/dev/null 2>&1; then
- (redshift >/dev/null 2>&1 &)
+if cmd_exists redshift; then
+ fork redshift;
fi;
-if which mopidy >/dev/null 2>&1 && [ -e ~/.config/mopidy/mopidy.conf ]; then
- (mopidy > /dev/null 2>&1 & );
-elif which mpd >/dev/null 2>&1 && [ -e ~/.mpdconf ]; then
- (mpd >/dev/null 2>&1 &);
+if cmd_exists mpd && [ -e ~/.mpdconf ]; then
+ fork mpd;
MPD_HOST=$(awk '/^bind_to_address/{print $2}' ~/.mpdconf|sed "s|~|$HOME|; s/^\"//; s/\"$//; ");
export MPD_HOST;
+elif cmd_exists mopidy && [ -e ~/.config/mopidy/mopidy.conf ]; then
+ fork mopidy;
fi;
-if [ -x /sbin/iw ] && which nm-applet >/dev/null 2>&1 && /sbin/iw list|grep -q '^Wiphy'; then
- ( nm-applet > /dev/null 2>&1 & );
+if [ -x /sbin/iw ] && cmd_exists nm-applet && /sbin/iw list|grep -q '^Wiphy'; then
+ fork nm-applet;
fi;
-if [ -x /usr/bin/i3 ]; then
+if cmd_exists i3; then
if [ -x ~/.config/i3/build_config.sh ]; then
~/.config/i3/build_config.sh;
fi;
exec /usr/bin/i3;
else
for prog in awesome ion3 openbox stterm st rxvt rxvt-unicode xterm; do
- if which $prog >/dev/null 2>&1; then
+ if cmd_exists $prog; then
exec $(which $prog)
fi
done;