.xinitrc: Changed chmod for /tmp/currentuser and /tmp/currentuid to 777
[openpandora.oe.git] / recipes / pandora-system / pandora-skel / .xinitrc
1 # This script sets up a few XDG vairables for the OpenPandora (to find the Xfce defaults etc.)
2 # and then launches the chosen user session (mainly Xfce or PMenu)
3
4 # The makes sure that /etc/xdg/op is added to the vairables to get the defaults for the OP.
5 if test "x$XDG_CONFIG_DIRS" = "x"
6 then
7   XDG_CONFIG_DIRS="/etc/xdg/op:/etc/xdg"
8 else
9   XDG_CONFIG_DIRS="/etc/xdg/op:$XDG_CONFIG_DIRS:/etc/xdg"
10 fi
11 export XDG_CONFIG_DIRS
12
13 if test "x$XDG_DATA_DIRS" = "x"
14 then
15   XDG_DATA_DIRS="/usr/local/share:/usr/share:@_datadir_@"
16   XDG_DATA_DIRS="/etc/xdg/op:/usr/local/share:/usr/share:@_datadir_@"
17 else
18   XDG_DATA_DIRS="$XDG_DATA_DIRS:@_datadir_@"
19   XDG_DATA_DIRS="/etc/xdg/op:$XDG_DATA_DIRS:@_datadir_@"
20 fi
21 export XDG_DATA_DIRS
22
23 # Use FreeDesktop XDG dir vars to put user data in non hidden dirs to make
24 # maintaince easier for users.
25 # These really should be set somewhere better but for now this will work.
26 export XDG_DATA_HOME=$HOME/Applications/Data
27 export XDG_CONFIG_HOME=$HOME/Applications/Settings
28 export XDG_CACHE_HOME=$HOME/Applications/Cache
29
30 #HACK: Run Xsession.d from here :-o
31 #Wrong, wrong, wrong but it works and sorting out OE's X server chain is not going to happen right now.
32
33 if [ -d /etc/X11/Xsession.d ]; then
34     for i in `ls /etc/X11/Xsession.d/` ; do
35         if [ -r "/etc/X11/Xsession.d/$i" ] && expr "$i" : '^[[:alnum:]_-]\+$' > /dev/null; then
36             . "/etc/X11/Xsession.d/$i"
37         fi
38     done
39 fi
40
41 #Load up the proper keymap for X
42 xmodmap ~/.pndXmodmap
43
44 #Write the current user into /tmp/currentuser for any scripts or programs who want to make use of it
45 whoami > /tmp/currentuser
46 id -u > /tmp/currentuid
47 chmod 777 /tmp/currentuser
48 chmod 777 /tmp/currentuid
49
50 # HUP pndnotifyd to make sure it picks up the users home.
51 killall -1 pndnotifyd &
52
53 # The following variable defines the session which is started if the user
54 # doesn't explicitely select a session in SLiM.
55
56 DEFAULT_SESSION=startxfce4
57 STOP_SESSION="xfce4-session-logout --logout"
58
59 # Write the default session into a temporary file.
60 # This way, we can easily add new sessions in the future by just
61 # setting the DEFAULT_SESSION to the executable or script.
62
63 echo $DEFAULT_SESSION > /tmp/gui.load
64
65 # If SLiM does pass a variable, use that. Otherwise use our DEFAULT_SESSION.
66
67 SESSION=$1
68
69 if [ "$SESSION" == "" ]
70
71         then
72         SESSION=$(cat /tmp/gui.load)
73 fi
74
75 STOP_SESSION=$(grep $SESSION /etc/pandora/conf/gui.conf | awk -F\; '{print $4}')
76 echo $STOP_SESSION > /tmp/gui.stop
77 chmod +x /tmp/gui.stop
78
79 # Disable screen blanking if uncommented
80 # DISPLAY=:0 xset s off
81
82 # Starts our session and checks if a new session should be loaded
83 # after the old one is quit by simply executing the command that's in /tmp/gui.load
84
85 # This way, we can easily do a quick switch from any session to the next one by simply
86 # echo'ing the new session executable into /tmp/gui.load and exiting.
87
88 if [ -f /tmp/nocleanwarn ]; then
89     defmhz="$(cat /etc/pandora/conf/cpu.conf | grep default | awk -F\: '{print $2}')"
90       if [ $defmhz -gt 600 ]; then
91         zenity --info --title="Unclean Shutdown" --text "Warning!\n\nThe system has not been shutdown properly last time.\n\nAs you overclocked the CPU as default speed, this might be the reason for that.\nTherefore, for this session, the current CPU speed has been set to 500 MHz."
92       fi
93   rm /tmp/nocleanwarn
94  fi
95 while true
96 do
97         rm /tmp/gui.load
98
99         if [ "$SESSION" == "" ]
100
101         then
102                 exit 0;
103         fi
104
105         $SESSION
106         
107         SESSION=$(cat /tmp/gui.load)
108         STOP_SESSION=$(grep $SESSION /etc/pandora/conf/gui.conf | awk -F\; '{print $4}')
109         echo $STOP_SESSION > /tmp/gui.stop
110         chmod +x /tmp/gui.stop
111 done