#!/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 "$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 # 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 ;; 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