copie et cole ce script dans gedit et lances le dans un termial . il n'est pas de moi je signal(pas de plagia) tu peux le trouver avec l'ami google.
[c]
!/bin/sh
#
# nicofo -
http://nicofo.tuxfamily.org
# Installation et configuration automatique de xgl pour GNOME, KDE et XFCE
#
# 20/01/07 - version 1
# 06/02/07 - version 2 Mis à jour pour pouvoir faire des updates
# 08/03/07 - version 3 Possibilité de désinstaller
# 01/04/07 - version 4 Architectures x86_64
# 01/06/07 - version 5 Nouvelle version de XGL pour FC6 :
# utilise les versions officielles de compiz et beryl
# 21/06/07 - version 6 N'utilise plus xgl-info
# 22/06/07 - version 7 Pour Fedora 7 également
# 09/08/07 - version 8 Compiz-fusion
# 06/11/07 - version 8.2
testRoot()
{
if [ $(id -u) -ne 0 ]; then
echo -e "L'installation et la configuration de XGL doivent être exécutées\nen tant que \033[1mroot\033[0m."
exit 1
fi
}
#supprime les anciens fichiers de config
clearOldVersion()
{
rm -f /usr/sbin/xgl-info
rm -f /etc/xgl/xgl-hardware-list
rmdir /etc/xgl 2>/dev/null
}
msg()
{
if [ $# -ge 2 ] && [ "$1" = "-n" ]; then
echo -en "\n\033[1;34m$2\033[0m"
else
echo -e "\n\033[1;34m$1\033[0m"
fi
}
#Désinstalle compiz
removeCompiz()
{
if [ -f /usr/bin/gset-compiz ]; then
rpm -e gset-compiz
rmdir /usr/lib/compiz 2>/dev/null #version 64 bits
fi
yum remove compiz
}
#Désinstalle compiz-fusion
removeFusion()
{
rm /etc/yum.repos.d/kagesenshi.repo
[ -f /usr/bin/beryl ] && msg "La version de emerald compatible avec Beryl sera réinstallée ensuite..."
yum remove compiz* fusion-icon* emerald* libcompizconfig
[ -f /usr/bin/beryl ] && yum install emerald-themes emerald
}
#Désinstalle beryl
removeBeryl()
{
yum remove beryl*
}
#Demande s'il faut désinstaller compiz (fusion) et beryl
removeCompizBeryl()
{
[ $# -eq 0 ] && seq=0 || seq=$1
#Supprimer Compiz (fusion) :
if [ -f /usr/bin/compiz ]; then
seq=$(($seq+1))
rpm -q compiz-fusion-plugins-main>/dev/null && add="-fusion"
msg -n "$seq) Voulez-vous désinstaller Compiz$add [o/N] ? "
read res
if [ "$res" == "o" ] || [ "$res" == "O" ]; then
[ "$add" = "-fusion" ] && ( removeFusion || [ 1 ] ) || removeCompiz
fi
fi
#Supprimer Beryl :
if [ -f /usr/bin/beryl ]; then
seq=$(($seq+1))
msg -n "$seq) Voulez-vous désinstaller Beryl [o/N] ? "
read res
if [ "$res" == "o" ] || [ "$res" == "O" ] ;then
removeBeryl
fi
fi
}
#Demande s'il faut installer compiz (fusion) et beryl
installCompizBeryl()
{
rpm -q compiz-fusion-plugins-main>/dev/null
[ -f /usr/bin/compiz -a $? -eq 0 ] && F=1 || F=0
[ -f /usr/bin/compiz -a $F -eq 0 ] && C=1 || C=0 #1 ==> compiz déjà installé
[ -f /usr/bin/beryl ] && B=1 || B=0
IC=0 #1=install compiz
IF=0
IB=0
RC=0 #1=remove compiz
RF=0
echo -en "\n\033[1m[1/2] Compiz - Compiz-fusion (Fedora 7 uniquement)\033[0m"
if [ $B -eq 1 ] && [ $F -eq 0 ]; then
echo -en "\n\033[4mRemarque\033[0m : vous avez Beryl installé. Si vous décidez d'installer Compiz-fusion, vous pourrez continuer à utiliser Beryl à condition de choisir un autre\ndécorateur de fenêtres que emerald."
fi
if [ $C -eq 1 ] && [ $F -eq 0 ]; then
msg -n "Voulez-vous installer \033[31mCompiz-fusion\033[1;34m en remplacement de Compiz [O/n] ? "
read res
[ ! "$res" == "n" ] && [ ! "$res" == "N" ] && IF=1 && RC=1
elif [ $C -eq 0 ] && [ $F -eq 1 ]; then
msg -n "Voulez-vous installer \033[31mCompiz\033[1;34m en remplacement de Compiz-fusion [o/N] ? "
read res
[ "$res" == "o" -o "$res" == "O" ] && IC=1 && RF=1
else #ni compiz ni compiz-fusion installés
msg -n "Voulez-vous installer \033[31mCompiz-fusion\033[1;34m ou \033[31mCompiz\033[1;34m ?
Compiz-fusion [1] (défaut)
Compiz [2]
(aucun) [3]
\r> "
read res
[ "$res" = 2 ] && IC=1
[ ! "$res" = 2 ] && [ ! "$res" = 3 ] && IF=1
fi
echo -en "\n\033[1m[2/2] Beryl\033[0m"
if [ $B -eq 1 ]; then
msg "Beryl est déjà installé."
else
if [ $F -eq 1 ] && [ $RF -eq 0 ] || [ $IF -eq 1 ]; then
echo -en "\n\033[4mRemarque\033[0m : vous avez Compiz-fusion installé. Si vous décidez d'installer Beryl\nen parallèle, vous devrez choisir un autre décorateur de fenêtres que emerald\npour Beryl."
fi
msg -n "Voulez-vous installer Beryl [O/n] ? "
read res
[ ! "$res" == "n" ] && [ ! "$res" == "N" ] && IB=1
fi
seq=0
#Désinstaller
if [ $RC -eq 1 ]; then
seq=$(($seq+1))
msg "$seq) Désinstallation de Compiz..."
removeCompiz
fi
if [ $RF -eq 1 ]; then
seq=$(($seq+1))
msg "$seq) Désinstallation de Compiz-fusion..."
removeFusion
fi
#Installer
KDE=0
GNOME=0
rpm -q kdebase >/dev/null && KDE=1 || GNOME=1
rpm -q gnome-session >/dev/null && GNOME=1
if [ $IF -eq 1 ]; then
seq=$(($seq+1))
msg "$seq) Installation de Compiz-fusion..."
wget
http://devel.foss.org.my/~kagesenshi/repo/pub/kagesenshi.repo -O /etc/yum.repos.d/kagesenshi.repo
fusion_com="compiz-fusion-plugins-main compiz-fusion-plugins-extra compizconfig-settings-manager emerald emerald-themes"
[ $KDE -eq 1 ] && fusion_kde="compiz-kde fusion-icon-qt"
[ $GNOME -eq 1 ] && fusion_gnome="compiz-gnome fusion-icon-gtk"
yum install $fusion_com $fusion_kde $fusion_gnome
#sed -i "s#icon = gtk.status_icon_new_from_icon_name('fusion-icon')#icon = gtk.status_icon_new_from_file('/usr/share/icons/hicolor/scalable/apps/fusion-icon.svg')#" /usr/share/fusion-icon/interface_gtk.py
fi
if [ $IC -eq 1 ]; then
seq=$(($seq+1))
msg "$seq)Installation de Compiz..."
yum install compiz
fi
IG=0 #install gset-compiz
if [ -f /usr/bin/compiz ] && ! rpm -q compiz-fusion-plugins-main>/dev/null && [ ! -f /usr/bin/gset-compiz ]; then
msg "Voulez-vous installer 'gset-compiz' (version FC5) qui permet de paramétrer\ncompiz ? [o/N]"
read res
[ "$(arch)" = "x86_64" ] && ARCH=x86_64 || ARCH=i386
[ "$res" == "o" -o "$res" == "O" ] && rpm -Uhv
http://nicofo.tuxfamily.org/scripts/xgl/gset-compiz/gset-compiz-0.3.3-1.$ARCH.rpm && IG=1
[ "$ARCH" = "x86_64" ] && [ -f /usr/bin/gset-compiz ] && mkdir /usr/lib/compiz #sinon bug en 64 bits
fi
if [ $IB -eq 1 ]; then
seq=$(($seq+1))
msg "$seq) Installation de Beryl..."
[ $KDE -eq 1 ] && beryl_kde="beryl-kde"
[ $GNOME -eq 1 ] && beryl_gnome="beryl-gnome"
yum install $beryl_kde $beryl_gnome
fi
#0 : installation OK
[ $(($IF+$IC+$IB+$IG)) -eq 0 ] && return 1 || return 0 #1 : on a demandé de ne rien installer
}
if [ $# -ge 1 ]; then
if [ $1 = "-r" ] || [ $1 = "--remove" ]; then
testRoot
#Déconfigurer XGL :
msg "1) Suppression des fichiers de configuration..."
wget
http://nicofo.tuxfamily.org/scripts/xgl/xgl-settings.tar.gz -O xgl-settings.tar.gz
tar -xzf xgl-settings.tar.gz configureXgl
sh configureXgl -r
rm -f configureXgl xgl-settings.tar.gz
#Supprimer les RPM installés :
msg "2) Désinstallation de XGL..."
rpm -e xorg-x11-server-Xgl --noscripts
clearOldVersion
if [ -z "$(rpm -e glitz-glx glitz --test 2>&1)" ]; then
rpm -e glitz-glx glitz
fi
seq=2
removeCompizBeryl $seq
echo -e "\n\033[1mDésinstallation terminée.\033[0m"
elif [ $1 = "-cb" ] || [ $1 = "-bc" ]; then
testRoot
installCompizBeryl
elif [ $1 = "-rcb" ] || [ $1 = "-rbc" ]; then
testRoot
removeCompizBeryl
else
echo "Usage :"
echo " $(basename $0) installe et configure XGL / met à jour XGL"
echo " $(basename $0) -r|--remove désinstalle XGL"
echo " $(basename $0) -cb propose l'installation de compiz(-fusion) et beryl"
echo " $(basename $0) -rcb propose la désinstallation de compiz(-fusion) et beryl"
fi
exit 0
fi
testRoot
texte=(
"Vérification de l'installation"
"Téléchargement de XGL"
"Installation de XGL"
"Configuration de XGL"
"Installation de Compiz et Beryl"
)
N=${#texte[*]} #nombre total d'étapes = nombre d'éléments dans $texte (ou : ${#texte[@]})
n=0 #étape actuelle (à partir de 0)
#$etat = status de l'étape précédente
#0=OK ; autre=KO ; -1=STOP ; -2=so (sans objet)
etat=0
erreur=""
avant="\033[2m"
actuel="\033[1;5;33;42m"
apres="\033[1;34m"
normal="\033[m"
ok="\033[1;32m[ OK ]\033[0m"
ko="\033[1;31m[ KO ]\033[0m"
so="\033[1;36m[Déjà fait]\033[0m"
stop()
{
echo
echo -e "\033[31m$erreur\033[0m"
read -p "L'installation ne peut continuer. Voulez-vous néanmoins continuer [o/N] ? " res
if [ ! "$res" == "o" ] && [ ! "$res" == "O" ] ;then
exit $n
fi
echo
etat=1
erreur=""
}
menu()
{
#status : 0=OK ; autre=KO ; -1=STOP ; -2=so (sans objet)
if [ $n -gt 0 ]; then
status[$((n-1))]=$etat
fi
if [ $etat -eq -1 ]; then
stop
elif [ -n "$erreur" ]; then
echo -e "\033[31m$erreur\033[0m"
fi
clear
for i in $(seq 0 $(($N-1))); do
if [ $i -lt $n ]; then
echo -en $avant
elif [ $i -eq $n ]; then
echo -en $actuel
else
echo -en $apres
fi
echo -n "$(($i+1))) ${texte[$i]}"
if [ $i -lt $n ]; then
echo -en "\033[500C\033[15D$normal" #fin ligne
if [ ${status[$i]} -eq 0 ]; then
echo -e "$ok"
elif [ ${status[$i]} -eq -2 ]; then
echo -e "$so"
else
echo -e "$ko"
fi
else
echo -e "$normal"
fi
done
n=$(($n+1))
echo ; echo
erreur=""
etat=0
}
#Vérif. de l'installation
menu
etat=-2
#détermination de la version de Fedora et de l'architecture
ARCH=$(uname -m)
[ ! "$ARCH" = "x86_64" ] && ARCH=i386
FED_VERSION=7
echo "Version de Fedora : $FED_VERSION"
echo "Architecture : $ARCH"
if [ ! $FED_VERSION -ge 6 ]; then
msg "Ce script d'installation de xgl est valable pour une version de Fedora > 5."
if [ $FED_VERSION -eq 5 ]; then
msg -n "Pour Fedora 5, utiliser \033[4minstallXGL_FC5"
msg "\thttp://nicofo.tuxfamily.org/scripts/xgl/installXGL_FC5"
fi
exit
fi
if [ "$(rpm -q xorg-x11-server-Xgl)" = "xorg-x11-server-Xgl-1.1.99.1-3" ]; then
msg "Désinstallation de l'ancienne version de XGL\n\t(il n'est pas nécessaire de désinstaller Beryl) [ENTER]"
read res
wget
http://nicofo.tuxfamily.org/scripts/xgl/installXGL_FC5 -O installXGL_old
sh installXGL_old -r
rm installXGL_old
etat=0
fi
for DEP in zenity xorg-x11-fonts-base ; do
if ! rpm -q $DEP>/dev/null; then
msg "Installation de dépendance : $DEP"
yum install $DEP
etat=0
fi
done
clearOldVersion
#Téléchargement de XGL
#version actuelle de XGL :
version_xgl=$(rpm -q xorg-x11-server-Xgl)
DJ_INST=$? #0 ==> déjà installé
if [ $DJ_INST -eq 0 ]; then
texte[$n]="Recherche de mise à jour de XGL et téléchargement"
fi
menu
#SITE_XGL="
http://files.damaestro.us/xgl/" # (old FC6)
#NOM_SETTINGS="Xgl-settings" # (old FC6)
SITE_XGL="
http://download.tuxfamily.org/fedoraxgl/$FED_VERSION/$ARCH/" #site des RPM
NOM_SETTINGS="system-config-xselector" #nom du RPM de configuration
wget $SITE_XGL -O xgl.html
if [ $? -eq 0 ]; then
# rpm_xgl=$(grep "xorg-x11-server-Xgl-[0-9][^\"]*.$ARCH.rpm" xgl.html -o|sort -ur|head -n 1)
# rpm_xgl_set=$(grep "$NOM_SETTINGS-[0-9][^\"]*.noarch.rpm" xgl.html -o|sort -ur|head -n 1)
# fonctionne pas si fichiers non triés sur le serveur :
# rpm_xgl=$(grep "xorg-x11-server-Xgl-[0-9][^\"]*.$ARCH.rpm" xgl.html -o|tail -n 1)
# rpm_xgl_set=$(grep "$NOM_SETTINGS-[0-9][^\"]*.noarch.rpm" xgl.html -o|tail -n 1)
tmp=$(grep "xorg-x11-server-Xgl-[0-9][^\"]*.$ARCH.rpm" xgl.html -o|sed "s/./-/g"|sed "s/-([0-9])-/-0\1-/g"|sort -r|head -n 1)
nTmp=$(grep "xorg-x11-server-Xgl-[0-9][^\"]*.$ARCH.rpm" xgl.html -o|sed "s/./-/g"|sed "s/-([0-9])-/-0\1-/g"|grep $tmp -n -m 1|cut -d':' -f1)
rpm_xgl=$(grep "xorg-x11-server-Xgl-[0-9][^\"]*.$ARCH.rpm" xgl.html -o|head -n $nTmp|tail -n 1)
tmp=$(grep "$NOM_SETTINGS-[0-9][^\"]*.noarch.rpm" xgl.html -o|sed "s/./-/g"|sed "s/-([0-9])-/-0\1-/g"|sort -r|head -n 1)
nTmp=$(grep "$NOM_SETTINGS-[0-9][^\"]*.noarch.rpm" xgl.html -o|sed "s/./-/g"|sed "s/-([0-9])-/-0\1-/g"|grep $tmp -n -m 1|cut -d':' -f1)
rpm_xgl_set=$(grep "$NOM_SETTINGS-[0-9][^\"]*.noarch.rpm" xgl.html -o|head -n $nTmp|tail -n 1)
if [ -n "$rpm_xgl" ] && [ -n "$rpm_xgl_set" ]; then
# vérifier si il y a une mà j disponible
if [ $DJ_INST -eq 0 ]; then
#derniere_version=$(echo -e \
# "$(echo "$rpm_xgl"|sed "s/.[^.]*.*rpm$//")\n$version_xgl"| \
# sort -r|head -n 1)
derniere_version=$(echo "$rpm_xgl"|sed "s/.[^.]*.*rpm$//")
if [ $derniere_version = $version_xgl ]; then
etat=-2
msg "La version installée de XGL ($derniere_version) est déjà la dernière version."
else
texte[$n]="Mise à jour de XGL"
msg "Une mise à jour de XGL est disponible : \
\n\tancienne version : $version_xgl \
\n\tnouvelle version : $derniere_version\n"
fi
fi
else
erreur="Pas moyen de trouver les rpm de XGL sur $SITE_XGL !"
[ $DJ_INST -eq 0 ] && etat=1 || etat=-1
fi
else
erreur="Une erreur s'est produite avec le site des rpm de XGL ($SITE_XGL).\nXGL n'est peut-être pas disponible pour votre version de Fedora ou votre\narchitecture..."
[ $DJ_INST -eq 0 ] && etat=1 || etat=-1
fi
rm xgl.html
#téléchargement
if [ $etat -eq 0 ]; then
wget -c $SITE_XGL$rpm_xgl
wget -c $SITE_XGL$rpm_xgl_set
if [ ! -f $rpm_xgl ] || [ ! -f $rpm_xgl_set ]; then
erreur="Erreur lors du téléchargement de '$rpm_xgl' ou '$rpm_xgl_set'."
[ $DJ_INST -eq 0 ] && etat=1 || etat=-1
else
INSTALL_XGL=1
fi
fi
#Installation de XGL
menu
if [ ! "$INSTALL_XGL" = "1" ]; then
INSTALL_XGL=0
etat=-2
else
if ! rpm -q glitz-glx>/dev/null; then
yum -y install glitz-glx
if [ $? -ne 0 ]; then
erreur="Erreur à l'installation des dépendances (glitz-glx) de XGL."
stop
fi
fi
rpm -Uhv $rpm_xgl $rpm_xgl_set --test >/dev/null 2>&1
if [ $? -eq 0 ]; then
rpm -Uhv $rpm_xgl $rpm_xgl_set --noscripts
installOK=$?
else
msg "Des dépendances sont requises pour installer XGL :"
[ $FED_VERSION -ge 7 ] && YUM_OPT="--nogpgcheck" || YUM_OPT=""
yum install $rpm_xgl $rpm_xgl_set $YUM_OPT
rpm -q xorg-x11-server-Xgl>/dev/null
installOK=$?
fi
if [ $installOK -ne 0 ] ; then
etat=-1
erreur="Erreur à l'installation des RPM de XGL."
else
rm -f $rpm_xgl $rpm_xgl_set
rpm -e --nodeps $NOM_SETTINGS
fi
fi
#Configuration de XGL
menu
wget
http://nicofo.tuxfamily.org/scripts/xgl/xgl-settings.tar.gz -O xgl-settings.tar.gz
if [ ! -s xgl-settings.tar.gz ]; then
erreur="Erreur au téléchargement de '
http://nicofo.tuxfamily.org/scripts/xgl/xgl-settings.tar.gz'."
etat=-1
else
tar -xzf xgl-settings.tar.gz
./configureXgl
if [ $? -ne 0 ]; then etat=-1; fi
rm -f xgl-settings.tar.gz $(tar -tf xgl-settings.tar.gz)
fi
#Installation de Beryl et Compiz
menu
if [ $DJ_INST -ne 0 -a $INSTALL_XGL -eq 1 ] || [ ! -f /usr/bin/beryl -a ! -f /usr/bin/compiz ] ; then #1ère install XGL ou compiz et beryl non installés
installCompizBeryl #renvoie 1 si n'a rien installé
[ $? -eq 1 ] && etat=-2 || etat=0
else
etat=-2
fi
#Fin
menu
echo -e "Vous pouvez aussi installer \033[1mCompiz\033[0m, \033[1mCompiz-fusion\033[0m ou \033[1mBeryl\033[0m en lançant"
echo -e "\t\033[0;34m$(basename $0) -cb\033[0m\n\n"
echo -e "Installation terminée. Vous pouvez maintenant lancer une nouvelle session\nGNOME, KDE ou XFCE en choisissant \033[1mXGL\033[0m."
echo -e "Vous pourrez à tout moment choisir d'utiliser \033[1mCompiz\033[0m ou \033[1mBeryl\033[0m via le menu Gnome/KDE -> Préférences/Configuration -> \"XGL Gestionnaire de fenêtres\"."
[/c]