#!/bin/sh # Copyright (c) 1999, 2000 Red Hat, Inc. # redirect errors to a file in user's home directory if we can for errfile in "${TMPDIR-/tmp}/.xsession-$USER" \ "/tmp/.xsession-$USER" \ "$HOME/.xsession-errors" do if cp /dev/null "$errfile" 2> /dev/null ; then chmod 600 "$errfile" exec > "$errfile" 2>&1 break fi done [ "`echo $PATH | grep -q /usr/X11R6/bin`" = "" ] && PATH="${PATH}:/usr/X11R6/bin" [ "`echo $PATH | grep -q "$HOME/bin"`" = "" ] && PATH="$PATH:$HOME/bin" userresources=$HOME/.Xresources usermodmap=$HOME/.Xmodmap userxkbmap=$HOME/.Xkbmap sysresources=/etc/X11/Xresources sysmodmap=/etc/X11/Xmodmap sysxkbmap=/etc/X11/Xkbmap # merge in defaults [ -f "$sysresources" ] && xrdb -merge "$sysresources" [ -f "$userresources" ] && xrdb -merge "$userresources" # 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 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 [ -f "$sysmodmap" ] && xmodmap "$sysmodmap" [ -f "$usermodmap" ] && xmodmap "$usermodmap" fi unset XKB_IN_USE # run all system xinitrc shell scripts. for i in /etc/X11/xinit/xinitrc.d/* ; do if [ -x "$i" ]; then . "$i" fi done # now, we see if xdm/gdm/kdm has asked for a specific environment case $# in 1) case $1 in failsafe) exec xterm -geometry 80x24-0-0 ;; gnome) exec gnome-session ;; kde|kde1) # exec /usr/share/apps/switchdesk/Xclients.kde ;; kde2) # exec /usr/share/apps/switchdesk/Xclients.kde2 ;; esac esac # otherwise, take default action if [ -f "$HOME/.xsession" ]; then exec "$HOME/.xsession" elif [ -f "$HOME/.Xclients" ]; then exec "$HOME/.Xclients" else exec /etc/X11/xinit/Xclients fi