]> git.pld-linux.org Git - packages/kde4-kdebase-workspace.git/blob - kdebase-kdm.Xsession
- xfce4 support
[packages/kde4-kdebase-workspace.git] / kdebase-kdm.Xsession
1 #!/bin/sh
2 # Copyright (c) 1999, 2000 Red Hat, Inc.
3
4 # redirect errors to a file in user's home directory if we can
5 for errfile in "${TMPDIR-/tmp}/.xsession-$USER" \
6                 "/tmp/.xsession-$USER" \
7                 "$HOME/.xsession-errors"
8 do
9         if cp /dev/null "$errfile" 2> /dev/null ; then
10                 chmod 600 "$errfile"
11                 exec > "$errfile" 2>&1
12                 break
13         fi
14 done
15
16 [ "`echo $PATH | grep -q /usr/X11R6/bin`" = "" ] && PATH="${PATH}:/usr/X11R6/bin"
17 [ "`echo $PATH | grep -q "$HOME/bin"`" = "" ] && PATH="$PATH:$HOME/bin"
18
19 test -f /etc/profile && . /etc/profile
20 test -f $HOME/.profile && . $HOME/.profile
21
22 if [ ! -f $HOME/.profile ] && echo $SHELL |grep -q "bash"; then
23     test -f $HOME/.bash_profile && . $HOME/.bash_profile
24 fi
25
26 userresources=$HOME/.Xresources
27 usermodmap=$HOME/.Xmodmap
28 userxkbmap=$HOME/.Xkbmap
29
30 sysresources=/etc/X11/Xresources
31 sysmodmap=/etc/X11/Xmodmap
32 sysxkbmap=/etc/X11/Xkbmap
33
34 # merge in defaults
35 [ -f "$sysresources" ] && xrdb -merge "$sysresources"
36 [ -f "$userresources" ] && xrdb -merge "$userresources"
37
38 # merge in keymaps
39 if [ -f "$sysxkbmap" ]; then
40     setxkbmap `cat "$sysxkbmap"`
41     XKB_IN_USE=yes
42 fi
43
44 if [ -f "$userxkbmap" ]; then
45     setxkbmap `cat "$userxkbmap"`
46     XKB_IN_USE=yes
47 fi
48
49 if [ -z "$XKB_IN_USE" -a ! -L /etc/X11/X ]; then
50         if grep '^exec.*/Xsun' /etc/X11/X > /dev/null 2>&1 \
51                         && [ -f /etc/X11/XF86Config ]; then
52                 xkbsymbols=`sed -n -e 's/^[     ]*XkbSymbols[   ]*"\(.*\)".*$/\1/p' /etc/X11/XF86Config`
53                 if [ -n "$xkbsymbols" ]; then
54                         setxkbmap -symbols "$xkbsymbols"
55                         XKB_IN_USE=yes
56                 fi
57         fi
58 fi
59
60 # xkb and xmodmap don't play nice together
61 if [ -z "$XKB_IN_USE" ]; then
62         [ -f "$sysmodmap" ] && xmodmap "$sysmodmap"
63         [ -f "$usermodmap" ] && xmodmap "$usermodmap"
64 fi
65
66 unset XKB_IN_USE
67
68 # run all system xinitrc shell scripts.
69 for i in /etc/X11/xinit/xinitrc.d/* ; do
70     if [ -x "$i" ]; then
71        . "$i"
72     fi
73 done
74
75 # exec specified session or tell user if not found
76 loadsess()
77 {
78     if [ -f "$HOME/bin/$sess.sh" ]; then
79         exec "$HOME/bin/$sess.sh"
80     else    
81         [ `/usr/bin/which $sess` ] && exec $sess || exec xmessage -center \
82         -buttons OK:0 -default OK "Sorry, $sess not found."
83     fi  
84 }
85
86 # now, we see if xdm/gdm/kdm has asked for a specific environment
87 case $1 in
88     failsafe)
89         exec xterm -geometry 80x24-0-0
90         ;;
91     gnome)
92         sess=gnome-session
93         loadsess
94         ;;
95     kde)
96         sess=startkde
97         loadsess
98         ;;
99     windowmaker)
100         sess=wmaker
101         loadsess
102         ;;
103     xfce)
104         sess=startxfce
105         loadsess
106         ;;
107     xfce4)
108         sess=xfce4-session
109         loadsess
110         ;;
111     ""|default)
112         # take default action
113         if [ -f "$HOME/.Xclients" ]; then
114             exec "$HOME/.Xclients"
115         else
116             exec /etc/X11/xinit/Xclients
117         fi
118         ;;
119     *)
120         sess=$1
121         loadsess
122 esac
This page took 0.080881 seconds and 3 git commands to generate.