#!/bin/bash
#
# .xsession: set basic X11 environment
#

# Background image
BACKGROUND=""

# Session applications
PROGRAMS=""

# OS Version
OSVERSION="`cut -d . -f 1 /etc/debian_version`"

# Hostname
HOSTNAME="`cat /etc/hostname`"

# Make sure to load the profile
. $HOME/.profile

# Start xscreensaver
xscreensaver -no-splash &

# Custom
if [ -e "$HOME/.custom/xsession" ]; then
  . $HOME/.custom/xsession
fi

# Set background
if [ ! -z "$BACKGROUND" ]; then
  Esetroot -scale $HOME/.config/themes/backgrounds/$BACKGROUND
else
  xsetroot -solid black
fi

# Additional applications depending on the machine type
if laptop-detect; then
  PROGRAMS="$PROGRAMS xwicd"
else
  PROGRAMS="$PROGRAMS"
fi

# Start session applications
for program in $PROGRAMS; do
  $program &
done

# Apply custom keyboard configuration
if [ -f "$HOME/.Xmodmaps/$HOSTNAME" ]; then
  xmodmap $HOME/.Xmodmaps/$HOSTNAME

  # Why xmodmap has to run twice to some changes take place?
  # https://faq.i3wm.org/question/558/xmodmap-loading/
  # https://bugs.launchpad.net/ubuntu/+source/gdm/+bug/700309
  xmodmap $HOME/.Xmodmaps/$HOSTNAME
fi

# Fix mumble configuration, which varies depending on machine audio
if [ -f "$HOME/.config/Mumble/Mumble-$HOSTNAME.conf" ]; then
  (
    cd $HOME/.config/Mumble
    mv Mumble.conf Mumble-$HOSTNAME.conf.backup
    ln -s Mumble-$HOSTNAME.conf Mumble.conf
  )
fi

# Execute window manager
if [ "$OSVERSION" = "7" ]; then
  # See https://bugzilla.redhat.com/show_bug.cgi?id=783568
  #     https://bugs.launchpad.net/ubuntu/+source/gnome-keyring/+bug/932177
  #     http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=653011
  #     https://bugzilla.gnome.org/show_bug.cgi?id=660240
  #unset GNOME_KEYRING_PID
  #unset GNOME_KEYRING_CONTROL
  eval $(gnome-keyring-daemon --start --components=pkcs11,gpg,secrets)

  # Start window manager
  awesome
fi