~darkxst/ubuntu/saucy/gdm/lp1212408

« back to all changes in this revision

Viewing changes to .pc/36_language_environment_settings.patch/data/Xsession.in

  • Committer: Bazaar Package Importer
  • Author(s): Gunnar Hjalmarsson
  • Date: 2011-08-15 10:09:37 UTC
  • Revision ID: james.westby@ubuntu.com-20110815100937-p0p9e1ljmpjicptt
Tags: 3.0.4-0ubuntu9
* debian/patches/ubuntu_i18n_oneiric.patch:
  - Unset LC_MESSAGES, LC_CTYPE, and LC_COLLATE if they equal LANG,
    in order to prevent that side effects, when connecting to other
    computers via ssh, appear unnecessarily.
  - Do not override the LANG value resulting from sourcing
    /etc/default/locale and ~/.profile.
* debian/patches/36_language_environment_settings.patch:
  - Not applicable any longer, so we drop it.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
#!@XSESSION_SHELL@
2
 
#
3
 
# This is SORT OF LIKE an X session, but not quite.  You get a command as the
4
 
# first argument (it could be multiple words, so run it with "eval").  As a
5
 
# special case, the command can be:
6
 
#  default - Run the appropriate Xclients startup (see the code below)
7
 
#  custom - Run ~/.xsession and if that's not available run 'default'
8
 
#
9
 
# (Note that other arguments could also follow, but only the command one is
10
 
# right now relevant and supported)
11
 
#
12
 
# The output is ALREADY redirected to .xsession-errors in GDM.  This way
13
 
# .xsession-errors actually gets more output such as if the PreSession script
14
 
# is failing.  This also prevents DoS attacks if some app in the users session
15
 
# can be prodded to dump lots of stuff on the stdout/stderr.  We wish to be
16
 
# robust don't we?  In case you wish to use an existing script for other DM's,
17
 
# you can just not redirect when GDMSESSION is set.  GDMSESSION will always
18
 
# be set from gdm.
19
 
#
20
 
# Also note that this is not run as a login shell, this is just executed.
21
 
# This is why we source the profile files below.
22
 
#
23
 
# based on:
24
 
# $XConsortium: Xsession /main/10 1995/12/18 18:21:28 gildea $
25
 
 
26
 
command="$@"
27
 
 
28
 
# this will go into the .xsession-errors along with all other echo's
29
 
# good for debugging where things went wrong
30
 
echo "$0: Beginning session setup..."
31
 
 
32
 
# First read /etc/profile and .profile
33
 
test -f /etc/profile && . /etc/profile
34
 
test -f "$HOME/.profile" && . "$HOME/.profile"
35
 
# Second read /etc/xprofile and .xprofile for X specific setup
36
 
test -f /etc/xprofile && . /etc/xprofile
37
 
test -f "$HOME/.xprofile" && . "$HOME/.xprofile"
38
 
 
39
 
# Translation stuff
40
 
if [ -x "@libexecdir@/gdmtranslate" ] ; then
41
 
  gdmtranslate="@libexecdir@/gdmtranslate"
42
 
else
43
 
  gdmtranslate=
44
 
fi
45
 
 
46
 
# Note that this should only go to zenity dialogs which always expect utf8
47
 
gettextfunc () {
48
 
  if [ "x$gdmtranslate" != "x" ] ; then
49
 
    "$gdmtranslate" --utf8 "$1"
50
 
  else
51
 
    echo "$1"
52
 
  fi
53
 
}
54
 
 
55
 
OLD_IFS=$IFS
56
 
 
57
 
gdmwhich () {
58
 
  COMMAND="$1"
59
 
  OUTPUT=
60
 
  IFS=:
61
 
  for dir in $PATH
62
 
  do
63
 
    if test -x "$dir/$COMMAND" ; then
64
 
      if test "x$OUTPUT" = "x" ; then
65
 
        OUTPUT="$dir/$COMMAND"
66
 
      fi
67
 
    fi
68
 
  done
69
 
  IFS=$OLD_IFS 
70
 
  echo "$OUTPUT"
71
 
}
72
 
 
73
 
zenity=`gdmwhich zenity`
74
 
 
75
 
# Note: ~/.xsession-errors is now done in the daemon so that it
76
 
# works for ALL sessions (except ones named 'Failsafe')
77
 
 
78
 
# clean up after xbanner
79
 
freetemp=`gdmwhich freetemp`
80
 
if [ -n "$freetemp" ] ; then
81
 
        "$freetemp"
82
 
fi
83
 
 
84
 
userresources="$HOME/.Xresources"
85
 
usermodmap="$HOME/.Xmodmap"
86
 
userxkbmap="$HOME/.Xkbmap"
87
 
 
88
 
sysresources=/etc/X11/Xresources 
89
 
sysmodmap=/etc/X11/Xmodmap 
90
 
sysxkbmap=/etc/X11/Xkbmap
91
 
 
92
 
rh6sysresources=/etc/X11/xinit/Xresources 
93
 
rh6sysmodmap=/etc/X11/xinit/Xmodmap 
94
 
 
95
 
# merge in defaults
96
 
if [ -f "$rh6sysresources" ]; then
97
 
    xrdb -nocpp -merge "$rh6sysresources"
98
 
fi
99
 
 
100
 
if [ -f "$sysresources" ]; then
101
 
    xrdb -nocpp -merge "$sysresources"
102
 
fi
103
 
 
104
 
if [ -f "$userresources" ]; then
105
 
    xrdb -nocpp -merge "$userresources"
106
 
fi
107
 
 
108
 
# merge in keymaps
109
 
if [ -f "$sysxkbmap" ]; then
110
 
    setxkbmap `cat "$sysxkbmap"`
111
 
    XKB_IN_USE=yes
112
 
fi
113
 
 
114
 
if [ -f "$userxkbmap" ]; then
115
 
    setxkbmap `cat "$userxkbmap"`
116
 
    XKB_IN_USE=yes
117
 
fi
118
 
 
119
 
#
120
 
# Eeek, this seems like too much magic here
121
 
#
122
 
if [ -z "$XKB_IN_USE" -a ! -L /etc/X11/X ]; then
123
 
    if grep '^exec.*/Xsun' /etc/X11/X > /dev/null 2>&1 && [ -f /etc/X11/XF86Config ]; then
124
 
       xkbsymbols=`sed -n -e 's/^[     ]*XkbSymbols[   ]*"\(.*\)".*$/\1/p' /etc/X11/XF86Config`
125
 
       if [ -n "$xkbsymbols" ]; then
126
 
           setxkbmap -symbols "$xkbsymbols"
127
 
           XKB_IN_USE=yes
128
 
       fi
129
 
    fi
130
 
fi
131
 
 
132
 
# xkb and xmodmap don't play nice together
133
 
if [ -z "$XKB_IN_USE" ]; then
134
 
    if [ -f "$rh6sysmodmap" ]; then
135
 
       xmodmap "$rh6sysmodmap"
136
 
    fi
137
 
 
138
 
    if [ -f "$sysmodmap" ]; then
139
 
       xmodmap "$sysmodmap"
140
 
    fi
141
 
 
142
 
    if [ -f "$usermodmap" ]; then
143
 
       xmodmap "$usermodmap"
144
 
    fi
145
 
fi
146
 
 
147
 
unset XKB_IN_USE
148
 
 
149
 
# Overwrite $LANG from /etc/profile (and friends) with the one picked in the
150
 
# greeter
151
 
if [ -n "$GDM_LANG" ]; then
152
 
  LANG="$GDM_LANG"
153
 
  export LANG
154
 
fi
155
 
 
156
 
# run all system xinitrc shell scripts.
157
 
if [ -d /etc/X11/xinit/xinitrc.d ]; then
158
 
    for i in /etc/X11/xinit/xinitrc.d/* ; do
159
 
        if [ -x "$i" -a ! -d "$i" ]; then
160
 
            . "$i"
161
 
        fi
162
 
    done
163
 
fi
164
 
 
165
 
if [ "x$command" = "xcustom" ] ; then
166
 
  if [ -x "$HOME/.xsession" ]; then
167
 
    command="$HOME/.xsession"
168
 
  else
169
 
    echo "$0: Cannot find ~/.xsession will try the default session"
170
 
    command="default"
171
 
  fi
172
 
fi
173
 
 
174
 
if [ "x$command" = "xdefault" ] ; then
175
 
  if [ -x "$HOME/.Xclients" ]; then
176
 
    command="$HOME/.Xclients"
177
 
  elif [ -x /etc/X11/xinit/Xclients ]; then
178
 
    command="/etc/X11/xinit/Xclients"
179
 
  elif [ -x /etc/X11/Xclients ]; then
180
 
    command="/etc/X11/Xclients"
181
 
  else
182
 
    if [ -n "$zenity" ] ; then
183
 
        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."`
184
 
      "$zenity" --info --text "$disptext"
185
 
    else
186
 
      echo "$0: Cannot find Xclients"
187
 
    fi
188
 
    exec xterm -geometry 80x24+0+0
189
 
  fi
190
 
fi
191
 
 
192
 
# add ssh-agent if found
193
 
sshagent="`gdmwhich ssh-agent`"
194
 
if [ -n "$sshagent" ] && [ -x "$sshagent" ] && [ -z "$SSH_AUTH_SOCK" ]; then
195
 
    command="$sshagent -- $command"
196
 
elif [ -z "$sshagent" ] ; then
197
 
    echo "$0: ssh-agent not found!"
198
 
fi
199
 
 
200
 
echo "$0: Setup done, will execute: $command"
201
 
 
202
 
eval exec $command
203
 
 
204
 
echo "$0: Executing $command failed, will run xterm"
205
 
 
206
 
if [ -n "$zenity" ] ; then
207
 
        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."`
208
 
        "$zenity" --info --text "$disptext"
209
 
fi
210
 
 
211
 
exec xterm -geometry 80x24+0+0