#!/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/.i3/scripts/wallchanger.sh" wallchanger_pidfile="$RUNDIR/wallchanger.pid" wallpaper_directory="$HOME/pictures/wallpaper/misc" wallpaper_logfile="$LOGDIR/wallpaper.log" wallpaper_fallback="$HOME/.i3/data/wallpaper/" wallpaper_interval="900" # 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 pidof urxvtd &>/dev/null ; then # log "urxvtd already running" #else # log "starting urxvtd" # urxvtd -q --fork #fi log "starting conky clock on desktop" (sleep 5 && 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