X-Git-Url: https://ruderich.org/simon/gitweb/?a=blobdiff_plain;f=xinitrc;h=0f3aa1e2eae0633f2c565f31166cf840db113760;hb=cfbe0fa5363aa36caa133e2387bafcb8eb3f7d56;hp=b286dbc9615534d7489f780d006ceac1fd53807f;hpb=472e40aeca23a58e20bcc0fc787c9d98e1f4224a;p=config%2Fdotfiles.git diff --git a/xinitrc b/xinitrc index b286dbc..0f3aa1e 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 @@ -24,12 +24,6 @@ # LANG set (for Python's decode() function). Therefore load my general shell # environment which also includes $LANG. if test -f "$HOME/.shell/env"; then - # Debug function used in ~/.shell/env. - source_debug() { - # Do nothing. - : - } - . "$HOME/.shell/env" fi @@ -108,6 +102,9 @@ xmodmap -e 'keycode 94 = grave asciitilde' # Disable annoying audio bell. Thanks to Sebastian Rachuj. xset b off +# Load settings for programs. Xdefaults is deprecated. +xrdb "$HOME/.Xresources" + # Change the background if available. if test -f "$HOME/.background" && test -n "$set_background"; then if installed hsetroot; then @@ -132,9 +129,11 @@ if installed redshift; then redshift -l 49.9:10.9 -t 5500:4500 >/dev/null & fi -# Automatically lock the screen after x minutes of inactivity if `xautolock` -# is available. Warn if locker wasn't found. -if installed xautolock; then +# Automatically lock the screen after x minutes of inactivity if +# `xscreensaver` or `xautolock` is available. Warn if no locker was found. +if installed xscreensaver; then + xscreensaver & +elif installed xautolock; then if installed "$screen_locker"; then xautolock -secure -time "$screen_lock_time" -locker "$screen_locker" & else @@ -144,12 +143,40 @@ elif test -n "$screen_lock_force"; then error "'xautolock' not found. Auto lock won't work!" fi +# Use compton to get transparent windows. See ~/.Xresources for configuration +# of urxvt. +if installed compton; then + compton & +# xcompmgr as fallback. +elif installed xcompmgr; then + xcompmgr & +fi + -# XMonad doesn't start a terminal emulator on its own, start one when I login. +# My window manager doesn't start a terminal emulator on its own, start one +# when I login. (urxvt || rxvt || xterm) & # Start window manager. -xmonad +failed= +if installed herbstluftwm; then + herbstluftwm --locked >"$HOME/.config/herbstluftwm/log" 2>&1 || failed=1 +elif installed xmonad; then + xmonad || failed=1 +elif installed stumpwm; then + stumpwm || failed=1 +else + 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 # Cleanup. @@ -160,4 +187,6 @@ if test -x /usr/bin/ssh-agent; then # No `eval` necessary, we terminate anyway. fi # Kill remaining background processes. -kill $background_pids +if test -n "$background_pids"; then + kill $background_pids +fi