| #!/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 |