#!/bin/sh slimsession="$1" ### # The majority of this file was ripped directly from /etc/X11/xinit/xinitrc ############################################## 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 ### # Source user .xprofile if exists ############################################## if [ -f "$HOME/.xprofile" ]; then source "$HOME/.xprofile" fi ############################################## # Specify session via XSESSION ############################################## if [ "$slimsession" == "" ] || [ "$slimsession" == "Xsession" ]; then if [ -f "$HOME/.xsession" ]; then slimsession=`cat "$HOME/.xsession"` fi fi if [ -f "/etc/X11/Sessions/$slimsession" ]; then XSESSION=$slimsession fi ### # Use the chooser from xinit to select the actual command to start the session ############################################## if [ -n "`/etc/X11/chooser.sh`" ]; then command="`/etc/X11/chooser.sh`" else failsafe="yes" fi if [ -d /etc/X11/xinit/xinitrc.d ] ; then for f in /etc/X11/xinit/xinitrc.d/* ; do [ -x "$f" ] && . "$f" done unset f fi ### # If session not specified or found, try .xinitrc or system xinitrc ############################################## if [ -n "$failsafe" ]; then # session not specified or found, try .xinitrc scripts if [ -f "$HOME/.xinitrc" ]; then if [ -x "$HOME/.xinitrc" ]; then exec "$HOME/.xinitrc" else exec /bin/sh "$HOME/.xinitrc" fi else exec /etc/X11/xinit/xinitrc fi else exec $command fi