#!/bin/sh
#
# ~/.xinitrc
# Executed by startx (run your window manager from here)
# GENERIC #
# Usage: .xinitrc [window-manager] [session-type]
# where: window-manager is one of '(xmonad openbox stumpwm awesome pekwm)
# session-type is either "" or "remote"
# Set the default curson used by all WM's
xsetroot -cursor_name left_ptr
# Initialize a local desktop session (run generic helper applications)
function init_local_session() {
# Setup monitors
xrandr --output DVI-I-1 --auto --output DVI-I-2 --auto --left-of DVI-I-1
# Start xscreensaver
xscreensaver -no-splash &
# Set a desktop background
nitrogen --restore &
# Have mouse pointer hide after 5 seconds
unclutter &
# Setup system tray *DISABLED* :: whats the point of a systray if no apps use it?
#trayer --monitor 1 --edge top --align right --expand true --width 4 --height 2 --transparent true --tint 0x000000 &
# Use xbindkeys to bind media keys etc..
xbindkeys &
# Start pulseaudio
#start-pulseaudio-x11 &
# Start-up applications
#parcellite &
emacs --daemon &
urxvtd --quiet &
xcompmgr &
# Create variable GENERAL_SCREEN which is the pid of a screen called "general"
export GENERAL_SCREEN=`screen -ls | grep general | cut -f1 -d'.' | sed 's/\W//g'`
# Check to see if a general screen is already running
if [ "x$GENERAL_SCREEN" == "x" ]; then
screen -dmS general &
fi
# Set the default wm to xmonad
DEFAULT_WM=xmonad
}
# Initialize a remote desktop session (run generic helper applications)
function init_remote_session() {
# Set desktop background
feh --bg-scale ~/.wallback/Cocaine_Wallpaper_II_by_mdornfeld.png &
DEFAULT_WM=stumpwm
# Check the second cl parameter which denotes the session-type (E.g. remote, local)
case $2 in
# Remote session
remote)
init_remote_session
break
;;
# Local session or unspecified
*)
init_local_session
esac
# Check the first cl parameter which denotes the window-manager to use
# Notice: in each case expression below "exec app" hands over execution to some app thus
# ceasing execution in this script so no "break" is required
case $1 in
xmonad)
exec xmonad
openbox)
exec ck-launch-session openbox
stumpwm)
exec stumpwm
awesome)
exec awesome
pekwm)
exec pekwm
exec $DEFAULT_WM