#!/bin/sh

userresources=$HOME/.Xresources
usermodmap=$HOME/.Xmodmap
sysresources=/etc/X11/xinit/.Xresources
sysmodmap=/etc/X11/xinit/.Xmodmap

# merge in defaults and keymaps

if [ -f $sysresources ]; then
    xrdb -merge $sysresources
fi

if [ -f $sysmodmap ]; then
    xmodmap $sysmodmap
fi

if [ -f "$userresources" ]; then
    xrdb -merge "$userresources"
fi

if [ -f "$usermodmap" ]; then
    xmodmap "$usermodmap"
fi

# start some nice programs

if [ -d /etc/X11/xinit/xinitrc.d ] ; then
 for f in /etc/X11/xinit/xinitrc.d/?*.sh ; do
  [ -x "$f" ] && . "$f"
 done
 unset f
fi

# Remaps Capslock key to control.
# (only works for x environment - I haven't needed it for non-x yet)
setxkbmap -option ctrl:nocaps
# sets default to EURkey layout, with possibility to switch to german
# sets german layout to be default for the only pc I have with a german keyboard
if [[ $HOST == "marty-desk" ]] || [[ $HOSTNAME == "marty-desk" ]]; then
  setxkbmap -layout de,eu
else
  setxkbmap -layout eu,de
fi
# allows switching layouts with alt+space
setxkbmap -option grp:alt_shift_toggle

# Makes Capslock behave as escape - when ONLY capslock is pressed and released
# this only works when we already substitute a ctrl for caps with the lines above,
# otherwise control itself will act as escape.
# Needs xcape package installed. https://github.com/alols/xcape
type xcape >/dev/null 2>&1 && xcape -e 'Control_L=Escape'

# if unclutter exists start it
type unclutter >/dev/null 2>&1 && unclutter &
# if compton exists then we can start it as our compositor
type compton >/dev/null 2>&1 && compton &
# same deal with flashfocus as our active window indicator
type flashfocus >/dev/null 2>&1 && flashfocus -l never &

# if sxhkd - the key-binding daemon is installed, start it up
type sxhkd >/dev/null 2>&1 && sxhkd &

# additional config options for Touchpad devices ONLY
if [ $(dmesg | grep "Touchpad" | wc -l) > 0 ]; then
  # enable touch tapping for XPS13 touchpad - for different devices get the touchpad name with xinput list-prop <TAB>
  xinput set-prop "DLL075B:01 06CB:76AF Touchpad" "libinput Tapping Enabled" 1
fi

type i3 >/dev/null 2>&1 && exec i3