Index: gdm-2.17.7/config/Xsession.in ================================================================================ --- gdm-2.19.3/config/Xsession.in +++ gdm-2.19.3/config/Xsession.in @@ -1,278 +1,2 @@ -#!@XSESSION_SHELL@ -# -# This is SORT OF LIKE an X session, but not quite. You get a command as the -# first argument (it could be multiple words, so run it with "eval"). As a -# special case, the command can be: -# default - Run the appropriate Xclients startup (see the code below) -# custom - Run ~/.xsession and if that's not available run 'default' -# -# (Note that other arguments could also follow, but only the command one is -# right now relevant and supported) -# -# The output is ALREADY redirected to .xsession-errors in GDM. This way -# .xsession-errors actually gets more output such as if the PreSession script -# is failing. This also prevents DoS attacks if some app in the users session -# can be prodded to dump lots of stuff on the stdout/stderr. We wish to be -# robust don't we? In case you wish to use an existing script for other DM's, -# you can just not redirect when GDMSESSION is set. GDMSESSION will always -# be set from gdm. -# -# Also note that this is not run as a login shell, this is just executed. -# This is why we source the profile files below. -# -# based on: -# $XConsortium: Xsession /main/10 1995/12/18 18:21:28 gildea $ - -command="$@" - -# this will go into the .xsession-errors along with all other echo's -# good for debugging where things went wrong -echo "$0: Beginning session setup..." - -# First read /etc/profile and .profile -test -f /etc/profile && . /etc/profile -test -f "$HOME/.profile" && . "$HOME/.profile" -# Second read /etc/xprofile and .xprofile for X specific setup -test -f /etc/xprofile && . /etc/xprofile -test -f "$HOME/.xprofile" && . "$HOME/.xprofile" - -# Translation stuff -if [ -x "@libexecdir@/gdmtranslate" ] ; then - gdmtranslate="@libexecdir@/gdmtranslate" -else - gdmtranslate= -fi - -# Note that this should only go to zenity dialogs which always expect utf8 -gettextfunc () { - if [ "x$gdmtranslate" != "x" ] ; then - "$gdmtranslate" --utf8 "$1" - else - echo "$1" - fi -} - -OLD_IFS=$IFS - -gdmwhich () { - COMMAND="$1" - OUTPUT= - IFS=: - for dir in $PATH - do - if test -x "$dir/$COMMAND" ; then - if test "x$OUTPUT" = "x" ; then - OUTPUT="$dir/$COMMAND" - fi - fi - done - IFS=$OLD_IFS - echo "$OUTPUT" -} - -zenity=`gdmwhich zenity` - -# Note: ~/.xsession-errors is now done in the daemon so that it -# works for ALL sessions (except ones named 'Failsafe') - -# clean up after xbanner -freetemp=`gdmwhich freetemp` -if [ -n "$freetemp" ] ; then - "$freetemp" -fi - -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 - -# Normalize languages, some places/distros screw us up in /etc/profile, -# so in case the user did select a language -if [ -n "$GDM_LANG" ]; then - LANG="$GDM_LANG" - export LANG - - if [ -n "$LC_ALL" ]; then - if [ "$LC_ALL" != "$LANG" ]; then - LC_ALL="$LANG" - fi - else - unset LC_ALL - fi - - if [ -n "$LANGUAGE" ]; then - if [ "$LANGUAGE" != "$LANG" ]; then - LANGUAGE="$LANG" - fi - else - unset LANGUAGE - fi - - if [ -n "$LINGUAS" ]; then - if [ "$LINGUAS" != "$LANG" ]; then - LINGUAS="$LANG" - fi - else - unset LINGUAS - fi -fi - -# Normalize all LC_* settings to $LANG -for var in "LC_ALL" "LC_CTYPE" "LC_NUMERIC" "LC_TIME" "LC_COLLATE" "LC_MONETARY" "LC_MESSAGES" \ - "LC_PAPER" "LC_NAME" "LC_ADDRESS" "LC_TELEPHONE" "LC_MEASUREMENT" "LC_IDENTIFICATION" ; do - if eval "[ -n \"\$$var\" -a \"\$$var\" != \"\$LANG\" ]" ; then - unset $var - fi -done - -# run all system xinitrc shell scripts. -if [ -d /etc/X11/xinit/xinitrc.d ]; then - for i in /etc/X11/xinit/xinitrc.d/* ; do - if [ -x "$i" ]; then - . "$i" - fi - done -fi - -# -# To determine the character set used for filenames with -# glib's g_filename_to/from_utf8() functions, we set the -# environment variables G_FILENAME_ENCODING and G_BROKEN_FILENAMES. -# -# G_BROKEN_FILENAMES, when set, lets the functions take the -# character set for the current locale for filename's encoding. -# -# G_FILENAME_ENCODING, which is introduced to glib 2.3.x and later, may be -# set to a comma-separated list of character set names. -# The special token "@locale" is taken to mean the character set -# for the current locale. The first character set from the list is taken -# as the filename encoding. -# -# If G_FILENAME_ENCODING is not set, but G_BROKEN_FILENAMES is, the -# character set of the current locale is taken as the filename encoding. - -G_BROKEN_FILENAMES=yes -export G_BROKEN_FILENAMES -# G_FILENAME_ENCODING=@locale -# export G_FILENAME_ENCODING - -#Startup Input methods (IIIM->XIM) -if [ -f /etc/iiim/xsession ]; then - . /etc/iiim/xsession -fi -#Startup XIM stuff -if [ "x$XMODIFIERS" = "x" ]; then - if [ -f "$HOME/.xim" ]; then - . $HOME/.xim - elif [ -f "/etc/skel/.xim" ]; then - . /etc/skel/.xim - fi -fi - -if [ "x$command" = "xcustom" ] ; then - if [ -x "$HOME/.xsession" ]; then - command="$HOME/.xsession" - else - echo "$0: Cannot find ~/.xsession will try the default session" - command="default" - fi -fi - -if [ "x$command" = "xdefault" ] ; then - if [ -x "$HOME/.Xclients" ]; then - command="$HOME/.Xclients" - elif [ -x /etc/X11/xinit/Xclients ]; then - command="/etc/X11/xinit/Xclients" - elif [ -x /etc/X11/Xclients ]; then - command="/etc/X11/Xclients" - else - if [ -n "$zenity" ] ; then - disptext=`gettextfunc "System has no Xclients file, so starting a failsafe xterm session. Windows will have focus only if the mouse pointer is above them. To get out of this mode type 'exit' in the window."` - "$zenity" --info --text "$disptext" - else - echo "$0: Cannot find Xclients" - fi - exec xterm -geometry 80x24+0+0 - fi -fi - -# add ssh-agent if found -sshagent="`gdmwhich ssh-agent`" -if [ -n "$sshagent" ] && [ -x "$sshagent" ] && [ -z "$SSH_AUTH_SOCK" ]; then - command="$sshagent -- $command" -elif [ -z "$sshagent" ] ; then - echo "$0: ssh-agent not found!" -fi - -echo "$0: Setup done, will execute: $command" - -eval exec $command - -echo "$0: Executing $command failed, will run xterm" - -if [ -n "$zenity" ] ; then - disptext=`gettextfunc "Failed to start the session, so starting a failsafe xterm session. Windows will have focus only if the mouse pointer is above them. To get out of this mode type 'exit' in the window."` - "$zenity" --info --text "$disptext" -fi - -exec xterm -geometry 80x24+0+0 +#!/bin/sh +exec /etc/X11/xdm/Xsession $1 $GDM_LANG \ No newline at end of file