#!/bin/sh

#
# Environmental variables
#

#general
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/X11R7/bin:/usr/local/bin
PATH=$PATH:/usr/pkg/bin:/usr/pkg/sbin/:/usr/linux/bin
PATH=$PATH:/usr/games:/usr/pkg/java/openjdk8/bin:$HOME/.bin
TZ="Europe/Rome"
PAPERSIZE=A4
BLOCKSIZE=1m
TERM=xterm-256color
EDITOR=vi
SHELL=/bin/sh
XGD_RUNTIME_DIR=/tmp/$(id -u)
TMPDIR=${XDG_RUNTIME_DIR}
BROWSER=surf
NNTPSERVER="news://retrobsd.ddns.net"

export TZ PAPERSIZE BLOCKSIZE TERM EDITOR SHELL
export XDG_RUNTIME_DIR TMPDIR BROWSER NNTPSERVER

LANG="C.UTF-8"
LC_CTYPE="C.UTF-8"
WM=EMWM
XDG_MENU_PREFIX=lxde-
GDK_USE_XFT=1
GDK_DPI_SCALE=1
GDK_SCALE=1
QT_XFT=1
GTK2_RC_FILES="${HOME}/.gtkrc-2.0"
QT_QPA_PLATFORMTHEME=qt5ct
MC_XDG_OPEN=xdg-open
XCURSOR_SIZE="16"
XCURSOR_THEME="redSGI"
XAPPLRESDIR=/usr/pkg/lib/X11/app-defaults
SUDO_ASKPASS=/usr/X11R7/bin/ssh-askpass
exterm="LC_ALL=C.UTF-8 urxvt -title Terminal -e"

export LANG LC_CTYPE WM XDG_MENU_PREFIX GDK_USE_XFT GDK_DPI_SCALE
export GDK_SCALE QT_XFT GTK2_RC_FILES QT_QPA_PLATFORMTHEME MC_XDG_OPEN
export XCURSOR_SIZE XCURSOR_THEME XAPPLRESDIR SUDO_ASKPASS exterm

# mpd
MPD_HOST="127.0.0.1"
MPD_PORT="6600"
MPC_FORMAT="%title% \n%artist% - %album%"

export MPD_HOST MPD_PORT MPC_FORMAT

#plan9
PLAN9=/usr/pkg/plan9
PATH="$PATH:$PLAN9/bin"

export PLAN9 PATH
#
# Source possible system-wide startup scripts
#
if [ -d /etc/X11/xinit/xinitrc.d ]; then
  for f in /etc/X11/xinit/xinitrc.d/*; do
    [ -x "$f" ] && . "$f"
  done
  unset f
fi

#--- login routines ---

# create a user-owned  dir where 
# to store temporary files
dir=/tmp/$(id -u)
if [ ! -d "$dir" ]; then
    mkdir -p $dir    
    /sbin/chown -R $(whoami):$(id -gn) $dir
    chmod -R 0700 $dir
fi        
XDG_RUNTIME_DIR=${dir}
TMPDIR=${XDG_RUNTIME_DIR}
unset dir


# Make ~/.cache is a symbolic link to a directory owned by the user.

CACHE=${HOME}/.cache
[ -z $CACHE ] || rm -rf $CACHE
    dir=$(mktemp -d /tmp/${LOGNAME}.XXXXXX)
    /sbin/chown -R $(whoami):$(id -gn) $dir
	B
    chmod -R 0700 $dir
    ln -sf ${dir} $CACHE
    unset dir


# Kill dbus services from a previous session in order to prevent hangs.

for s in 15 9; do
 for p in dbus-launch /usr/pkg/libexec/gvfsd; do
    pgrep -U $(id -u) $p && pkill -$s $p
 done
done
eval $(dbus-launch --sh-syntax)

# start ssh agent
if [ -x /usr/pkg/bin/keychain ]; then
  keychain sdf_ed25519           
  . ${HOME}/.keychain/$(hostname)-sh     
fi

#
# X settings
#
setxkbmap -model pc105 -layout "it,us" \
	-option terminate:ctrl_alt_bksp
xset s on
xset +dpms					# powersaving
xset dpms 900 1200 1500				# screen blanking
xset b 0					# muted bell
xset m 55/20 4					# mouse acceleration
xset r rate 250 40				# faster keypresses 
xsetroot -cursor_name left_ptr			# cursor
xhost +local:root > /dev/null 2>&1		# privileged X server access 
xbrightness 65535 0.95				# gamma correction

xmodmap -e 'clear Lock' -e 'keycode 0x42 = Escape'

PKG_DATA_DIR=/usr/pkg/share

# update font database
for dir in $(find ${PKG_DATA_DIR}/fonts/X11 -type d) ; do
    xset +fp $dir
done
xset +fp "${HOME}/.fonts"
xset fp rehash

# root window name
while true; do
  xsetroot -name " $(date +"%a %b %d,") $(date +"%I:%M")"
  sleep 70
done &

# set background
xsetroot -solid "$(xrdb -query | awk '/\*.color8/ {print $2}')"

#
# Merge in default system resources and keymaps,
# as well as user-defined ones. 
#
userresources=$HOME/.Xresources
usermodmap=$HOME/.Xmodmap
sysresources=/etc/X11/xinit/Xresources
sysmodmap=/etc/X11/xinit/Xmodmap

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 wm
#
#LC_ALL=C exec ctwm -W
#LC_ALL=C exec /usr/pkg/bin/dbus-launch --exit-with-session --sh-syntax /usr/X11R7/bin/ctwm -W
exec /usr/pkg/bin/dbus-launch --exit-with-session --sh-syntax /usr/pkg/bin/xmsession
