108 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			108 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
|  | #!/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 |