108 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			108 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/bin/sh
 | 
						|
# $XConsortium: Xsession /main/10 1995/12/18 18:21:28 gildea $
 | 
						|
 | 
						|
case $# in
 | 
						|
1)
 | 
						|
	case $1 in
 | 
						|
	failsafe)
 | 
						|
		exec xterm -geometry 80x24-0-0
 | 
						|
		;;
 | 
						|
	esac
 | 
						|
esac
 | 
						|
 | 
						|
# redirect errors to a file in user's home directory if we can
 | 
						|
for errfile in "$HOME/.xsession-errors" "${TMPDIR-/tmp}/xses-$USER" "/tmp/xses-$USER"
 | 
						|
do
 | 
						|
	if ( cp /dev/null "$errfile" 2> /dev/null )
 | 
						|
	then
 | 
						|
		chmod 600 "$errfile"
 | 
						|
		exec > "$errfile" 2>&1
 | 
						|
		break
 | 
						|
	fi
 | 
						|
done
 | 
						|
 | 
						|
# clean up after xbanner
 | 
						|
if which freetemp 2> /dev/null ; then
 | 
						|
	freetemp
 | 
						|
fi
 | 
						|
 | 
						|
startup=$HOME/.xsession
 | 
						|
 | 
						|
userresources=$HOME/.Xresources 
 | 
						|
usermodmap=$HOME/.Xmodmap 
 | 
						|
userxkbmap=$HOME/.Xkbmap
 | 
						|
 | 
						|
sysresources=/etc/X11/Xresources 
 | 
						|
sysmodmap=/etc/X11/Xmodmap 
 | 
						|
sysxkbmap=/etc/X11/Xkbmap
 | 
						|
 | 
						|
rh6sysresources=/etc/X11/xinit/Xresources 
 | 
						|
rh6sysmodmap=/etc/X11/xinit/Xmodmap 
 | 
						|
 | 
						|
 | 
						|
# merge in defaults
 | 
						|
if [ -f "$rh6sysresources" ]; then
 | 
						|
    xrdb -merge "$rh6sysresources"
 | 
						|
fi
 | 
						|
 | 
						|
if [ -f "$sysresources" ]; then
 | 
						|
    xrdb -merge "$sysresources"
 | 
						|
fi
 | 
						|
 | 
						|
if [ -f "$userresources" ]; then
 | 
						|
    xrdb -merge "$userresources"
 | 
						|
fi
 | 
						|
 | 
						|
# merge in keymaps
 | 
						|
if [ -f "$sysxkbmap" ]; then
 | 
						|
    setxkbmap `cat "$sysxkbmap"`
 | 
						|
    XKB_IN_USE=yes
 | 
						|
fi
 | 
						|
 | 
						|
if [ -f "$userxkbmap" ]; then
 | 
						|
    setxkbmap `cat "$userxkbmap"`
 | 
						|
    XKB_IN_USE=yes
 | 
						|
fi
 | 
						|
 | 
						|
#
 | 
						|
# Eeek, this seems like too much magic here
 | 
						|
#
 | 
						|
if [ -z "$XKB_IN_USE" -a ! -L /etc/X11/X ]; then
 | 
						|
    if grep '^exec.*/Xsun' /etc/X11/X > /dev/null 2>&1 && [ -f /etc/X11/XF86Config ]; then
 | 
						|
       xkbsymbols=`sed -n -e 's/^[     ]*XkbSymbols[   ]*"\(.*\)".*$/\1/p' /etc/X11/XF86Config`
 | 
						|
       if [ -n "$xkbsymbols" ]; then
 | 
						|
           setxkbmap -symbols "$xkbsymbols"
 | 
						|
           XKB_IN_USE=yes
 | 
						|
       fi
 | 
						|
    fi
 | 
						|
fi
 | 
						|
 | 
						|
# xkb and xmodmap don't play nice together
 | 
						|
if [ -z "$XKB_IN_USE" ]; then
 | 
						|
    if [ -f "$rh6sysmodmap" ]; then
 | 
						|
       xmodmap "$rh6sysmodmap"
 | 
						|
    fi
 | 
						|
 | 
						|
    if [ -f "$sysmodmap" ]; then
 | 
						|
       xmodmap "$sysmodmap"
 | 
						|
    fi
 | 
						|
 | 
						|
    if [ -f "$usermodmap" ]; then
 | 
						|
       xmodmap "$usermodmap"
 | 
						|
    fi
 | 
						|
fi
 | 
						|
 | 
						|
unset XKB_IN_USE
 | 
						|
 | 
						|
if [ -x "$startup" ]; then
 | 
						|
	exec "$startup"
 | 
						|
elif [ -x "$HOME/.Xclients" ]; then
 | 
						|
	exec "$HOME/.Xclients"
 | 
						|
elif [ -x /etc/X11/xinit/Xclients ]; then
 | 
						|
	exec /etc/X11/xinit/Xclients
 | 
						|
elif [ -x /etc/X11/Xclients ]; then
 | 
						|
	exec /etc/X11/Xclients
 | 
						|
else
 | 
						|
	exec xsm
 | 
						|
fi
 |