#!/bin/bash
############
#
# Auteur: Smo
# Support/lien : http://forum.ubuntu-fr.org/viewtopic.php?id=129437
# distrib: Ubuntu edgy/feisty/gutsy/hardy/intrepid || debian sid/unstable
#
# Description
#
# Script d installation automatique pour Compiz fusion depuis les depots trevino ou par git en
# Version Master + les plugins regulierement mis a jour (mise a jour automatique si besoin)
# Avant windows navigator par depot bzr ou compilation applets y compris
# screenlets et quelques screenlets en supplement
# cairo-dock :)
cfversion=V09122010
PREFIX=/usr/local
PKG_CONFIG_PATH=$PREFIX/lib/pkgconfig:$PREFIX/lib64/pkgconfig:$PREFIX/lib32/pkgconfig:$PKG_CONFIG_PATH
LD_LIBRARY_PATH=$PREFIX/lib:$PREFIX/lib64:$PREFIX/lib32:$LD_LIBRARY_PATH
function color()
{
printf '\033[%sm%s\033[m\n' "$@"
}
function COMMAND()
{
if [ -z "$LOG" ]; then
exec $1 &>/dev/null
else
exec $1
fi
}
function testConnect()
{
testconnexion=`wget www.google.fr -O /tmp/test &>/dev/null 2>&1`
if [ $? != 0 ]; then
sleep 5
echo "Pause, vous êtes déconnecté !, en attente de reconnexion"
testConnect
fi
}
function AUTOGEN()
{
./autogen.sh "$@" 2>/tmp/makelog && RETOUR 0 "Autogen de $name" || RETOUR 1 "Autogen de $name"
}
function CONFIGURE()
{
./configure "$@" 2>/tmp/makelog && RETOUR 0 "Autogen de $name" || RETOUR 1 "Autogen de $name"
}
function MAKE()
{
# Configure flags to cmake
# TODO: Conditional for LIB_SUFFIX
CMAKE_FLAGS="-DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_BUILD_TYPE=Debug -DCOMPIZ_PLUGIN_INSTALL_TYPE=compiz" # -DLIB_SUFFIX=64
CORE_CMAKE_FLAGS="$CMAKE_FLAGS"
# Adjust deps and flags
if [[ "$GNOME_ENABLED" = "true" ]]; then
CORE_CMAKE_FLAGS="$CORE_CMAKE_FLAGS -DBUILD_GNOME=ON -DBUILD_GNOME_KEYBINDINGS=ON -DBUILD_METACITY=ON -DBUILD_GTK=ON -DCOMPIZ_DISABLE_PLUGIN_GNOMECOMPAT=OFF -DCOMPIZ_DISABLE_PLUGIN_GLIB=OFF -DUSE_GCONF=ON"
else
CORE_CMAKE_FLAGS="$CORE_CMAKE_FLAGS -DBUILD_GNOME=OFF -DBUILD_GNOME_KEYBINDINGS=OFF -DBUILD_METACITY=ON -DBUILD_GTK=ON -DCOMPIZ_DISABLE_PLUGIN_GNOMECOMPAT=ON -DCOMPIZ_DISABLE_PLUGIN_GLIB=ON -DUSE_GCONF=OFF"
fi
if [[ "$GTK_ENABLED" = "true" ]]; then
CORE_CMAKE_FLAGS="$CORE_CMAKE_FLAGS -DBUILD_METACITY=ON -DBUILD_GTK=ON"
else
CORE_CMAKE_FLAGS="$CORE_CMAKE_FLAGS -DBUILD_METACITY=OFF -DBUILD_GTK=OFF"
fi
if [[ "$KDE_ENABLED" = "true" ]]; then
DECORATOR="kde4-window-decorator"
CORE_CMAKE_FLAGS="$CORE_CMAKE_FLAGS -DBUILD_KDE4=ON -DCOMPIZ_DISABLE_PLUGIN_KDE=OFF"
else
CORE_CMAKE_FLAGS="$CORE_CMAKE_FLAGS -DBUILD_KDE4=OFF -DCOMPIZ_DISABLE_PLUGIN_KDE=ON"
fi
if [[ "$COMPONENT" = "plugins-main" || "$COMPONENT" = "plugins-extra" || "$COMPONENT" = "plugins-unsupported" ]]; then
cd $downdir/$COMPONENT
if [[ ! -d $downdir/$COMPONENT ]]; then
rm -rf $downdir/$COMPONENT/*/build
fi
fi
if [[ "$COMPONENT" = "compizconfig-python" ]]; then
cd $downdir/$COMPONENT
echo "Installing $COMPONENT..."
PKG_CONFIG_PATH=$PKG_CONFIG_PATH $SUDO python ./setup.py install --prefix=$PREFIX || die $COMPONENT
elif [[ "$COMPONENT" = "ccsm" ]]; then
cd $downdir/$COMPONENT
echo "Installing $COMPONENT..."
PKG_CONFIG_PATH=$PKG_CONFIG_PATH $SUDO python ./setup.py install --prefix=$PREFIX || die $COMPONENT
else
mkdir $downdir/$COMPONENT/build
cd $downdir/$COMPONENT/build
echo "Building $COMPONENT..."
if [[ "$COMPONENT" = "core" ]]; then
cmake .. $CORE_CMAKE_FLAGS 2>/tmp/makelog && RETOUR 0 "cmake de $COMPONENT" || RETOUR 1 "cmake de $COMPONENT"
elif [[ ! "$KDE_ENABLED" = "true" && "$COMPONENT" = "plugins-main" ]]; then
cmake .. $CMAKE_FLAGS -DCOMPIZ_DISABLE_PLUGIN_KDECOMPAT=ON 2>/tmp/makelog && RETOUR 0 "cmake de $COMPONENT" || RETOUR 1 "cmake de $COMPONENT"
else
cmake .. $CMAKE_FLAGS 2>/tmp/makelog && RETOUR 0 "cmake de $COMPONENT" || RETOUR 1 "cmake de $COMPONENT"
fi
aplay /usr/lib/openoffice/basis3.2/share/gallery/sounds/apert.wav
make clean 2>/tmp/makelog && RETOUR 0 "make clean de $COMPONENT" || RETOUR 1 "make clean de $COMPONENT"
$MAKE || die $COMPONENT
fi
}
function MAKEINSTALL()
{
echo "Installation de $COMPONENT..."
$SUDO make install 2>/tmp/makelog && RETOUR 0 "Installation de $name" || RETOUR 1 "Installation de $name"
if [[ "$COMPONENT" = "core" ]]; then
$SUDO make findcompiz_install
fi
if [[ "$COMPONENT" = "libcompizconfig" ]]; then
$SUDO make findcompizconfig_install
fi
COMPONENT=""
}
function RETOUR()
{
elem="$2"
case $1 in
0)
echo ""
echo -e `color 32 "$elem ok, terminé(e) avec succés ! \n"`
sleep 2
;;
1)
ERREURS=$(cat /tmp/makelog) &>/dev/null
echo
echo -e `color 31 "Erreur $elem !!!\n
Veuillez reporter les lignes suivantes sur le forum SVP :\n
#########################################################\n
\n"`
echo -e "${ERREURS}\n"
echo -e `color 31 "\n
#########################################################\n
\n
Une erreur a été rencontrée pendant l'opération :\n
$elem
Merci de copier/coller les lignes ci dessus entre les #\n
sur le forum ubuntu ^^\n
"`
ret=""
cd "${downdir}"
rm -R "${downdir}/$name"
echo -e "Sortie... \n"
exit 1
;;
esac
}
### FONCTIONS
function check_packages()
{
testConnect
rm "$WORK"/apt.txt &>/dev/null
touch "$WORK"/apt.txt
missing=""
echo -e `color 34 "$MESSAGE \n"`
package_list="$1"
## check les fichiers manquants
testConnect
## clean dpkg
dpkg -l |grep ^rc |awk '{print $2}' |xargs dpkg -P 2>/dev/null
## check la liste
for i in $package_list ; do
## check extra (paquets a pb...) defini tocheck ou pas...
if [ -z "$basic" ]; then
tocheck="$(echo -e "$i" | sed 's/[0-9]/\.*/g')"
else
tocheck="$i"
fi
## demarre check
if [[ ! ` dpkg -l | awk '{print $2}' | grep -w "^$tocheck$" | tail -n1 ` ]]; then
echo "$i" | tee -a "$WORK"/apt.txt &>/dev/null
missing=`cat "$WORK"/apt.txt | xargs`
fi
done
## installe les paquets manquants
if [ -z "$missing" ]; then
rm "$WORK"/apt.txt &>/dev/null
echo -e `color 32 "Toutes les dépendences sont installées, ok... \n"`
else
echo -e `color 31 "Le(s) paquet(s) suivants vont/va etre installé(s) :\n
${missing}
\n"`
sleep 3
aptitude install $switch ${missing}
## vérification de l'installation...
rm "$WORK"/failed.txt &>/dev/null
touch "$WORK"/failed.txt &>/dev/null
check=$(echo -e "$missing" | xargs | sed -e 's/[0-9]/\.*/g')
for i in $missing; do
if [[ ! ` dpkg -l | awk '{print $2}' | grep -w "^$i$" ` ]]; then
echo "$i" | tee -a "$WORK"/failed.txt &>/dev/null
fi
done
## message final
if [ -n "$failed" ]; then
echo
echo -e ` color 31 "Un problème à été rencontré !\n
Les paquets suivants ne peuvent pas être installé :\n
$failed\n
Veuillez verifier votre sources.list et reporter le problème sur le forum SVP
"`
exit 1
else
echo -e `color 32 "Vérification terminée, installation des dépendences ok ^^ \n"`
fi
rm "$WORK"/apt.txt &>/dev/null
rm "$WORK"/failed.txt &>/dev/null
fi
}
function UPDATE_SCRIPT()
{
##auto update
if [ ! -d "/etc/xdg/autostart" ]; then
mkdir /etc/xdg/autostart
fi
if [ ! -e "/usr/share/applications/smoXinstall.desktop" ]; then
update_icon
fi
cd /tmp
rm cfinstall++.sh* &>/dev/null
(COMMAND "wget http://phatandfresh.free.fr/cfinstall++.sh")
current=`egrep -e "cfversion=[V]" cfinstall++.sh|sed 's/..*=//' | awk {'print $NF'}`
if [ ! "$current" = "$cfversion" ]; then
echo -e `color 31 "Une mise a jour va être téléchargée et installée....\n"`
sleep 2
OPTS="$(cat $WORK/options) &>/dev/null"
rm $WORK/options &>/dev/null
echo -e `color 32 "Remplace avec le fichier mis à jour dans ${emplacement_script} \n"`
rm $emplacement_script/cfinstall++.sh &>/dev/null
cp cfinstall++.sh $emplacement_script
chmod +x $emplacement_script/cfinstall++.sh
update_icon
## detecte si tourne dans xterm ou une console
if [ -n "$TERMID" ]; then
starter="nohup xterm -geometry 110x30 -hold -e "$emplacement_script/cfinstall++.sh" $OPTS"
else
starter="$emplacement_script/cfinstall++.sh $OPTS"
fi
# redemarrage + sortie du process courant
echo -e `color 32 "Le script est a jour, Redémarrage \n"`
exec $starter &
(kill -9 $PID $TERMID) 2>/dev/null
else
echo -e `color 32 "Le script est à jour... \n"`
sleep 2
fi
}
function update_icon {
echo -e `color 34 "(Re)Création du lanceur... \n"`
sleep 2
echo "[Desktop Entry]
Name=compiz++-installer
Name[fr]=compiz++-installer
Comment=Installer Compiz-fusion/fusion-icon/screenlets...
Comment[fr]=Installer Compiz-fusion/fusion-icon/screenlets...
Exec=gksu \"xterm -geometry 110x27 -hold -e ${emplacement_script}/cfinstall++.sh\"
Icon=/usr/share/pixmaps/smoXinstall.png
Type=Application
Categories=System;Application;
Encoding=UTF-8
" | tee /usr/share/applications/smoXinstall.desktop &>/dev/null
## force mise à jour du menu xdg kde/gnome
(COMMAND "xdg-desktop-menu install --noupdate /usr/share/applications/smoXinstall.desktop")
(COMMAND "xdg-desktop-menu forceupdate --mode user")
(COMMAND "xdg-desktop-menu forceupdate --mode system")
## recupere l image
cd /usr/share/pixmaps
(COMMAND "wget http://phatandfresh.free.fr/smoXinstall.png")
}
function userDialog() {
## check si X actif si oui on check juste la liste des utilisateurs dispo, sinon on ecnhaine sur un dialog (console) pour le demander
if [ -z "$DISPLAY" ]; then
## choix user
$DIALOG --title "Choix nom utilisateur (session a preparer)" --clear \
--inputbox "Indiquez votre nom d'utilisateur pour continuer" 0 0 2>/tmp/user.$$
returnuser=$?
user=`cat /tmp/user.$$`
case $returnuser in
0)
if [[ -z "$user" || ! `cat /etc/passwd | grep -w "$USERDIR"` ]]; then
echo `color 31 "Utlisateur erroné, non existant, retour..." `
sleep 2
userDialog
fi
;;
1)
echo ` color 32 "Annulation, Sortie..." `
exit 0
;;
255) echo ` color 31 "Echap selectionné, Sortie" `
exit 0
;;
esac
else ## et si session x ok
userChoice=$( cat /etc/passwd |grep "/home" | grep /bin/"[bash|sh|zsh]" |cut -d: -f1 | zenity --list --title "liste des utilisateurs" --text "Choisissez un utilisateur" --column "Utilisateur")
user="$userChoice"
fi
}
function choix-env()
{
$DIALOG --title "Choix environnement a preparer" \
--menu "Choisissez votre environnement graphique par defaut" 12 60 4 \
"gnome" "Configuration pour gnome" \
"kde" "Configuration pour kde" \
"kde4" "Configuration pour kde 4" \
"xfce4" "Configuration pour xfce 4" 2> /tmp/session.tmp.$$
SESSION=`cat /tmp/session.tmp.$$`
rm -f /tmp/session.tmp.$$
}
function checkuser ()
{
## verif user
if [ -z "${SUDO_USER}" ]; then
user="${USER}"
else
user="${SUDO_USER}"
fi
## choix session en mode console
if [ -e "/etc/ubukey/ubukeyconf" ]; then
SESSION=$(cat /etc/ubukey/ubukeyconf | grep -e "distSession" | sed 's/.*distSession=//')
if [ "$SESSION" == "kde3" ]; then
SESSION="kde"
fi
fi
if [[ -z "$user" || ! -e "/home/$user" || "$user" = "root" ]]; then
echo -e `color 31 "utilisateur \"$user\" séléctionné nul ou erroné, merci de choisir ou indiquer votre nom d'utilisateur \n"`
userDialog
fi
## detection du type de session kde/xfce/gnome...
if [[ `ps aux | grep -e "[k]smserver"` ]]; then
## kde maintenant kde 3 ou 4 ?
if [[ `ps aux | grep -e "[k]ded4" ` ]]; then
SESSION="kde4"
else
SESSION="kde"
fi
elif [[ `ps aux | grep -e "[g]nome-settings-daemon" ` ]]; then
SESSION="gnome"
elif [[ `ps aux | grep -e "[x]fce-mcs-manager" || ps aux | grep -e "[x]fsettingsd"` ]]; then
SESSION="xfce4"
else
echo -e "Type de session locale non détéctée, ou non supportée vous utilisez e17, fluxbox ???...
aucun thème ne sera copié"
fi
## si vide lance l assistant
if [ -z "$SESSION" ]; then
echo -e `color 31 "Aucune session séléctionnée, merci de cliquer sur gnome ou kde, xfce etc avant de valider \n"`
sleep 2
choix-env
fi
echo -e `color 32 "initialisation... \n"`
echo "Utilisateur: $user"
echo -e "Session à préparer: $SESSION "
echo -e "Distribution: $DIST \n"
WORK="/opt/cfinstall++"
USERDIR="/home/"$user""
logdate=`date '+%d-%m-%y-%Hh%M'`
fixeddate="date"
## check opt vraiment au cas ou ...
if [ ! -d "/opt" ]; then
mkdir /opt
fi
## verifie dossier de base ...
echo -e `color 33 "Préparation du script... \n" `
if [ ! -d "$WORK" ]; then
mkdir $WORK
mkdir $WORK/backups
cp /etc/X11/xorg.conf $WORK/backups/
mkdir $WORK/script-files
mkdir $WORK/script-files/screenlets
mkdir $WORK/fusion-icon
mkdir $WORK/fusion-git
mkdir $WORK/screenlets
mkdir $WORK/awnbuild
else
mkdir $WORK/backups &>/dev/null
mkdir $WORK/script-files &>/dev/null
mkdir $WORK/script-files/screenlets &>/dev/null
mkdir $WORK/fusion-icon &>/dev/null
mkdir $WORK/fusion-git &>/dev/null
mkdir $WORK/screenlets &>/dev/null
mkdir $WORK/awnbuild &>/dev/null
fi
echo -e ` color 31 "Création du fichier de logs : $WORK/postscriptlog-$fixeddate.txt \n" `
echo -e `color 33 "Verification du backup initial..."`
###### ajout Default.ini et config custom pour compiz-fusion
if [[ ! -e "$WORK"/backups/save-config && -e "$USERDIR"/.config/compiz ]]; then
echo -e `color 31 "Non détecté, creation d'une sauvegarde de votre configuration actuelle..."`
mkdir "$WORK"/backups/save-config &>/dev/null
cp -R -f "$USERDIR"/.config/compiz "$WORK"/backups/save-config/
fi
echo -e `color 32 "Sauvegarde ok..."`
rm -R /etc/xdg/compiz &>/dev/null
}
function UPDATE_SRC()
{
cd /usr/local/bin
rm ubusrc-gen &>/dev/null
(COMMAND "wget http://phatandfresh.free.fr/ubusrc-gen")
chmod +x /usr/local/bin/ubusrc-gen
. ubusrc-gen
}
## compiz build
function compiz_dep()
{
MESSAGE="Vérification des dépendences système basiques..."
sleep 2
check_packages "git-core aptitude cmake libcairo2-dev librsvg2-dev libpng12-dev libjpeg62-dev libdbus-1-dev libboost-dev libboost-serialization-dev libxml2-dev libgl1-mesa-dev libglu1-mesa-dev libx11-xcb-dev libxslt1-dev xsltproc libnotify-dev libprotobuf-dev intltool cython python2.6-dev"
echo -e `color 32 "Check des paquets specifique 32/64bits...\n"`
if [ "$DIST64" = "yes" ]; then
(COMMAND "aptitude install -y libc6-dev-i386 libxslt1-dev")
else
(COMMAND "aptitude install -y libc6-i686 libxslt-dev")
fi
}
function checkPlug()
{
case "$plugname" in
animation)
sed -i 's/\/options\/<\/key>/\/options<\/key>/g' build/compiz-animation.schema
sed -i 's/\/options\/<\/applyto>/\/options<\/applyto>/g' build/compiz-animation.schema
;;
animationaddon)
sed -i 's/\/options\/<\/key>/\/options<\/key>/g' build/compiz-animationaddon.schema
sed -i 's/\/options\/<\/applyto>/\/options<\/applyto>/g' build/compiz-animationaddon.schema
;;
extra-animations)
sed -i 's/\/options\/<\/key>/\/options<\/key>/g' build/compiz-animationplus.schema
sed -i 's/\/options\/<\/applyto>/\/options<\/applyto>/g' build/compiz-animationplus.schema
;;
esac
}
######## Fonction install compiz-fusion
function install_compiz_fusion()
{
echo -e ` color 34 "Préparation pour compiz-fusion... \n" `
## petit check sur la 3d
if [[ ! $(glxinfo | grep rendering | grep Yes) ]] &>/dev/null; then
echo -e "#############################################################\n"
echo -e `color 31 "Attention!!!\n"`
echo -e "L'acceleration graphique n'est pas fonctionnelle sur votre pc.
verifiez votre pilote et assurez vous que la commande:
glxinfo | grep rendering
vous retourne "`color 31 "\"Yes\""`", avant de réessayer\n
###########################################################"
exit 1
fi
## nettoyage basique
echo -e ` color 31 "Nettoyage des installations précédentes si nécessaire ...\n" `
if [[ "$DIST" = "DEBIAN"|| "$DIST" = "lucid" || $DIST = "maverick" ]] ; then
compizpackages=`dpkg-query -W --showformat='${Package}\n' | sort -nr | grep compiz | xargs`
if [[ -n "$compizpackages" || -n "$berylpackages" ]]; then
echo -e "Desinstallation des paquets compiz/beryl actuels... \n"
aptitude $switch purge $compizpackages libemeraldengine0 emerald-themes emerald
fi
fi
if [ "$SESSION" == "gnome" ]; then
rm -R $HOME/.gconf/apps/compiz &>/dev/null
rm -R $HOME/.gconf/schemas/compiz &>/dev/null
gconftool-2 --recursive-unset /apps/compiz &>/dev/null
gconftool-2 --recursive-unset /schemas/compiz &>/dev/null
gconftool-2 --set --type string /desktop/gnome/applications/window_manager/current /usr/bin/metacity
gconftool-2 --set --type string /desktop/gnome/applications/window_manager/default /usr/bin/metacity
fi
echo -e ` color 32 "Nettoyage des installations précédentes terminé.... \n" `
MESSAGE="Vérification des dépendences compiz spécifiques au type de session gnome/kde3-4/xfce.."
## debut install compiz
case "$SESSION" in
gnome)
KDE_ENABLED="false";
GNOME_ENABLED="true";
GTK_ENABLED="true";
check_packages "libgtk2.0-dev libwnck-dev libmetacity-dev libgnome-window-settings-dev libgnome-desktop-dev gnome-control-center-dev libglib2.0-dev libgconf2-dev"
;;
kde)
KDE_ENABLED="true";
GNOME_ENABLED="false";
GTK_ENABLED="false";
check_packages "kde-devel kdebase-workspace-dev";
;;
kde4)
KDE_ENABLED="true";
GNOME_ENABLED="false";
GTK_ENABLED="false";
check_packages "kde-devel kdebase-workspace-dev";
;;
xfce4)
KDE_ENABLED="false";
GNOME_ENABLED="true";
GTK_ENABLED="true";
check_packages "libgtk2.0-dev libwnck-dev libmetacity-dev libgnome-window-settings-dev libgnome-desktop-dev gnome-control-center-dev libglib2.0-dev libgconf2-dev"
;;
lxde)
KDE_ENABLED="false";
GNOME_ENABLED="true";
GTK_ENABLED="true";
check_packages "libgtk2.0-dev libwnck-dev libmetacity-dev libgnome-window-settings-dev libgnome-desktop-dev gnome-control-center-dev libglib2.0-dev libgconf2-dev"
;;
*)
echo "session inconnue, sortie"
exit 0
;;
esac
gitpluginsall="3d text animation maximumize animationaddon loginout mousepoll addhelper bench colorfilter crashhandler cubeaddon expo extrawm ezoom fadedesktop fakeargb firepaint gears group mblur mswitch neg opacify put reflex resizeinfo ring scaleaddon scalefilter shift showdesktop snap splash thumbnail tile trailfocus vpswitch wall wallpaper widget winrules workarounds mag showmouse shelf"
case $install_type in
Master)
testConnect
downdir="$WORK/compiz-build/Master"
version="Master"
## fonction dependences
compiz_dep
##
(COMMAND "mkdir -p $downdir")
export PKG_CONFIG_PATH=$PREFIX/lib/pkgconfig:$PREFIX/lib64/pkgconfig:$PREFIX/lib32/pkgconfig:$PKG_CONFIG_PATH
export LD_LIBRARY_PATH=$PREFIX/lib:$PREFIX/lib64:$PREFIX/lib32:$LD_LIBRARY_PATH
## COMPIZ
name="compiz"
COMPONENT="core"
cd "${downdir}"
if [ ! -e "${downdir}/core" ]; then
newcompiz="True"
echo ""
echo -e `color 34 "\033[1mTéléchargement des sources Compiz Fusion Master ...\033[0m \n"`
wget http://releases.compiz.org/0.9.2.1/compiz-core-0.9.2.1.tar.gz
tar xvf compiz-core-0.9.2.1.tar.gz
rm compiz-core-0.9.2.1.tar.gz
mv compiz-core-0.9.2.1 core
cd core
if [ $DIST = "lucid" ]; then
sed -i 's/GTK_WIDGET_VISIBLE/gtk_widget_get_visible/g' gtk/window-decorator/gtk-window-decorator.c
fi
echo -e `color 32 "\033[1mCompilation de Compiz Fusion...\033[0m \n"`
MAKE
MAKEINSTALL
echo ""
echo -e `color 32 "\033[1mInstallation de Compiz terminée...\033[0m \n"`
fi
## LIBCOMPIZCONFIG
name="libcompizconfig"
COMPONENT="libcompizconfig"
cd "${downdir}"
if [ ! -e "${downdir}/libcompizconfig" ]; then
echo ""
echo -e `color 34 "\033[1mTéléchargement et installation de libcompizconfig...\033[0m \n "`
wget http://releases.compiz.org/0.9.2.1/libcompizconfig-0.9.2.1.tar.gz
tar xvf libcompizconfig-0.9.2.1.tar.gz
rm libcompizconfig-0.9.2.1.tar.gz
mv libcompizconfig-0.9.2.1 libcompizconfig
cd libcompizconfig
echo -e `color 32 "\033[1mCompilation de libcompizconfig...\033[0m \n"`
MAKE
MAKEINSTALL
echo ""
echo -e `color 32 "\033[1mInstallation de libcompizconfig terminée...\033[0m \n"`
fi
## COMPIZCONFIG-PYTHON
name="compizconfig-python"
COMPONENT="compizconfig-python"
cd "${downdir}"
if [ ! -e "${downdir}/compizconfig-python" ]; then
echo ""
echo -e `color 34 "\033[1mTéléchargement et installation de compizconfig-python...\033[0m \n "`
wget http://releases.compiz.org/0.9.2.1/compizconfig-python-0.9.2.1.tar.gz
tar xvf compizconfig-python-0.9.2.1.tar.gz
rm compizconfig-python-0.9.2.1.tar.gz
mv compizconfig-python-0.9.2.1 compizconfig-python
cd compizconfig-python
echo -e `color 32 "\033[1mCompilation de compizconfig-python...\033[0m \n"`
MAKE
echo ""
echo -e `color 32 "\033[1mInstallation de compizconfig-python terminée...\033[0m \n"`
fi
## COMPIZCONFIG SETTINGS MANAGER (CCSM)
name="ccsm"
COMPONENT="ccsm"
cd "${downdir}"
if [ ! -e "${downdir}/ccsm" ]; then
echo ""
echo -e `color 34 "\033[1mTéléchargement et installation de CompizConfig Settings Manager (ccsm)...\033[0m \n "`
wget http://releases.compiz.org/0.9.2.1/ccsm-0.9.2.1.tar.gz
tar xvf ccsm-0.9.2.1.tar.gz
rm ccsm-0.9.2.1.tar.gz
mv ccsm-0.9.2.1 ccsm
cd ccsm
MAKE
echo ""
echo -e `color 32 "\033[1mInstallation de CompizConfig Settings Manager terminée...\033[0m \n"`
fi
if [[ "$GNOME_ENABLED" = "true" ]]; then
name="compizconfig-backend-gconf"
COMPONENT="compizconfig-backend-gconf"
cd "${downdir}"
if [ ! -e "${downdir}/compizconfig-backend-gconf" ]; then
echo ""
echo -e `color 34 "\033[1mTéléchargement et installation de compizconfig-backend-gconf...\033[0m \n "`
wget http://releases.compiz.org/0.9.2.1/compizconfig-backend-gconf-0.9.2.1.tar.gz
tar xvf compizconfig-backend-gconf-0.9.2.1.tar.gz
rm compizconfig-backend-gconf-0.9.2.1.tar.gz
mv compizconfig-backend-gconf-0.9.2.1 compizconfig-backend-gconf
cd compizconfig-backend-gconf
MAKE
MAKEINSTALL
echo ""
echo -e `color 32 "\033[1mInstallation de compizconfig-backend-gconf terminée...\033[0m \n"`
fi
fi
if [[ "$KDE_ENABLED" = "true" ]]; then
name="compizconfig-backend-kconfig4"
COMPONENT="compizconfig-backend-kconfig4"
cd "${downdir}"
if [ ! -e "${downdir}/compizconfig-backend-kconfig4" ]; then
echo ""
echo -e `color 34 "\033[1mTéléchargement et installation de compizconfig-backend-kconfig4...\033[0m \n "`
wget http://releases.compiz.org/0.9.2.1/compizconfig-backend-kconfig4-0.9.2.1.tar.gz
tar xvf compizconfig-backend-kconfig4-0.9.2.1.tar.gz
rm compizconfig-backend-kconfig4-0.9.2.1.tar.gz
mv compizconfig-backend-kconfig4-0.9.2.1 compizconfig-backend-kconfig4
cd compizconfig-backend-kconfig4
MAKE
MAKEINSTALL
echo ""
echo -e `color 32 "\033[1mInstallation de compizconfig-backend-kconfig4 terminée...\033[0m \n"`
fi
fi
## plugins mains et extra basiques
echo ""
echo -e `color 34 "\033[1mTéléchargement et installation des plugins mains extras et unsupported \033[0m \n "`
cd "${downdir}"
COMPONENT="plugins-main"
if [ ! -e "${downdir}/compiz-plugins-main-0.9.2.1" ]; then
echo ""
echo -e `color 34 "\033[1mTéléchargement des plugins main \033[0m \n"`
wget http://releases.compiz.org/0.9.2.1/compiz-plugins-main-0.9.2.1.tar.gz
tar xvf compiz-plugins-main-0.9.2.1.tar.gz
rm compiz-plugins-main-0.9.2.1.tar.gz
mv compiz-plugins-main-0.9.2.1 plugins-main
cd plugins-main
echo -e `color 32 "\033[1mCompilation des plugins main... \033[0m \n"`
MAKE
MAKEINSTALL
echo ""
echo -e `color 32 "\033[1mInstallation des plugin "main" terminée... \033[0m \n"`
fi
cd "${downdir}"
COMPONENT="plugins-extra"
if [ ! -e "${downdir}/compiz-plugins-extra-0.9.2.1" ]; then
echo ""
echo -e `color 34 "\033[1mTéléchargement des plugins extra \033[0m \n "`
wget http://releases.compiz.org/0.9.2.1/compiz-plugins-extra-0.9.2.1.tar.gz
tar xvf compiz-plugins-extra-0.9.2.1.tar.gz
rm compiz-plugins-extra-0.9.2.1.tar.gz
mv compiz-plugins-extra-0.9.2.1 plugins-extra
cd plugins-extra
echo -e `color 32 "\033[1mCompilation des plugins extra... \033[0m \n"`
MAKE
MAKEINSTALL
echo ""
echo -e `color 32 "\033[1mInstallation des plugin "extra" terminée... \033[0m \n"`
fi
cd "${downdir}"
COMPONENT="plugins-unsupported"
if [ ! -e "${downdir}/compiz-plugins-unsupported-0.9.2.1" ]; then
echo ""
echo -e `color 34 "\033[1mTéléchargement des plugins unsupported \033[0m \n "`
wget http://releases.compiz.org/0.9.2.1/compiz-plugins-unsupported-0.9.2.1.tar.gz
tar xvf compiz-plugins-unsupported-0.9.2.1.tar.gz
rm compiz-plugins-unsupported-0.9.2.1.tar.gz
mv compiz-plugins-unsupported-0.9.2.1 plugins-unsupported
cd plugins-unsupported
echo -e `color 32 "\033[1mCompilation des plugins unsupported... \033[0m \n"`
MAKE
MAKEINSTALL
echo ""
echo -e `color 32 "\033[1mInstallation des plugin "unsupported" terminée... \033[0m \n"`
fi
############################################ EXTRA PLUGINS ############################################################
ldconfig
;; #fin case Master
depot)
testConnect
echo ` color 33 " installation des paquets necessaires..." `
sleep 3
aptitude install $switch compiz-core compizconfig-settings-manager compiz-plugins compiz-fusion-plugins-extra compiz-fusion-plugins-main compiz-fusion-plugins-unofficial compiz-fusion-plugins-unsupported libcompizconfig0 python-compizconfig emerald emerald-themes libemeraldengine0 libdecoration0
;; #fin depot
1) echo ` color 31 "annulation...sortie " `
exit 0
;;
255) echo ` color 31 "annulation...sortie " `
exit 0
;;
esac
###### installation fusion-icon
testConnect
mkdir $WORK/fusion-icon &>/dev/null
name="fusion-icon"
if [ ! -e "$WORK"/fusion-icon/fusion-icon ]; then
cd $WORK/fusion-icon
echo ""
echo -e `color 34 "\033[1mTéléchargement de fusion-icon ... \033[0m \n"`
git clone -q git://github.com/smolleyes/fusion-icon.git
cd fusion-icon
echo -e `color 34 "\033[1mInstallation de fusion-icon... \033[0m \n"`
python setup.py install --prefix=/usr/local &>/dev/null
echo ""
echo -e `color 32 "\033[1mInstallation de fusion-icon terminée... \033[0m \n"`
FUSION_XDG
echo ""
echo -e ` color 32 "\033[1mInstallation de fusion-icon au démarrage terminée avec succés \033[0m" `
sleep 2
else
cd $WORK/fusion-icon/fusion-icon
echo -e `color 34 "\033[1mVérification des mises à jour pour fusion-icon... \033[0m \n"`
if [[ `git pull git://github.com/smolleyes/fusion-icon.git master| grep up-to-date` ]]; then
echo -e ` color 32 "\033[1mfusion-icon est à jour... \033[0m\n"`
sleep 2
else
echo -e ` color 32 "\033[1mDEs mises à jour sont disponibles, reinstallation... \033[0m \n"`
python setup.py uninstall
python setup.py install --prefix=/usr/local
## start file
FUSION_XDG
echo ""
echo -e ` color 32 "\033[1mReinstallation de fusion-icon terminée avec succés \033[0m \n" `
sleep 2
fi
fi
sed -i 's/active wm = .*/active wm = compiz/' "$USERDIR"/.config/compiz/fusion-icon &>/dev/null
ln -s /usr/local/bin/compiz /usr/bin/compiz &>/dev/null
## fin compiz par defaut dans fusion-icon
if lspci | grep "VGA" | grep "nVidia Corporation" ; then
if [ -e "/etc/X11/xorg.conf" ]; then
if ! cat /etc/X11/xorg.conf |grep "AddARGBGLXVisuals" ; then
echo -e `color 34 "\033[1mAjout ARGBGLXVisuals pour votre carte nvidia et depth par defaut a 24 bits car non detecte...\033[0m \n" `
(COMMAND "nvidia-xconfig --add-argb-glx-visuals -d 24")
echo -e ` color 32 "\033[1mOption ARGBGLXVisuals detectee pour votre carte nvidia...ok \033[0m \n" `
echo -e ` color 32 "\033[1mInstall Composants compiz-fusion et dock ok :) .... on continue \033[0m \n" `
fi
fi
fi
echo ""
echo -e `color 32 "\033[1mInstallation de compiz, des plugins, de fusion-icon et emerald Terminée, nettoyage... \033[0m \n"`
sleep 3
} #end install_compiz_fusion function
function FUSION_XDG
{
## jaunty specific check
if [[ "$DIST" = "jaunty" && ! -e "/etc/xdg/autostart/compiz-icon.desktop" || ! `grep "PYTHONPATH" /etc/xdg/autostart/compiz-icon.desktop &>/dev/null` ]]; then
echo '[Desktop Entry]
Type=Application
Encoding=UTF-8
Version=1.0
Name=fusion-icon
Name[fr_FR]=fusion-icon
Comment[fr_FR]=Gestionnaire compiz fusion
Comment=Gestionnaire compiz fusion
Exec=sh -c "PYTHONPATH=/usr/local/lib/python2.6/site-packages fusion-icon"
X-GNOME-Autostart-enabled=true' | tee /etc/xdg/autostart/compiz-icon.desktop &>/dev/null
fi
if [[ "$DIST" = "karmic" || "$DIST" = "lucid" && ! -e "/etc/xdg/autostart/compiz-icon.desktop" || ! `grep "PYTHONPATH" /etc/xdg/autostart/compiz-icon.desktop &>/dev/null` ]]; then
echo '[Desktop Entry]
Type=Application
Encoding=UTF-8
Version=1.0
Name=fusion-icon
Name[fr_FR]=fusion-icon
Comment[fr_FR]=Gestionnaire compiz fusion
Comment=Gestionnaire compiz fusion
Exec=fusion-icon
X-GNOME-Autostart-enabled=true' | tee /etc/xdg/autostart/compiz-icon.desktop &>/dev/null
fi
##
if [ ! -e "/etc/xdg/autostart/compiz-icon.desktop" ]; then
echo "[Desktop Entry]
Type=Application
Encoding=UTF-8
Version=1.0
Name=fusion-icon
Name[fr_FR]=fusion-icon
Comment[fr_FR]=Gestionnaire compiz fusion
Comment=Gestionnaire compiz fusion
Exec=fusion-icon
X-GNOME-Autostart-enabled=true" | tee /etc/xdg/autostart/compiz-icon.desktop &>/dev/null
fi
zenity --question --text "Voulez vous conserver votre configuration ou utiliser celle du script (valider pour celle du script) ?"
case $? in
0)
compiz_fusion_autostart
DEFAULT_CONFIG
;;
1)
;;
esac
}
function DEFAULT_CONFIG
{
echo ""
echo -e `color 34 "\033[1mMise en place de la configuration par défaut... \033[0m \n"`
rm -R $USERDIR/.config/compiz* &>/dev/null
cd $USERDIR/.config
rm *.tar* &>/dev/null
(COMMAND "wget -q http://phatandfresh.free.fr/compiz-1.tar.gz")
(COMMAND "tar xvf compiz-1.tar.gz")
rm *.tar.gz &>/dev/null
chown $user:$user compiz-1 -R
session_dir="/etc/xdg/autostart"
echo -e `color 32 "\033[1mMise en place de la configuration par défaut terminée... \033[0m \n"`
}
######## Fonction compiz-fusion autostart
function compiz_fusion_autostart
{
if [[ ! -e "/usr/share/skydomes" || -n "$autostart" ]]; then
case $SESSION in
gnome)
session_type="gnome-session"
;;
kde)
session_type="starkde"
;;
kde4)
session_type="starkde4"
;;
xfce4)
session_type="startxfce4"
;;
esac
echo ""
echo -e ` color 34 "\033[1mAjouts des elements d autostart Pour votre session compiz-fusion... \033[0m \n" `
sleep 2
###### compiz-fusion-emerald
echo '[Desktop Entry]
Type=Application
Encoding=UTF-8
Version=1.0
Name=Emerald
Name[fr_FR]=emerald
Comment[fr_FR]=Gestionnaire de fenetres emerald
Comment=Gestionnaire de fenêtres emerald
Exec=sh -c "emerald --replace"
X-GNOME-Autostart-enabled=true' | tee /etc/xdg/autostart/compiz-fusion-emerald.desktop &>/dev/null
fi
}
######## Fonctions installer avant-window-navigator bzr ou depots
function AWN_DEPOTS()
{
testConnect
## desinstalle vieilles versions
awn_uninstall
echo ` color 32 "Installation d avant-window-navigator a partir des depots bzr" `
rm /etc/xdg/autostart/awn.desktop &>/dev/null
aptitude install $switch avant-window-navigator-bzr libawn-bzr awn-core-applets-bzr
}
function AWN_BZR()
{
dir=$WORK/awnbuild
if [ ! -e $dir ]; then
mkdir $dir
fi
testConnect
echo ""
MESSAGE="Vérification des dépendences pour avant-window-navigator..."
case $SESSION in
gnome)
check_packages "python-dateutil python-vobject gtk-doc-tools python-gst0.10 python-gnome2-extras-dev python-gnome2-desktop-dev libgconf2-dev libgnomeui-dev xcompmgr python-dbus libglib2.0-dev python-gnome2-desktop libglade2-dev python-cairo-dev python-gtk2-dev python2.5-dev libwnck-dev libwnck-common libgconf2-dev libdbus-glib-1-dev libxcomposite-dev libxdamage-dev libgnome-menu-dev libgtop2-dev librsvg2-dev build-essential automake1.9 python-dev python-alsaaudio python-libgmail libnotify-dev libsexy-dev libvte-dev python-pyrss2gen python-feedparser python-xdg python-gnome2-dev python-gtk2-dev libgtk2.0-dev libglib2.0-dev gnome-common libgnome-desktop-dev libgnome-menu-dev"
awndesk="--with-desktop=gnome"
;;
xfce4)
check_packages "python-dateutil python-vobject gtk-doc-tools xcompmgr python-gst0.10 python-gnome2-extras-dev libgconf2-dev python-gnome2-desktop-dev libgnomeui-dev python-glade2 python-dbus libglib2.0-dev python-gnome2-desktop libglade2-dev python-cairo-dev python-gtk2-dev python2.5-dev libwnck-dev libwnck-common libgconf2-dev libdbus-glib-1-dev libxcomposite-dev libxdamage-dev libgnome-menu-dev libgtop2-dev librsvg2-dev build-essential automake1.9 python-dev python-alsaaudio python-libgmail libnotify-dev libsexy-dev libvte-dev python-pyrss2gen python-feedparser python-xdg python-gnome2-dev python-gtk2-dev libgtk2.0-dev libglib2.0-dev gnome-common libgnome-desktop-dev libgnome-menu-dev"
awndesk="--with-desktop=xfce"
;;
kde|kde4)
check_packages "python-dateutil python-vobject gtk-doc-tools xcompmgr python-gst0.10 python-gnome2-extras-dev libgconf2-dev python-gnome2-desktop-dev libgnomeui-dev python-glade2 libglib2.0-dev python-dbus libglade2-dev python-cairo-dev python-gtk2-dev python2.5-dev libwnck-dev libwnck-common libdbus-glib-1-dev libxcomposite-dev libxdamage-dev libgtop2-dev librsvg2-dev build-essential automake1.9 python-dev python-alsaaudio python-libgmail libnotify-dev libsexy-dev libvte-dev python-pyrss2gen python-feedparser python-xdg"
awndesk="--without-gconf --with-desktop=agnostic"
awnextras="--without-gconf --without-gnome"
;;
esac
if [ ! -e "$dir/avant-window-navigator" ]; then
name="Avant-window-navigator"
echo -e "\033[1m Installation d'avant window navigator...\033[0m \n"
awn_uninstall
sleep 2
echo ` color 32 "Telechargement des sources pour avant-window-navigator"`
echo ""
cd $dir
bzr co http://bazaar.launchpad.net/~awn-core/awn/trunk avant-window-navigator &&
echo `color 33 "Compilation..."`
echo ""
cd $dir/avant-window-navigator
AUTOGEN $awndesk --prefix=/usr/local
MAKE
MAKEINSTALL
cd $USERDIR/.config
rm -R awn
(COMMAND "wget http://phatandfresh.free.fr/cfinstall/awnconf.tar")
(COMMAND "tar xvf awnconf.tar")
chown -R $user:$user awn
rm -R $USERDIR/.gconf/apps/avant-window-navigator
mv avant-window-navigator $USERDIR/.gconf/apps/
chown -R $user:$user $USERDIR/.gconf/apps/avant-window-navigator
rm *.tar &>/dev/null
else
name="Avant-window-navigator"
cd $dir/avant-window-navigator
echo -e "\033[1mMise a jour d'avant window navigator si besoin...\033[0m \n"
remoterev=$(bzr revno http://bazaar.launchpad.net/~awn-core/awn/trunk)
localrev=$(bzr revno)
if [ "$remoterev" = "$localrev" ]; then
echo -e "avant window navigator est a jour ok \n"
else
echo -e "\033[1mDes mises a jour sont dispo, reinstallation ...\033[0m \n"
sleep 2
make uninstall
make clean
bzr update
AUTOGEN $awndesk --prefix=/usr/local
MAKE
MAKEINSTALL
cd $dir
fi
fi
echo ` color 32 "Telechargement des sources bazar pour awn-extras plugins applets etc ou mise a jour ..."`
echo ""
name="Awn-extras"
cd $dir
if [ ! -e "$dir/awn-extras" ]; then
echo -e "\033[1m Installation d'awn-extras...\033[0m \n"
sleep 2
echo ` color 32 "Telechargement des sources pour awn-extras"`
echo ""
bzr co http://bazaar.launchpad.net/~awn-extras/awn-extras/trunk awn-extras &&
echo ` color 33 "Compilation..."`
echo ""
cd $dir/awn-extras
if [ `echo $SESSION | egrep "kde|kde4" ` ]; then
sed -i '/affinity/d' $dir/awn-extras/src/Makefile.am
automake $dir/awn-extras/src/Makefile && ./config.status src/Makefile
fi
AUTOGEN $awndesk --prefix=/usr/local
MAKE
MAKEINSTALL
cd $dir
## fix certains applets
cd /usr/local/lib/awn/applets
rm -R mimenu* &>/dev/null
rm -R MiMenu* &>/dev/null
(COMMAND "wget http://phatandfresh.free.fr/cfinstall/mimenu.tar")
(COMMAND "tar xvf mimenu.tar")
rm mimenu.tar
touch $USERDIR/.gtk-bookmarks &>/dev/null
chown $user:$user $USERDIR/.gtk-bookmarks
echo ""
echo ` color 32 "Installation terminee avec succes..."`
echo ""
else
cd $dir/awn-extras
echo -e "\033[1mMise a jour d'awn-extras si besoin...\033[0m \n"
remoterev=$(bzr revno http://bazaar.launchpad.net/~awn-extras/awn-extras/trunk)
localrev=$(bzr revno)
if [ "$remoterev" = "$localrev" ]; then
echo -e "awn-extras est a jour ok \n"
else
echo -e "\033[1mDes mises a jour sont dispo, reinstallation ...\033[0m \n"
sleep 2
make uninstall
make distclean
bzr update
if [ `echo $SESSION | egrep "kde|kde4" ` ]; then
sed -i '/affinity/d' $dir/awn-extras/src/Makefile.am
automake $dir/awn-extras/src/Makefile && ./config.status src/Makefile
fi
AUTOGEN $awndesk --prefix=/usr/local
MAKE
MAKEINSTALL
## fix certains applets
cd /usr/local/lib/awn/applets
rm -R mimenu* &>/dev/null
rm -R MiMenu* &>/dev/null
(COMMAND "wget http://phatandfresh.free.fr/cfinstall/mimenu.tar")
(COMMAND "tar xvf mimenu.tar")
rm mimenu.tar
touch $USERDIR/.gtk-bookmarks &>/dev/null
chown $user:$user $USERDIR/.gtk-bookmarks
echo ""
echo ` color 32 "Installation terminee avec succes..."`
echo ""
cd $dir
fi
fi
}
function AWN_AUTOSTART()
{
echo ` color 33 "Installation des autostarts pour avant-window-navigator" `
###### ajout dock avant-window-navigator au boot de compiz-fusion
echo "[Desktop Entry]
Type=Application
Encoding=UTF-8
Version=1.0
Name=Avant-window-navigator
Name[fr_FR]=Avant-window-navigator
Comment[fr_FR]=Dock facon osX
Comment=Gestionnaire compiz fusion
Exec=avant-window-navigator
X-GNOME-Autostart-enabled=true" | tee /etc/xdg/autostart/awn.desktop
echo ` color 32 "Installation d avant-window-navigator terminee avec succes" `
sleep 3
}
function installCairo()
{
testConnect
if [ ! -e "$WORK"/cairo-dock_bzr ]; then
mkdir "$WORK"/cairo-dock_bzr
fi
## check des paquets
MESSAGE="Vérification des dépendences pour Cairo-dock..."
## remet a jour le script de mav/matttbe (force car on change des variables...)
cd /usr/local/bin
rm cairo-dock* &>/dev/null
(COMMAND "wget -q http://bzr.glx-dock.org/cairo-dock_bzr.sh")
chmod +x cairo-dock_bzr.sh
sed -i "s%DIR=.*%DIR=\"/opt/cfinstall/cairo-dock_bzr\"%" cairo-dock_bzr.sh &>/dev/null
## enter in cairo dir
cd "$WORK"/cairo-dock_bzr
if [[ "`ls /opt/cfinstall/cairo-dock_bzr`" = "" ]]; then
echo -e ` color 31 "Premiere installation de cairo-dock, lancement du script de Mav V2... \n"`
sleep 3
## lance cairo avec commande install/pas de maj auto/
/bin/bash cairo-dock_bzr.sh smo_install
else
echo -e ` color 34 "Cairo-dock déjà installé, relance le script de Mav V2 pour vérification des mises a jour... \n"`
sleep 3
/bin/bash cairo-dock_bzr.sh smo_update
fi
user="$(echo $HOME | sed -e 's/.*\///')"
if [ ! -e $HOME/.config/cairo-dock ]; then
chown -R $user:$user $HOME/.config/cairo-dock
fi
## options d'autostart
ACTIVE_PANEL="$(sudo -u $user gconftool-2 -g /desktop/gnome/session/required_components/panel)"
MENU=$(zenity --list --width 680 --height 350 --title "Options autostart cairo-dock" \
--text "NOTE:
- Si vous choisissez l'option gconf, votre barre de tache classique ne sera plus demarrée,
cairo-dock sera le seul dock actif
votre panel actuel : $ACTIVE_PANEL
" \
--checklist --column "" --column "Choix" --column "Description" \
FALSE "Gconf" "Remplace votre barre de tache par Cairo-dock (recommandé)" \
FALSE "Autostart" "Démarre cairo-dock en plus de votre barre de tache classique")
case $MENU in
Gconf)
echo -e "\nMise en place de cairo-dock comme dock par défaut \n"
sudo -u $user gconftool-2 -s -t string /desktop/gnome/session/required_components/panel cairo-dock
rm /etc/xdg/autostart/cairo-dock.desktop &>/dev/null
;;
Autostart)
if [ ! -e /etc/xdg/autostart/cairo-dock.desktop ]; then
rm /etc/xdg/autostart/awn.desktop &>/dev/null
echo -e "\nCréation de l'autostart pour cairo-dock \n"
echo "[Desktop Entry]
Type=Application
Encoding=UTF-8
Version=1.0
Name=Cairo-dock
Name[fr_FR]=Cairo-dock
Comment[fr_FR]=un Dock qui roxxxxxx
Comment=Un Dock qui roxxxxx
Exec=cairo-dock
X-GNOME-Autostart-enabled=true" | tee /etc/xdg/autostart/cairo-dock.desktop &>/dev/null
fi
;;
1)
echo -e "Configuration du démarrage automatique de cairo-dock annulée... \n"
;;
esac
}
######## Fonction installer screenlets
function screenlets()
{
cd /tmp
echo
echo -e ` color 33 "Verification des dependences\n" `
screenlets=` dpkg-query -W --showformat='${Package}\n' | sort -nr | grep screenlets | xargs `
aptitude $switch purge $screenlets
MESSAGE="Vérification des dépendences pour Screenlets..."
check_packages "bzr python-gnome2-desktop python-dbus xcompmgr python-imaging"
if [ ! -e $WORK/screenlets/screenlets ]; then
echo -e `color 33 "Premiere installation de screenlets, telechargement depuis les sources bzr \n" `
cd $WORK/screenlets
bzr co http://bazaar.launchpad.net/~screenlets-dev/screenlets/trunk screenlets &&
echo -e `color 32 "Installation... \n" `
cd $WORK/screenlets/screenlets
python setup.py install --prefix=/usr
echo -e ` color 32 "Installation de screenlets terminee avec succes \n" `
else
echo -e ` color 33 "Screenlets deja installe, verification des mises a jour... \n" `
cd $WORK/screenlets/screenlets
remoterev=$(bzr revno http://bazaar.launchpad.net/~screenlets-dev/screenlets/trunk)
localrev=$(bzr revno)
if [ "$remoterev" = "$localrev" ]; then
echo -e ` color 32 "Screenlets est a jour ok \n" `
else
make uninstall
rm -R /usr/share/screenlets-manager &>/dev/null
bzr update
python setup.py install --prefix=/usr
echo -e ` color 32 "Mise a jour et reinstallation de screenlets terminee avec succes \n" `
fi
fi
sleep 3
}
######
function video_fix ()
{
echo `color 32 "Detection et fix des resolutions pour fglrx/radeon si necessaire"`
if lsmod | grep -w fglrx ;
then
graphiccard="fglrx"
elif lsmod | grep -w radeon ;
then
graphiccard="radeon"
else
echo "fix non supporte pour votre driver, seulement fglrx/radeon"
exit 1
fi
## detect mode video max
aptitude install $switch xresprobe
Xresprobe=`xresprobe $graphiccard >> /tmp/xresprobe`
maxres=`ddcprobe | grep dtiming | awk '{print $2}' | sed 's/@..*//'`
res=`grep -e "res:" /tmp/xresprobe | awk '{print $2}'`
Hfreq=`grep -e "freq:" /tmp/xresprobe | awk '{print $2}'`
Vfreq=`grep -e "freq:" /tmp/xresprobe | awk '{print $3}'`
modes=`sed -n '/Depth..24/{n;p;}' /etc/X11/xorg.conf | sed 's/Modes//g'`
freq=`egrep "Modes" /etc/X11/xorg.conf | awk '{print $2}'| sed 's/\"//g' | uniq `
fullmod="\"$maxres\" $modes"
if [ ! "$res" = "$freq" ]; then
xresprobefix="\"$res\" $modes"
fi
if [ -n "$res" ]; then
if [ ! "$res" = "$freq" ]; then
ed -s /etc/X11/xorg.conf <<< $',s/Modes..*/Modes '$xresprobefix$'/g\nw'
fi
echo "resolution deja bien detectee avec fglrx/xresprobe : $res"
echo "fix des frequences"
ed -s /etc/X11/xorg.conf <<< $',s/VertRefresh..*/VertRefresh '$Vfreq$'/g\nw'
ed -s /etc/X11/xorg.conf <<< $',s/HorizSync..*/HorizSync '$Hfreq$'/g\nw'
else
echo "xresprobe nok mise a jour des resolutions"
echo "Resolution max : $maxres"
## edites le xorg.conf avec les nouveaux modes complets !!!!:)
ed -s /etc/X11/xorg.conf <<< $',s/Modes..*/Modes '$fullmod$'/g\nw'
if [ -n "$Vfresq" ]; then
ed -s /etc/X11/xorg.conf <<< $',s/VertRefresh..*/VertRefresh '$Vfreq$'/g\nw'
ed -s /etc/X11/xorg.conf <<< $',s/HorizSync..*/HorizSync '$Hfreq$'/g\nw'
fi
fi
}
function card_install()
{
######## Debut install carte 3d ati/nvidia
echo `color 34 "Detection du modele de carte ati/nvida/intel ou autre..." `
VIDEO_CARDS=`lspci | grep VGA`
NUM_CARDS=`echo ${VIDEO_CARDS} | wc -l`
if [ ${NUM_CARDS} -eq 1 ]; then
NVIDIA=`echo ${VIDEO_CARDS} | grep "nVidia Corporation"`
INTEL=`echo ${VIDEO_CARDS} | grep "*915" | grep "*945"`
ATI=`echo ${VIDEO_CARDS} | grep "ATI Technologies"`
ATIUNKNOW=`echo ${VIDEO_CARDS} | grep -e "ATI Technologies Inc Unknown device * "`
NVUNKNOW=`echo ${VIDEO_CARDS} | grep -e "NVidia Device unknown"`
elif [ ! -n "${NVIDIA}" || "${INTEL}" || "${ATI}" || "${ATIUNKNOW}" || "${NVUNKNOW}" ]; then
UNSUPPORTED="yes"
fi
cd $WORK/script-files
(COMMAND "wget -q http://phatandfresh.free.fr/cfinstall/1.0-71xx")
(COMMAND "wget -q http://phatandfresh.free.fr/cfinstall/1.0-96xx")
(COMMAND "wget -q http://phatandfresh.free.fr/cfinstall/177.80")
(COMMAND "wget -q http://phatandfresh.free.fr/cfinstall/atilegacy")
(COMMAND "wget -q http://phatandfresh.free.fr/cfinstall/atinew")
### version pilotes
current_ati="8.593"
current_nvidia_new="177.80"
current_nvidia_legacy="96.43.05"
current_nvidia_speciallegacy="71.86.04"
glxnew=""
glxlegacy=""
glxsplegacy=""
testConnect
if [[ "$DIST" = "karmic" || "$DIST" = "lucid" || "$DIST" = "hardy" || "$DIST" = "intrepid" || "$DIST" = "jaunty" ]] ; then
mkdir /usr/X11R6/lib/modules &>/dev/null
mkdir /usr/X11R6/lib/modules/dri &>/dev/null
ln -s /usr/X11R6/lib/modules/dri/fglrx_dri.so /usr/lib/dri/fglrx_dri.so &>/dev/null
fi
rendering=`glxinfo | grep -e "direct rendering: " | sed 's/.*://'`
checkglx="$(glxinfo | grep rendering | grep Yes)"
## Demarre install pilotes 3d
echo `color 33 "carte ${VIDEO_CARDS} détectée....preparation..." `
####################################################### Si Nvidia...
if [[ -n "${NVIDIA}" || -n "${NVUNKNOW}" ]]; then
echo `color 34 "determine le driver a utiliser, unifie/legacy ou special legacy, selon id carte Nvidia et version 32 ou 64 bits "`
## prend l id de la carte
cardid=$(lspci -nn | grep VGA | grep -v NVidia | sed 's/.*\[.*://;s/].*//')
pciid="0x$cardid"
## determine type de driver selon id
echo -e `color 33 "Verification de votre installation actuelle... \n"`
### check version actuelle du driver
current_local_nvidia="$(nvidia-settings -q all | grep NvidiaDriverVersion | awk '{print $4}' | head -n 1)"
## si carte glx new
if [[ `cat "$WORK"/script-files/177.80 | grep -w "$pciid" ` ]]; then
glxnew="true"
if [[ "$current_local_nvidia" != "$current_nvidia_new" || -z "$checkglx" ]]; then
echo -e `color 33 "Vous disposez du pilote Nvidia glx-new, version :\n$current_local_nvidia \n
Mise a jour en utilisant la version : $current_nvidia_new \n"`
sleep 2
else
echo -e `color 32 "Votre pilote Nvidia glx-new, version:\n $current_nvidia_new
est à jour et l'acceleration graphique fonctionne, installation inutile
sortie ...! "`
kill -9 `ps aux | grep [c]finstall | awk {'print $2'}`
fi
## si carte legacy
elif [[ `cat "$WORK"/script-files/1.0-96xx | grep -w "$pciid"` ]]; then
glxlegacy="true"
if [[ "$current_local_nvidia" != "$current_nvidia_legacy" || -z "$checkglx" ]]; then
echo -e `color 33 "Vous disposez du pilote Nvidia glx-legacy, version :\n$current_local_nvidia \n
Mise a jour en utilisant la version : $current_nvidia_legacy \n"`
sleep 2
else
echo -e `color 32 "Votre pilote Nvidia glx-legacy, version:\n $current_nvidia_legacy
est à jour et l'acceleration graphique fonctionne, installation inutile
sortie ...! "`
kill -9 `ps aux | grep [c]finstall | awk {'print $2'}`
fi
## si carte special legacy
elif [[ `cat "$WORK"/script-files/1.0-71xx | grep -w "$pciid"` ]]; then
glxsplegacy="true"
if [[ "$current_local_nvidia" != "$current_nvidia_speciallegacy" || -z "$checkglx" ]]; then
echo -e `color 33 "Vous disposez du pilote Nvidia glx-special-legacy, version :\n$current_local_nvidia \n
Mise a jour en utilisant la version : $current_nvidia_speciallegacy \n"`
sleep 2
else
echo -e `color 32 "Votre pilote Nvidia glx-special-legacy, version:\n $current_nvidia_speciallegacy
est à jour et l'acceleration graphique fonctionne, installation inutile
sortie ...! "`
kill -9 `ps aux | grep [c]finstall | awk {'print $2'}`
fi
fi
## verifie si X tourne ou pas
if [ ! -z $DISPLAY ]; then
echo `color 31 "Un serveur X fonctionne actuellement et ne permet pas l installation du driver ...TAPEZ ctrl+alt+F1 reexecutez le script en tapant : sudo cfinstall++.sh "`
sleep 15
echo `color 32 "Fin du script :)"`
sleep 2
kill -9 `ps aux | grep [c]finstall | awk {'print $2'}`
fi
##drivers 32 bits
legacy_32="http://us.download.nvidia.com/XFree86/Linux-x86/96.43.05/NVIDIA-Linux-x86-96.43.05-pkg1.run"
special_legacy_32="http://us.download.nvidia.com/XFree86/Linux-x86/71.86.04/NVIDIA-Linux-x86-71.86.04-pkg1.run"
unified_32="http://fr.download.nvidia.com/XFree86/Linux-x86/177.80/NVIDIA-Linux-x86-177.80-pkg1.run"
##drivers 64 bits
legacy_64="http://us.download.nvidia.com/XFree86/Linux-x86/96.43.05/NVIDIA-Linux-x86-96.43.05-pkg2.run"
special_legacy_64="http://us.download.nvidia.com/XFree86/Linux-x86/71.86.04/NVIDIA-Linux-x86-71.86.04-pkg2.run"
unified_64="http://fr.download.nvidia.com/XFree86/Linux-x86/177.80/NVIDIA-Linux-x86-177.80-pkg2.run"
## desinstallation et nettoyage des installations precedentes
echo `color 31 "desinstallation et nettoyage des installations precedentes..."`
apt-get -y remove --purge nvidia-glx nvidia-glx-legacy nvidia-settings nvidia-kernel-common linux-restricted-modules-`uname -r` linux-restricted-modules-common
rm /etc/init.d/nvidia-* &>/dev/null
if [ -f /usr/bin/nvidia-installer ] ; then
nvidia-installer --uninstall
fi
X=`ps au | grep -e X | grep root | awk '{print $2}'`
if [ ! -e "$X" ]; then
kill $X
(COMMAND "killall -9 gdm kdm xdm compiz-fusion compiz.real beryl compiz")
fi
rmmod nvidia nv &>/dev/null
echo `color 32 "Nettoyage termine, on continue.... "`
## determine le driver a utiliser selon id carte Nvidia
aptitude install $switch xserver-xorg-core
if [ -n "$glxnew" ]; then
echo `color 32 "ok carte pour driver Nvidia unifie 177.80"`
if uname -a | grep -e "x86_64" ; then
nvidia_driver="$unified_64"
nvid="true"
else
nvidia_driver="$unified_32"
nvid="true"
fi
elif [ -n "$glxlegacy" ]; then
echo `color 32 "ok carte pour driver Nvidia Legacy 1.0-96XX"`
if uname -a | grep -e "x86_64" ; then
nvidia_driver="$special_legacy_64"
else
nvidia_driver="$special_legacy_32"
fi
elif [ -n "$glxsplegacy" ]; then
echo `color 32 "ok carte pour driver Nvidia Special Legacy 1.0-71XX"`
if uname -a | grep -e "x86_64" ; then
nvidia_driver="$legacy_64"
else
nvidia_driver="$legacy_32"
fi
else
## supp carte unknow apres test id
if [[ -n "${NVUNKNOW}" || -z "$pciid" ]]; then
echo `color 32 "ok carte pour driver Nvidia unifie 177.80"`
if uname -a | grep -e "x86_64" ; then
nvidia_driver="$unified_64"
else
nvidia_driver="$unified_32"
fi
else
echo -e `color 31 "probleme de detection de votre carte Nvidia... arret du script !"`
exit 1
fi
fi
## Clean installation precedentes nvidia
echo `color 33 "Preparation de l'installation... " `
aptitude install $switch build-essential linux-headers-`uname -r` xserver-xorg-dev
## telechargement du driver dans /tmp
echo `color 32 "Telechargement du driver dans /tmp"`
cd /tmp
rm NV* &>/dev/null
wget $nvidia_driver
chmod +x NV* &>/dev/null
echo `color 32 "Pour installer le driver faites Accept puis yes a chaques questions."`
sleep 8
bash /tmp/NV*.run
if [ ! -e /etc/X11/xorg.conf.original ]; then
cp /etc/X11/xorg.conf $WORK/backups/xorg.conf.original
fi
nvidia-xconfig --add-argb-glx-visuals -d 24 &>/dev/null
sed -i 's/Option.*\"XkbLayout\" \"us\"/Option \"XkbLayout\" \"'"$locale"'\"/' /etc/X11/xorg.conf
ln -s /usr/lib/libGL.so.1 /usr/lib/libGL.so
echo `color 32 "installation de votre carte Nvidia terminée..." `
####################################### END Nvidia ###################################################
#######################################START carte Ati ##############################################
#
# carte ati radeon sera utilise sauf si une carte superieur a une X1000 est presente...
# fglrx sera alors telecharge du site d amd, puis compile
# installation façon ubuntu....
############################################
# Preparation pour ATI fglrx/Radeon #
############################################
elif [ -n "${ATI}" ]; then
## prend l id de la carte
cardid=$(lspci -nn | grep VGA | grep ATI | sed 's/.*\[.*://;s/].*//')
card="0x$cardid"
if (COMMAND "egrep $card $WORK/script-files/atinew") ; then
atilink="https://a248.e.akamai.net/f/674/9206/0/www2.ati.com/drivers/linux/ati-driver-installer-9-3-x86.x86_64.run"
atidriver="ati-driver-installer-9-3-x86.x86_64.run"
elif (COMMAND "egrep $card $WORK/script-files/atilegacy") ; then
atilink="https://a248.e.akamai.net/f/674/9206/0/www2.ati.com/drivers/linux/ati-driver-installer-8.28.8.run"
atidriver="ati-driver-installer-8.28.8.run"
elif (COMMAND "cat $WORK/config | grep fglrx") ; then
atilink="https://a248.e.akamai.net/f/674/9206/0/www2.ati.com/drivers/linux/ati-driver-installer-9-3-x86.x86_64.run"
atidriver="ati-driver-installer-9-3-x86.x86_64.run"
else
atilink="https://a248.e.akamai.net/f/674/9206/0/www2.ati.com/drivers/linux/ati-driver-installer-9-3-x86.x86_64.run"
atidriver="ati-driver-installer-9-3-x86.x86_64.run"
fi
ATIMOD=`echo ${ATI} | awk '{print $10}'| sed 's/\[//' | sed 's/\]//'`
MODEL=`echo ${ATIMOD} | sed 's/\X//'`
###########################
# Detection du type de distrib dapper/edgy/feisty possibilitee debian ou autre pour compilation fglrx.....
###########################
case $DIST in
gutsy )
ATI_DIST="Ubuntu/gutsy" ;;
feisty )
ATI_DIST="Ubuntu/feisty" ;;
edgy)
ATI_DIST="Ubuntu/edgy" ;;
dapper)
ATI_DIST="Ubuntu/dapper" ;;
hardy)
ATI_DIST="Ubuntu/hardy" ;;
intrepid)
ATI_DIST="Ubuntu/intrepid" ;;
jaunty)
ATI_DIST="Ubuntu/jaunty" ;;
karmic)
ATI_DIST="Ubuntu/karmic" ;;
esac
############################
## Detecte le modele exacte de carte pour connaitre le module a utiliser radeon sinon compile fglrx...
echo `color 32 "carte ati Détéctée...Détéction du module radeon ou fglrx..." `
## verifie si c est une desinstallation si oui verifie si fglrx etait utilise avant le script et si oui le remet meme si la carte n est pas une X***...
if [[ -z "${ATIUNKNOW}" || -z "${atidriver}" || -e $WORK/config && `cat $WORK/config | grep "fglrx" ` ]] ; then
## clean fichier de config quand fglrx forcé a la desinstallation..
if [[ -e $WORK/config && ` cat $WORK/config | grep "fglrx" ` ]]; then
sed -i 's/fglrx//' $WORK/config
fi
## verifie si install fglrx necessaire
if [[ ! "$rendering" = "Yes" || ! $(dpkg --list | grep fglrx | grep -e "$current_ati") ]]; then
echo `color 33 "Votre carte: ATI Radeon $ATIMOD, Fglrx va etre telecharge et compile...."`
sleep 2
echo `color 31 "Detection et nettoyage des installations precedentes de paquets deb et binaire ati .run..."`
sleep 2
aptitude $switch purge fglrx-control fglrx-kernel-`uname -r` fglrx-kernel-source xorg-driver-fglrx xorg-driver-fglrx-envy xorg-driver-fglrx-dev fglrx-amdcccle
rm /usr/src/fglrx*.deb &>/dev/null
rm -R /usr/src/modules/fglrx* &>/dev/null ## nettoie paquets deb
#### verifie si le sources.list a besoin d'etre mis a jour ou non...
echo `color 32 "Nettoyage effectue, Demarrage de l installation...."`
sleep 3
echo `color 33 "Mise a jour des depots et Telechargement des paquets necessaires...."`
sleep 2
aptitude install $switch fakeroot cdbs dh-make debconf libstdc++5 linux-headers-$(uname -r) module-assistant build-essential x11-common xdebconfigurator xcompmgr dkms gawk
echo `color 33 "Telechargement du binaire ati...."`
sleep 2
cd /tmp
wget --progress=dot $atilink
echo `color 33 "Creation des paquets...." `
sleep 2
chmod +x $atidriver
bash $atidriver --buildpkg $ATI_DIST
echo ` color 33 "Installes les paquets Generes..." `
dpkg -i --force-overwrite *.deb
echo `color 33 "Supprime les modules conflictuels si detectes...."`
sleep 2
if lsmod | grep -we "radeon" ; then
echo `color 31 "Modules conflictuels detectes suppression...."`
sleep 2
rmmod radeon drm &>/dev/null
else
echo `color 32 "Pas de modules conflictuels...on continue...."`
rm *.sh &>/dev/null
rm fglrx* &>/dev/null
rm xorg* &>/dev/null
fi
sleep 2
echo `color 33 "Configure Xorg..." `
sleep 2
if [ ! -e /etc/X11/xorg.conf.original ]; then
cp /etc/X11/xorg.conf $WORK/backups/xorg.conf.original
fi
## genere et refais un xorg tout neuf avec les locales clavier resolution etc :)
cd /etc/X11
dexconf
aticonfig --initial
sed -i 's/\"vesa\"/\"fglrx\"/' /etc/X11/xorg.conf
sed -i 's/Option.*\"XkbLayout\" \"fr\"/Option \"XkbLayout\" \"'"$locale"'\"/' /etc/X11/xorg.conf
sed -i 's/Option.*\"XkbModel\" \"pc105\"/Option \"XkbModel\" \"'"$model"'\"/' /etc/X11/xorg.conf
sed -i 's/Option.*\"XkbRules\" \"xorg\"/Option \"XkbRules\" \"'"$rules"'\"/' /etc/X11/xorg.conf
sed -i 's/DefaultDepth.*16/Defaultdepth '$depth'/' /etc/X11/xorg.conf
## desactive le composite
echo "Section \"Extensions\"
Option \"Composite\" \"1\"
EndSection" | tee -a /etc/X11/xorg.conf
echo `color 33 "Chargement finale du module fglrx..."`
depmod -ae
sleep 3
(COMMAND "modprobe fglrx")
sleep 2
if lsmod |grep -e "fglrx" ; then
echo `color 32 "Module fglrx bien charge et fonctionnel..." `
sed -i 's/Option.*\"XkbLayout\" \"us\"/Option \"XkbLayout\" \"'"$locale"'\"/' /etc/X11/xorg.conf
echo `color 31 "###############################################################################"`
echo `color 31 "Votre pilote ATI Fglrx est installe :), rebootez le pc et relancez le script pour finir..."`
echo `color 31 "###############################################################################"`
kill -9 `ps aux | grep [c]finstall | awk {'print $2'}`
exit 0
else
echo `color 31 "Une Erreur est survenue pendant le chargement du module....Arret du script"`
kill -9 `ps aux | grep [c]finstall | awk {'print $2'}`
fi
else
echo `color 31 "###############################################################################"`
echo `color 31 "Votre pilote ATI Fglrx est deja fonctionnel et a jour...Inutile de reinstaller"`
echo `color 31 "###############################################################################"`
fi
####################################
# Fin install carte ati avec Fglrx #
####################################
## Si carte en dessous de X1000 alors radeon avec AIGLX + choix compiz-fusion au boot ou non .....
else
if [[ ! `glxinfo |grep -e "direct rendering: Yes"` || ! `dpkg --list |grep fglrx |grep $current_ati` ]]; then
echo `color 33 "Carte ATI Radeon $ATIMOD preparation Xorg/module pour radeon...." `
echo `color 31 "Detection et nettoyage des installations precedentes de paquets deb et binaire ati .run..."`
sleep 2
aptitude $switch purge fglrx-control fglrx-kernel-`uname -r` fglrx-kernel-source xorg-driver-fglrx xorg-driver-fglrx-dev fglrx-amdcccle
rm /usr/src/fglrx*.deb &>/dev/null
rm -R /usr/src/modules/fglrx* &>/dev/null ## nettoie paquets deb
aptitude $switch purge xserver-xgl &>/dev/null ## nettoie paquets deb
apt-get install $switch --reinstall libgl1-mesa-glx libglu1-mesa libgl1-mesa-dri x11-common xdebconfigurator read-edid
if [ ! -e /etc/X11/xorg.conf.original ]; then
cp -f /etc/X11/xorg.conf $WORK/backups/xorg.conf.original
fi
## genere et refais un xorg tout neuf avec les locales clavier resolution etc :)
cd /etc/X11
dexconf
sed -i 's/\"vesa\"/\"radeon\"/' /etc/X11/xorg.conf
sed -i 's/Option.*\"XkbLayout\" \"fr\"/Option \"XkbLayout\" \"'"$locale"'\"/' /etc/X11/xorg.conf
sed -i 's/Option.*\"XkbModel\" \"pc105\"/Option \"XkbModel\" \"'"$model"'\"/' /etc/X11/xorg.conf
sed -i 's/Option.*\"XkbRules\" \"xorg\"/Option \"XkbRules\" \"'"$rules"'\"/' /etc/X11/xorg.conf
sed -i 's/DefaultDepth.*16/Defaultdepth '$depth'/' /etc/X11/xorg.conf
## Ajoute le composite
echo "Section \"Extensions\"
Option \"Composite\" \"1\"
EndSection" | tee -a /etc/X11/xorg.conf
modprobe radeon
if [ "$fglrx" = "1" ]; then
echo "reboot" >> $WORK/config
echo "fglrx" >> $WORK/config
mv $WORK/backups/xorg.conf.save_script $WORK/backups/xorg.conf.save_script.fglrx
fi
else
echo `color 31 "###############################################################################"`
echo `color 31 "Votre pilote ATI Radeon est deja fonctionnel...Inutile de reinstaller"`
echo `color 31 "###############################################################################"`
fi ## fin check si radeon avec rendering ok
fi ##fin fglrx ou radeon
## Si carte intel chipset 915/945...
elif [ -n "${INTEL}" ]; then
if [[ ! `glxinfo |grep -e "direct rendering: Yes"` || ! `dpkg --list |grep fglrx |grep $current_ati` ]]; then
echo ` color 34 "Carte intel $INTEL detecteé...." `
if [ ! -e /etc/X11/xorg.conf.original ]; then
cp /etc/X11/xorg.conf $WORK/backups/xorg.conf.original
fi
cd /etc/X11
(COMMAND "wget -q http://phatandfresh.free.fr/cfinstall/xorg.conf.915")
mv xorg.conf.915 xorg.conf
modprobe i810
sed -i 's/Option.*\"XkbLayout\" \"fr\"/Option \"XkbLayout\" \"'"$locale"'\"/' /etc/X11/xorg.conf
sed -i 's/Option.*\"XkbModel\" \"pc105\"/Option \"XkbModel\" \"'"$model"'\"/' /etc/X11/xorg.conf
sed -i 's/Option.*\"XkbRules\" \"xorg\"/Option \"XkbRules\" \"'"$rules"'\"/' /etc/X11/xorg.conf
else
echo `color 31 "###############################################################################"`
echo `color 31 "Votre pilote Intel est deja fonctionnel...Inutile de reinstaller"`
echo `color 31 "###############################################################################"`
fi ## fin check si intel avec rendering ok
## et finalement si carte autre on laisse tel quel ....
elif [ -n "${UNSUPPORTED}" ]; then
echo ` color 32 "Carte non reconnue avec ce script...Seules les cartes ATI/Nvidia/Intel sont supportees...Auncuns changements effectues..." `
exit 0 ## on sors direct
fi
}
## fin install carte graphique enchaine sur compiz-fusion selon utilisateur
##################
##################
# Cubemodel
##################
function CUBEMODEL()
{
echo -e `color 33 "Téléchargement du plugin cubemodel...
"`
sleep 3
cd /tmp
rm /tmp/*.deb &>/dev/null
(COMMAND "wget http://www.ubukey.fr/custom/deb/karmic/cubemodel_20100129-1_i386.deb")
echo -e `color 33 "Démarre de l'installation/mise à jour du plugin cubemodel..."`
dpkg -i cubemodel_20100129-1_i386.deb &>/dev/null
echo -e `color 32 "Installation/mise à jour terminée\n"`
}
##################
# fonction restart
##################
function restartX()
{
## creation du log
echo -e `color 32 "Creation du fichier log:
"$WORK"/installlog-"$fixeddate".tar
A CONSERVER EN CAS DE PROBLEME, COPIEZ LE ET POSTEZ SUR LE FORUM...\n"`
cd $WORK
rm *.tar &>/dev/null
tar cvf installlog-$fixeddate.tar *-$fixeddate.txt &>/dev/null
rm *.txt &>/dev/null
ldconfig
$DIALOG --title "Installation terminee" --clear \
--yesno "Toutes les opérations se sont terminées avec succés :)
Voulez vous relancer votre session X maintenant ou rebooter selon le cas ?
(utile à la première installation)
Cliquez \"Annuler\" pour sortir sans relancer X.
" 16 51 2>/tmp/input.$$
case $? in
0)
echo `color 31 "Ok, Redemarrage du serveur X ou du pc ;))"`
rm -R $WORK/script-files/* &>/dev/null
if [ ` cat $WORK/config | grep "reboot" ` ]; then
sed -i 's/reboot//' $WORK/config
reboot -t now
fi
if [ -d "$USERDIR/.cfinstall" ]; then
rm -R $USERDIR/.cfinstall &>/dev/null
fi
nohup /etc/init.d/gdm restart &>/dev/null
nohup /etc/init.d/kdm restart &>/dev/null
nohup /etc/init.d/xdm restart &>/dev/null
nohup /etc/init.d/kdm-kde4 restart &>/dev/null
;;
1) echo ` color 31 "Sortie... Relancez votre session pour appliquer les changements ;)"`
rm -R $WORK/script-files/* &>/dev/null
exit 0
;;
255) echo ` color 31 "Sortie... ;)"`
rm -R $WORK/script-files/* &>/dev/null
exit 0
;;
esac
}
## FONCTIONS ET MENU DE DESINSTALLATION
function compiz_uninstall()
{
builddir=$WORK/compiz-build
if [ -e $builddir/Master ]; then
builddir=$WORK/compiz-build/Master
## vire tous les elements de compiz
for i in `find $builddir -maxdepth 1 -type d | sed '/plugins/d' | sed '/Master$/d'`; do
name=$(basename "$i")
cd "$i"
echo -e `color 34 "Désinstallation de "$i" \n"`
sleep 1
if [ -e "setup.py" ]; then
(COMMAND "python setup.py uninstall")
cd ..
else
cd build
(COMMAND "make uninstall")
cd ../..
fi
done
echo
echo -e `color 34 "Désinstallation des plugins installés \n"`
sleep 3
## scan et vire les plugins presents
for i in `find $builddir -maxdepth 1 -type d | grep 'plugins'` ; do
name=$(basename "$i")
cd "$i"/build
(COMMAND "make uninstall")
echo -e `color 34 "Désinstallation du plugin "$i" \n"`
sleep 1
done
cd /opt
rm -R $builddir &>/dev/null
fi
## desinstalle compiz en paquets deb
compizpackages=` dpkg-query -W --showformat='${Package}\n' | sort -nr | grep compiz | xargs `
if [[ "$DIST" = "hardy" || "$DIST" = "intrepid" || "$DIST" = "jaunty" || "$DIST" = "karmic" || "$DIST" = "lucid" ]] ; then
compizpackages=`dpkg-query -W --showformat='${Package}\n' | sort -nr | grep compiz | xargs | sed 's/libcompizconfig0//'`
fi
aptitude $switch purge $compizpackages
berylpackages=` dpkg-query -W --showformat='${Package}\n' | sort -nr | grep beryl | xargs `
aptitude $switch purge $berylpackages
aptitude $switch purge libemeraldengine0 emerald-themes emerald
## desinstalle fusion-icon
cd $WORK/fusion-icon/fusion-icon &>/dev/null
python setup.py uninstall &>/dev/null
rm -R $WORK/fusion-icon/ &>/dev/null
cd $WORK
## purge fichier de conf, autostart etc
rm -R $USERDIR/.config/compiz* &>/dev/null
rm /etc/xdg/autostart/compiz-*.desktop &>/dev/null
rm /etc/xdg/autostart/awn.desktop &>/dev/null
rm -R $WORK/fusion-icon/ &>/dev/null
rm -R $WORK/compiz-build &>/dev/null
rm -R $USERDIR/.gconf/compiz &>/dev/null
rm -R /usr/local/share/compiz &>/dev/null
rm -R /usr/local/lib/compiz &>/dev/null
rm -R /usr/local/include/compiz &>/dev/null
rm -R /usr/share/compiz* &>/dev/null
rm -R /usr/lib/compiz* &>/dev/null
rm -R /usr/local/etc/compizconfig &>/dev/null
rm -R /usr/local/include/compizconfig/ &>/dev/null
rm -R /usr/bin/compiz* &>/dev/null
rm -R /usr/local/share/compizconfig &>/dev/null
rm -R /usr/local/lib/compizconfig &>/dev/null
ldconfig
} ## fin desinstall compiz compil
## desinstallation de cairo-dock
function CleanCairo()
{
DIR="/opt/cfinstall/cairo-dock_bzr"
CAIRO_DOCK_CORE_LP_BRANCH="cairo-dock-core"
CAIRO_DOCK_PLUG_INS_LP_BRANCH="cairo-dock-plug-ins"
CAIRO_DOCK_PLUG_INS_EXTRAS_LP_BRANCH="cairo-dock-plug-ins-extras"
CAIRO_DOCK_PLUG_INS_EXTRAS_USR="/usr/share/cairo-dock/plug-ins/Dbus/third-party"
CAIRO_DOCK_PLUG_INS_EXTRAS_HOME="$HOME/.config/cairo-dock/third-party"
echo -e ` color 34 "Désinstallation de Cairo-Dock et des plug-ins \n" `
## vire cairo-dock
cd $DIR/$CAIRO_DOCK_CORE_LP_BRANCH &>/dev/null
sudo make uninstall 2>&1
cd ..
cd $DIR/$CAIRO_DOCK_PLUG_INS_LP_BRANCH &>/dev/null
sudo make uninstall 2>&1
cd ..
sudo rm -r $CAIRO_DOCK_PLUG_INS_EXTRAS_USR &>/dev/null
if [ -e /usr/share/applications/cairo-dock_svn.desktop ]; then
sudo rm -f /usr/share/applications/cairo-dock_svn.desktop
fi
echo -e "\nLa désinstallation à été effectuée, cependant, votre dossier de configuration est toujours présent."
echo "Celui-ci se trouve dans votre ~/.config et se nomme cairo-dock (attention c'est un dossier caché)."
echo "Vous pouvez le supprimer une fois la désinstallation effectuée"
cd $WORK
rm /etc/xdg/autostart/cairo-dock.desktop &>/dev/null
rm -R cairo-dock_bzr &>/dev/null
echo -e `color 32 "Désinstallation de cairo-dock terminée \n"`
}
## desinstallation de awn
function awn_uninstall()
{
echo ` color 31 "Desinstallation des versions precedentes d awn..."`
sleep 2
dir=$WORK/awnbuild
awn=` dpkg-query -W --showformat='${Package}\n' | sort -nr | egrep "avant-window|libawn|awn-" | xargs `
aptitude $switch purge $awn
if [ -e "$dir/avant-window-navigator" ]; then
cd $dir/avant-window-navigator
make uninstall
cd $dir/awn-extras/
make uninstall
cd ..
fi
if [ -e "$dir/awn-curves" ]; then
cd $dir/awn-curves
make uninstall
cd $dir/awn-extras/
make uninstall
cd ..
fi
cd $WORK
rm -R $WORK/awnbuild/* &>/dev/null
rm -R $USERDIR/.config/awn &>/dev/null
rm -R $USERDIR/.gconf/apps/avant-window-navigator &>/dev/null
gconftool-2 --recursive-unset /apps/avant-window-navigator &>/dev/null
}
function uninstall_screenlets()
{
echo
echo -e `color 34 "Désinstalle screenlets \n"`
sleep 2
## depots
screenlets=` dpkg-query -W --showformat='${Package}\n' | sort -nr | grep screenlets | xargs `
aptitude $switch purge $screenlets xcompmgr alltray
## desinstalle screenlets compile
if [ -e "$WORK/screenlets/screenlets" ]; then
cd $WORK/screenlets/screenlets
make uninstall
rm -rf /usr/local/share/screenlets* &>/dev/null
rm -rf /usr/local/bin/screenlets* &>/dev/null
rm -rf /usr/lib/python2.4/site-packages/screenlets* &>/dev/null
rm -rf /usr/lib/python2.5/site-packages/screenlets* &>/dev/null
rm -R /usr/share/screenlets-manager &>/dev/null
cd $WORK
rm -R $WORK/screenlets/* &>/dev/null
fi
}
# fonction clean
##############################
function clean()
{
##replace xorg.conf
if [[ -e $WORK/config && ` cat $WORK/config | grep "fglrx" ` ]]; then
echo "reboot" >> $WORK/config
(COMMAND "mv $WORK/backups/xorg.conf.save_script.fglrx /etc/X11/xorg.conf &>/dev/null")
card_install
elif [ -e $WORK/backups/xorg.conf.save_script ]; then
(COMMAND "mv /etc/X11/xorg.conf /etc/X11/xorg.conf.save_uninstall &>/dev/null")
(COMMAND "mv $WORK/backups/xorg.conf.original /etc/X11/xorg.conf &>/dev/null")
else
echo `color 31 "aucun xorg.conf a copier, conserve l ancien..." `
fi
## remplace le sources.list avec l original
(COMMAND "cp /etc/apt/sources.list.original /etc/apt/sources.list &>/dev/null")
rm /etc/apt/sources.list.original &>/dev/null
## clean cfinstall builddirs
rm -R $WORK/backups/* &>/dev/null
rm -R $WORK/awnbuild/ &>/dev/null
rm -R $WORK/screenlets &>/dev/null
rm -R /usr/share/skydomes &>/dev/null
## remet en place le xorg
cp -f $WORK/backups/xorg.conf /etc/X11/xorg.conf
}
function UNINSTALL()
{
MENU=$(zenity --width 500 --height 250 --list --text "choisissez les operations à effectuer" \
--checklist --column "" --column "Choix" --column "Description" \
FALSE "Complete" "Désinstalle et remet tout à l'origine..." \
FALSE "Compiz" "Désinstalle uniquement compiz et les plugins" \
FALSE "Awn" "Désinstalle avant window navigator" \
FALSE "Cairo-dock" "Désinstalle Cairo-dock" \
FALSE "Screenlets" "Désinstalle screenlets")
CHOICE=$(echo -e "$MENU" | sed 's/|/ /g')
for i in $CHOICE; do
case $i in
Complete)
compiz_uninstall
awn_uninstall
uninstall_screenlets
CleanCairo
clean
;;
Compiz)
compiz_uninstall
;;
Awn)
## depots
awn=` dpkg-query -W --showformat='${Package}\n' | sort -nr | egrep "avant-window|libawn|awn-" | xargs `
aptitude $switch purge $awn
## compilation
awnbuild=$WORK/awnbuild
if [ -e $awnbuild ]; then
awn_uninstall
fi
;;
Cairo-dock)
CleanCairo
rm /usr/local/bin/cairo*
;;
Screenlets)
uninstall_screenlets
;;
esac
done
## fin desinstallation
}
function log()
{
if [[ ! `dpkg --list | grep -w "xresprobe" ` ]]; then
aptitude install $switch xresprobe
fi
echo "logs..."
echo "================================="
echo " Distribution"
echo "================================="
echo ""
lsb_release -ics
echo ""
echo "================================="
echo " Kernel"
echo "================================="
echo ""
uname -a
echo ""
echo "==========================="
echo " Modele carte video"
echo "==========================="
echo ""
lspci | grep VGA
echo "=========================="
echo " Glxinfo"
echo "==========================="
echo ""
if [[ -n "$DISPLAY" && ! $(ps aux | grep "[c]ompiz") ]]; then
glxinfo 2&1>/dev/null
fi
echo ""
echo "==========================="
echo " Xorg.conf"
echo "==========================="
echo ""
if [ -e "/etc/X11/xorg.conf" ]; then
cat /etc/X11/xorg.conf 2>/dev/null
fi
echo ""
echo "==========================="
echo " modules de carte video"
echo "==========================="
echo ""
lsmod | egrep -w "nv|vesa|nvidia|fglrx|radeon|ati|810"
echo ""
echo "==========================="
echo " .desktop session avant installation"
echo "==========================="
echo ""
ls /usr/share/xsessions
echo ""
echo "==========================="
echo " Fglrx/nvidia modules"
echo "==========================="
echo ""
if [ -e /lib/modules/`uname -r`/misc ]; then
ls /lib/modules/`uname -r`/misc
fi
echo ""
echo "==========================="
echo " .dmrc session"
echo "==========================="
echo ""
if [ -e "$USERDIR/.dmrc" ]; then
cat $USERDIR/.dmrc
fi
echo ""
echo "==========================="
echo " autostarts"
echo "==========================="
echo ""
ls /etc/xdg/autostart
echo ""
echo "================================="
echo " Sources.list"
echo "================================="
echo ""
cat /etc/apt/sources.list
echo ""
echo "================================="
echo " paquets installes"
echo "================================="
echo ""
echo "============"
echo " Compiz"
echo "============"
dpkg-query -W --showformat='${Package}\n' | sort -nr | grep compiz | xargs
echo ""
echo "============"
echo " beryl"
echo "============"
dpkg-query -W --showformat='${Package}\n' | sort -nr | grep beryl | xargs
echo ""
echo "============"
echo " awn"
echo "============"
dpkg-query -W --showformat='${Package}\n' | sort -nr | egrep "libawn|avant-window" | xargs
echo ""
echo "============"
echo " Screenlets"
echo "============"
dpkg-query -W --showformat='${Package}\n' | sort -nr | grep screenlets | xargs
echo ""
echo "============"
echo " emerald"
echo "============"
dpkg-query -W --showformat='${Package}\n' | sort -nr | grep emerald | xargs
echo ""
}
function MENU()
{
if [ -n "$LOG" ]; then
LOGSTATE="TRUE"
LOGSTATEDIAG="on"
else
LOGSTATE="FALSE"
LOGSTATEDIAG="off"
fi
if [ -n "$switch" ]; then
SWITCHSTATE="TRUE"
SWITCHSTATEDIAG="on"
else
SWITCHSTATE="FALSE"
SWITCHSTATEDIAG="off"
fi
#if [[ "`glxinfo | grep rendering | sed 's/.*: //'`" = "Yes" ]]; then
#MESSAGE="ATTENTION: Votre acceleration 3d est déjà fonctionnelle
#N'utilisez ce menu que si vous voulez vraiment forcer l'installation des derniers drivers
#en .run, sinon passez..."
#else
#MESSAGE="ATTENTION: Votre acceleration 3d ne fonctionne pas correctement !!!
#Utilisez ce menu pour installer les derniers drivers proprio pour votre carte..."
#fi
if [ ! -z "$DISPLAY" ]; then
MENU=$(zenity --list --width 680 --height 640 --title "Installation Compiz-fusion/awn/Screenlets/cairo-dock et pilotes proprio $cfversion " \
--text "NOTICE:
- Veillez à ne pas cocher des options git et depots en meme temps...
- En cas de problème, utilisez l'option \"Désinstaller\" à la fin
de ce menu
" \
--checklist --column "" --column "Choix" --column "Description" \
FALSE "Compiz-Git" "(Recommandé) Installer compiz-fusion 0.9.2.1 et tous les plugins" \
FALSE "Config" "Reinstaller les paramètres par défaut du script" \
FALSE "Desinstaller" "Permet de choisir les éléments a désinstaller
" \
$SWITCHSTATE "Automatique" "Effectuer les operations sans demander confirmation Y/n..." \
$LOGSTATE "Verbose" "Activer le mode verbose pour visualiser toutes les sorties consoles...")
#FALSE "Cairo-dock" "Installer Cairo-dock depuis les sources svn
#Cette installation utilise le script de MAV de l'equipe cairo-dock
#" \
#FALSE "Awn-bzr" "Installer avant window navigator et ses applets depuis les sources Bzr" \
#FALSE "Awn-depots" "Installer avant window navigator et ses applets depuis les depots (version bzr)" \
#FALSE "Screenlets" "Installer Screenlets, gadgets pour le bureau" \
#FALSE "Compiz-depots" "Installer compiz depuis les dépôts PPA (selon votre distrib...)
#N'utilisez pas cette option en meme temps que Compiz-Git!
#(je ne suis pas responsable des paquets installés...)" \
#FALSE "3D" "Installer le pilote proprio pour carte 3d Ati/Nvidia
#Cette option utilise les fichiers .run des sites Nvidia et ati
#" \
#FALSE "Cubemodel" "Installe/met a jour le plugin cubemodel (git) pour gstyle" \
CHOICE=$(echo -e "$MENU" | sed 's/|/ /g')
else
dialog --title "Installation Compiz-fusion/awn/Screenlets/cairo-dock et pilotes proprio $cfversion " \
--checklist "Choisissez les opérations que vous voulez effectuer
" 0 0 9 \
"Compiz-Git" "Installer compiz et tous les plugins depuis les sources GIT." off \
"Cairo-dock" "Installer Cairo-dock depuis les sources svn" off \
"Awn-bzr" "Installer avant window navigator et ses applets depuis les sources Bzr" off \
"Awn-depots" "Installer avant window navigator et ses applets depuis les depots (version bzr)" off \
"Screenlets" "Installer Screenlets, gadgets pour le bureau" off \
"Config" "Reinstaller les paramètres par défaut du script" off \
"Desinstaller" "Permet de choisir les éléments a désinstaller..." off \
"Automatique" "Effectuer les operations sans demander confirmation Y/n..." $SWITCHSTATEDIAG \
"Verbose" "Activer le mode verbose pour visualiser toutes les sorties consoles..." $LOGSTATEDIAG 2>/tmp/menu.tmp.$$
#"3D" "Installer le pilote proprio pour carte 3d Ati/Nvidia" off \
#"Cubemodel" "Installer le plugin cubemodel pour gstyle" off \#
CHOICE=$(cat /tmp/menu.tmp.$$ | sed 's/\"//g')
fi
## et on demarre
log >> $WORK/prescriptlog-$fixeddate.txt
for i in $CHOICE; do
case $i in
Compiz-Git)
install_type="Master"
install_compiz_fusion | tee $WORK/fusion-install-log-$fixeddate.txt
compiz_fusion_autostart | tee -a $WORK/fusion-install-log-$fixeddate.txt
;;
#Compiz-depots)
#install_type="depot"
#install_compiz_fusion | tee $WORK/fusion-install-log-$fixeddate.txt
#compiz_fusion_autostart |tee -a $WORK/fusion-install-log-$fixeddate.txt
#;;
Screenlets)
screenlets | tee $WORK/screenlets-install-log-$fixeddate.txt
;;
Cairo-dock)
installCairo | tee $WORK/cairodock-install-log-$fixeddate.txt
;;
Awn-depots)
AWN_DEPOTS | tee $WORK/cairodock-install-log-$fixeddate.txt
AWN_AUTOSTART
restartX
;;
Awn-bzr)
AWN_BZR | tee $WORK/cairodock-install-log-$fixeddate.txt
AWN_AUTOSTART
;;
#3D)
#card_install | tee $WORK/3d-install-log-$fixeddate.txt
##;;
Config)
autostart="True"
DEFAULT_CONFIG
;;
Desinstaller)
UNINSTALL | tee $WORK/uninstall-log-$fixeddate.txt
;;
Verbose)
LOG="true"
;;
Automatique)
switch="-y"
;;
#Cubemodel)
#CUBEMODEL
#;;
1) echo ` color 31 "annulation...sortie " `
exit 0 ;;
255) echo ` color 31 "annulation...sortie " `
exit 0 ;;
esac
done
log >> $WORK/postscriptlog-$fixeddate.txt
restartX
}
function pwdScript()
{
if [[ -e .update ]]
then
emplacement_script=$(pwd)
else
# Si existe, c'est le bon, sinon le shell est dans le path
test -f $0 && cheminExe=$0 || cheminExe=$(which $0)
# Si la commande est un lien, on recupère le fichier pointé par ce lien
test -L $cheminExe && cheminReel=$(readlink -f $cheminExe) || cheminReel=$cheminExe
repReel=$(dirname $cheminReel)
emplacement_script=$(echo $(cd $repReel && pwd))
fi
}
## initialisation du script
function INIT()
{
## variables de base locales, parametres xorg
if [ -e "/etc/X11/xorg.conf" ]; then
locale=` cat /etc/X11/xorg.conf | grep "XkbLayout" | sed 's/\"//g' | awk '{print $3}' `
model=` cat /etc/X11/xorg.conf | grep "XkbModel" | sed 's/\"//g' | awk '{print $3}' `
rules=` cat /etc/X11/xorg.conf | grep "XkbRules" | sed 's/\"//g' | awk '{print $3}' `
else
locale=""
model=""
rules=""
fi
depth="24"
## fix d un bug avec glxinfo sudo sur hardy et intrepid, glxinfo | grep rendering retournant :No avec sudo sans ca...
if [[ -e "/usr/lib/dri/fglrx_dri.so" && ! -e "/usr/X11R6/lib/modules/dri/fglrx_dri.so" ]]; then
mkdir -p /usr/X11R6/lib/modules/dri
ln -s /usr/lib/dri/fglrx_dri.so /usr/X11R6/lib/modules/dri/fglrx_dri.so
ldconfig
fi
## meme chose en 64 bits
if [[ -e "/usr/lib64/dri/fglrx_dri.so" && ! -e "/usr/X11R6/lib64/modules/dri/fglrx_dri.so" ]]; then
mkdir -p /usr/X11R6/lib64/modules/dri
ln -s /usr/lib64/dri/fglrx_dri.so /usr/X11R6/lib64/modules/dri/fglrx_dri.so
ldconfig
fi
## fix intrepid nvidia, pb assez courant...
if [[ ! -e "/usr/lib/libGL.so" && -e "/usr/lib/libGL.so.1" ]]; then
ln -s /usr/lib/libGL.so.1 /usr/lib/libGL.so
fi
## detecte la distrib
DEBIAN="$(lsb_release -is | grep Debian)"
DIST="$(lsb_release -cs)"
if uname -a | grep -e "x86_64" ; then
DIST64="yes"
fi
if [ -n "$DEBIAN" ]; then
DIST="DEBIAN"
fi
## recupère l'utilisateur par défaut
checkuser
## verif sources
echo -e `color 32 "Mise à jour des sources... \n"`
UPDATE_SRC
## paquets de base...
echo
MESSAGE="Démarrage du script, Check des paquets de base..."
basic="true"
check_packages "dialog zenity xterm mesa-utils bzr automake1.9 build-essential lsb-release aptitude"
basic=""
## Detecte si X est actif ou pas
if [ -z $DISPLAY ]; then
DIALOG=dialog
elif [ -e "/usr/bin/gdialog" ]; then
DIALOG="gdialog"
else
DIALOG="dialog"
fi
## check si fglrx est installe si oui creation d un fichier de backup en cas de passage a radeon et desinstallation par la suite (remettre fglrx ...)
if [[ $(lsmod | grep "fglrx") ]]; then
fglrx="1"
fi
## lance le menu
MENU
}
function usage()
{
cat << EOF
usage: cfinstall++.sh -OPTIONS
OPTIONS disponibles:
-h Affiche ce message
-v Mode verbose
-y Effectue les opérations automatiquement
EOF
}
WORK="/opt/cfinstall++"
echo "$@" | tee $WORK/options &>/dev/null
## deplace dans dossier du script
pwdScript
PID="$(ps aux | grep cfinstall++.sh | grep [b]ash | awk '{print $2}')"
TERMID="$(ps aux | grep cfinstall++.sh | grep [x]term | awk '{print $2}')"
## Test user root
UID_ROOT=0
if [ "$UID" -ne "$UID_ROOT" ]; then
exec sudo $emplacement_script/cfinstall++.sh "$@"
fi
LOG=""
switch=""
while getopts “hvy” OPTION
do
case $OPTION in
h)
usage
exit 1
;;
v)
LOG="true"
echo -e `color 32 "Mode verbose activé \n"`
;;
y)
echo -e `color 32 "Installation automatique activé \n"`
switch="-y"
;;
esac
done
## test de connexion
testConnect
## Met a jour le script
UPDATE_SCRIPT
INIT
exit 0