287 lines
7.9 KiB
Diff
287 lines
7.9 KiB
Diff
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
|