Files
dotfiles/x/xinitrc
2014-09-30 19:59:17 +02:00

133 lines
3.2 KiB
Bash
Executable File

#!/bin/bash
export LOGDIR="$HOME/.var/log/"
export RUNDIR="$HOME/.var/run"
[[ ! -d "LOGDIR" ]] && mkdir -p "$LOGDIR"
LOGFILE="$LOGDIR/xinitrc.log"
log() {
echo "[$(date +%FT%T)] $*" >> "$LOGFILE"
}
log "START"
if [ -d /etc/X11/xinit/xinitrc.d ]; then
for f in /etc/X11/xinit/xinitrc.d/*; do
[ -x "$f" ] && . "$f"
done
unset f
fi
[ -f /etc/xprofile ] && source /etc/xprofile
[ -f ~/.xprofile ] && source ~/.xprofile
export LANG=en_US.UTF-8
start_wm() {
log "generating i3 config"
I3_LOG="$LOGDIR/i3/i3.log"
I3_LOGOLD="${I3_LOG}.old"
# simple logrotate so we can still get info about the last session
if [[ -f "$I3_LOG" ]] ; then
log "moving old i3 log at $I3_LOG to $I3_LOGOLD"
mv -f "$I3_LOG" "$I3_LOGOLD"
fi
[[ ! -d "$(dirname $I3_LOG)" ]] && mkdir -p "$(dirname $I3_LOG)"
SESSION_CONF=$(bash "$HOME/.i3/scripts/genconfig.bash")
log "generated, starting i3"
exec i3 -c "$SESSION_CONF" >> "$LOGDIR/i3/i3.log"
}
# keyboard options
keyboard_layout=de
keyboard_variant=nodeadkeys
keyboard_repeat_delay=150
keyboard_repeat_speed=30
# path and options for the wallpaper changer script
path_wallchanger="$HOME/development/projects/wallchanger/wallchanger"
wallchanger_pidfile="$RUNDIR/wallchanger.pid"
wallpaper_directory="$HOME/pictures/wallpaper/misc"
wallpaper_logfile="$LOGDIR/wallpaper.log"
wallpaper_fallback="$HOME/.i3/data/wallpaper/"
wallpaper_interval="10800"
# redshift settings
redshift_lat_long="49.5:11"
redshift_colortemp="5500:3700"
# start mpd
if ! pgrep --euid hannes --exact '^mpd$' ; then
log "mpd is not running, starting mpd"
mpd "$HOME/.mpd/mpd.conf" &
else
log "mpd already running, will not start another instance"
fi
start the urxvt daemon
if pgrep urxvtd >/dev/null 2>&1; then
log "urxvtd already running"
else
log "starting urxvtd"
urxvtd -q -q -o
fi
log "starting zim in tray"
zim --plugin trayicon
log "starting conky clock on desktop"
(sleep 3 && conky -c "$HOME/.conky/clock.conkyrc" &>> $LOGFILE) &
# start the pulseaudio volume control tray applet
log "starting pasystray"
pasystray & &>> $LOGFILE
# start dropbox
log "starting dropboxd"
nice -n 10 ionice -c 3 dropboxd & &>> $LOGFILE
# start the wallpaper changer
log "starting $path_wallchanger"
$path_wallchanger "$wallpaper_directory" "$wallpaper_interval" "$wallpaper_fallback" &
echo $! > "$wallchanger_pidfile"
# start redshift
log "starting redshift-gtk"
redshift-gtk -l "$redshift_lat_long" -t "$redshift_colortemp" & &>> $LOGFILE
# set keyboard layout
log "setting keyboard layout"
setxkbmap -layout "$keyboard_layout" -variant "$keyboard_variant" & &>> $LOGFILE
# set key repeat delay
log "setting key repeat delay"
xset r rate "$keyboard_repeat_delay" "$keyboard_repeat_speed" & &>> $LOGFILE
# disable auto screen disable
xset -dpms
xset s off
# execute the host-specific .xinitrc-addition
hostfile="$HOME/.xinitrc.d/$(hostname).xinitrc"
log "looking for host specific xinitrc addition at $hostfile"
if [[ -f "$hostfile" ]] ; then
log "found it. executing"
bash "$hostfile" & &>> $LOGFILE
else
log "found none"
fi
if [[ -f ~/.Xresources ]] ; then
log "found ~/.Xresources, merging it into xrdb"
xrdb -merge ~/.Xresources & &>> $LOGFILE
else
log "~/.Xresources not found"
fi
start_wm