X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=.xsession;h=a60ea846bf7bb68c8298d346b44b5e9a9b1323fb;hb=HEAD;hp=b402817caebf2ff4dec895fd30c4a219d5843894;hpb=def1e8945af8469020cf61548a83c5b599716a98;p=x_base.git diff --git a/.xsession b/.xsession index b402817..a60ea84 100755 --- a/.xsession +++ b/.xsession @@ -1,5 +1,17 @@ #!/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") @@ -8,7 +20,7 @@ mv ~/.xsession-errors ~/.xsession-errors_${DATE}; 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" @@ -44,36 +56,48 @@ if [ -e ~/.Xauthority ]; then 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;