| 1 | #!/bin/bash |
|---|
| 2 | # Single Xwindow/KDE/GNOME startup script |
|---|
| 3 | # (C) Klaus Knopper Jun 2001 |
|---|
| 4 | # (C) 2005 modified by Stefan Lippers-Hollmann <s.l-h@gmx.de> |
|---|
| 5 | # (C) 2007 Alan Baghumian <alan@technotux.org> |
|---|
| 6 | |
|---|
| 7 | # override tool behaviour through distro-defaults |
|---|
| 8 | FLL_DISTRO_MODE="installed" |
|---|
| 9 | FLL_LIVE_USER="parsix" |
|---|
| 10 | if [ -r /etc/default/distro ]; then |
|---|
| 11 | source /etc/default/distro |
|---|
| 12 | fi |
|---|
| 13 | |
|---|
| 14 | # don't ever start me on an installed system |
|---|
| 15 | [ ! "$FLL_DISTRO_MODE" == "live" ] && exit 0 |
|---|
| 16 | |
|---|
| 17 | USER="$FLL_LIVE_USER" |
|---|
| 18 | |
|---|
| 19 | HOME="/home/$USER" |
|---|
| 20 | |
|---|
| 21 | PATH="/bin:/sbin:/usr/bin:/usr/sbin:/usr/X11R6/bin:/usr/local/bin:." |
|---|
| 22 | export PATH |
|---|
| 23 | |
|---|
| 24 | umask 022 |
|---|
| 25 | |
|---|
| 26 | CRE=" |
|---|
| 27 | [K" |
|---|
| 28 | BLUE="[1;34m" |
|---|
| 29 | NORMAL="[1;39m" |
|---|
| 30 | |
|---|
| 31 | RUNLEVEL5="" |
|---|
| 32 | case "$(runlevel)" in *\ 5) RUNLEVEL5="true" ;; esac |
|---|
| 33 | |
|---|
| 34 | XMODULE="" |
|---|
| 35 | [ -f /etc/sysconfig/xserver ] && source /etc/sysconfig/xserver |
|---|
| 36 | [ -f /etc/sysconfig/knoppix ] && source /etc/sysconfig/knoppix |
|---|
| 37 | |
|---|
| 38 | # Read DESKTOP |
|---|
| 39 | [ -f /etc/sysconfig/desktop ] && . /etc/sysconfig/desktop |
|---|
| 40 | # GNOME is the default |
|---|
| 41 | [ -z "$DESKTOP" ] && DESKTOP="gnome" |
|---|
| 42 | |
|---|
| 43 | # See how we were called. |
|---|
| 44 | case "$1" in |
|---|
| 45 | start) |
|---|
| 46 | # hack i810 vga modes FIX ME |
|---|
| 47 | if [ -z "$NO915RES" -a "$XMODULE" == "i810" -a -x /usr/sbin/915resolution ]; then |
|---|
| 48 | if [[ $(915resolution -l 2>/dev/null) != *$XSCREEN* ]]; then |
|---|
| 49 | # Clean-up |
|---|
| 50 | mkdir -p /etc/default/ |
|---|
| 51 | rm -f /etc/default/915resolution |
|---|
| 52 | |
|---|
| 53 | cat > /etc/default/915resolution <<EOF |
|---|
| 54 | # 915resolution default |
|---|
| 55 | # |
|---|
| 56 | # find free modes by /usr/sbin/915resolution -l |
|---|
| 57 | # and set it to MODE |
|---|
| 58 | # |
|---|
| 59 | MODE=5c |
|---|
| 60 | # |
|---|
| 61 | # |
|---|
| 62 | # and set resolutions for the mode. |
|---|
| 63 | # |
|---|
| 64 | XRESO=${XSCREEN/x*} |
|---|
| 65 | YRESO=${XSCREEN#*x} |
|---|
| 66 | EOF |
|---|
| 67 | /etc/init.d/915resolution restart &>/dev/null |
|---|
| 68 | fi |
|---|
| 69 | fi |
|---|
| 70 | |
|---|
| 71 | # Try to find and load an agp and drm module for this graphics card |
|---|
| 72 | KVER="$(uname -r)" |
|---|
| 73 | # Kernel 2.6: Load specific AGPGART module(s) |
|---|
| 74 | case "$KVER" in |
|---|
| 75 | 2.6.*) |
|---|
| 76 | case "$(cat /proc/cmdline)" in |
|---|
| 77 | *noagp*) |
|---|
| 78 | ;; |
|---|
| 79 | *) |
|---|
| 80 | for i in /lib/modules/"$KVER"/kernel/drivers/char/agp/*; do |
|---|
| 81 | module="${i##*/}"; module="${module%%.*}"; modprobe ${module} >/dev/null 2>&1 |
|---|
| 82 | done |
|---|
| 83 | # remove unused agp modules |
|---|
| 84 | for module in $(awk '/_agp/{if ($3==0) print $1}' /proc/modules); do |
|---|
| 85 | rmmod $module 2>/dev/null |
|---|
| 86 | done |
|---|
| 87 | ;; |
|---|
| 88 | esac |
|---|
| 89 | ;; |
|---|
| 90 | esac |
|---|
| 91 | |
|---|
| 92 | if [ -n "$XMODULE" ]; then |
|---|
| 93 | # All kernels: Load drm module |
|---|
| 94 | for i in /lib/modules/"$KVER"/kernel/drivers/char/drm/*; do |
|---|
| 95 | case "$i" in |
|---|
| 96 | *$XMODULE*) |
|---|
| 97 | module="${i##*/}" |
|---|
| 98 | module="${module%%.*}" |
|---|
| 99 | modprobe ${module} >/dev/null 2>&1 |
|---|
| 100 | ;; |
|---|
| 101 | esac |
|---|
| 102 | done |
|---|
| 103 | fi |
|---|
| 104 | |
|---|
| 105 | # Run appropriate Desktop manager |
|---|
| 106 | case "$DESKTOP" in |
|---|
| 107 | gnome) |
|---|
| 108 | # Copy GNOME desktop configuration |
|---|
| 109 | su -c "rsync -Ha --ignore-existing /etc/skel/{.config,Templates*,.firefox*,.mozilla*,.gconf*,.gstr*,.theme*,.fonts,..openoffice*,.xfardic*,*.gimp,.gnome*,.gtk*,Desktop,.bash*} $HOME/" - $USER 2>/dev/null |
|---|
| 110 | mkdir $HOME/Desktop/ 2>/dev/null |
|---|
| 111 | chown $USER.$USER $HOME/Desktop 2>/dev/null |
|---|
| 112 | cp /usr/share/applications/parsix-installer.desktop $HOME/Desktop/ 2>/dev/null |
|---|
| 113 | chown $USER.$USER $HOME/Desktop/parsix-installer.desktop 2>/dev/null |
|---|
| 114 | cp -r /etc/skel/.config $HOME/ 2>/dev/null |
|---|
| 115 | chown -R $USER.$USER $HOME/.config 2>/dev/null |
|---|
| 116 | if [ -f /etc/init.d/gdm ]; then |
|---|
| 117 | /etc/init.d/gdm start 2>/dev/null |
|---|
| 118 | fi |
|---|
| 119 | exit 0 |
|---|
| 120 | ;; |
|---|
| 121 | kde) |
|---|
| 122 | #TODO: Add KDE desktop configuration here |
|---|
| 123 | if [ -f /etc/init.d/kdm ]; then |
|---|
| 124 | /etc/init.d/kdm start 2>/dev/null |
|---|
| 125 | fi |
|---|
| 126 | exit 0 |
|---|
| 127 | ;; |
|---|
| 128 | *) |
|---|
| 129 | if [ -f /etc/init.d/gdm ]; then |
|---|
| 130 | /etc/init.d/gdm start 2>/dev/null |
|---|
| 131 | fi |
|---|
| 132 | exit 0 |
|---|
| 133 | ;; |
|---|
| 134 | esac |
|---|
| 135 | ;; |
|---|
| 136 | *) |
|---|
| 137 | echo "${RED}Usage: xsession {start|stop}${NORMAL}" |
|---|
| 138 | exit 1 |
|---|
| 139 | ;; |
|---|
| 140 | esac |
|---|
| 141 | |
|---|