X-Git-Url: https://ruderich.org/simon/gitweb/?a=blobdiff_plain;f=xinitrc;h=387614d1288a7d079fcfa7a7418c8a31f7f490a5;hb=1106778939e4fcea2077a48b145f0cdcc55cbe17;hp=aa5bfafb31f9758ce70f7093026fc43a09fc91fb;hpb=be213876436409661de8a2fdb908a28851fa482b;p=config%2Fdotfiles.git diff --git a/xinitrc b/xinitrc index aa5bfaf..387614d 100755 --- a/xinitrc +++ b/xinitrc @@ -2,7 +2,7 @@ # startx configuration file. -# Copyright (C) 2011-2013 Simon Ruderich +# Copyright (C) 2011-2014 Simon Ruderich # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -150,15 +150,24 @@ fi (urxvt || rxvt || xterm) & # Start window manager. +failed= if installed herbstluftwm; then - herbstluftwm --locked >~/.config/herbstluftwm/log 2>&1 + herbstluftwm --locked >~/.config/herbstluftwm/log 2>&1 || failed=1 elif installed xmonad; then - xmonad + xmonad || failed=1 elif installed stumpwm; then - stumpwm + stumpwm || failed=1 else - error 'no window manager found (sleeping for 3600 seconds)' - sleep 3600 + failed='no window manager found' +fi +# Fallback in case my window manager failed to start. Otherwise X terminates +# the session immediately (because xinitrc finishes). +if test -n "$failed"; then + if test x"$failed" = x1; then + failed='failed to start window manager' + fi + error "$failed (spawning fallback terminal)" + urxvt || rxvt || xterm fi