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
 |