Ceci est une ancienne révision du document !
Comment faire cohabiter gnome-shell et gnome 2.30.
Ce tutoriel décrit une solution permettant de créer une session X dédiée au gnome-shell. Cela permet de garder la session gnome 2.3 "classique" en plus du gnome-shell : comme lorsque l'on choisit kde à la place de gnome!
Ce tutoriel s'adresse tout particulièrement aux utilisateurs désireux de faire de gnome-shell leur interface par défaut mais qui, en cas de bug, peuvent revenir à tout moment à la session d'origine sans rien avoir à modifier dans les applications au démarrage… (ou autre méthode pour lancer le gnome-shell).
Pré-requis
- Avoir installé le gestionnaire de fenêtres gnome-shell (connexion internet nécessaire) pleinement opérationnel.
Principe de la démarche
Rappels sur les "sessions"
On appelle ici une "session" un ensemble de choses qui sont plus ou moins solidaires et qui constituent a peu près ce qu'on nommerait l'interface (définition hasardeuse!) : Gnome, KDE sont par exemple des noms que l'on peut donner à une session. Chaque session a un gestionnaire de fenêtres défini, un ensemble de logiciels qui démarrent en même temps qu'elle…
En pratique une session n'est qu'un script shell (un peu spécial) qui se situe dans le dossier /usr/share/xsessions. Si vous l'ouvrez avec gedit vous verrez qu'il n'y a pratiquement rien (en général)! La gestionnaire de connexion (le programme qui vous invite à donner vous login et mot de passe juste après le démarrage) se contente (presque) en fait de lancer un de ces scripts.
Voici par exemple la session par défaut de gnome :
[Desktop Entry] Name=GNOME-SHELL Comment=Vous démarrez avec le GNOME-SHELL Exec=gnome-session TryExec=gnome-session Icon= Type=Application X-Ubuntu-Gettext-Domain=gnome-session-2.0
On remarque que la seule "réelle" commande est de lancer la "gnome-session". Ensuite c'est cette commande "gnome-session" qui s'occupe du reste.
Principe général et position du problème
Grâce à ce tutoriel, vous serez en mesure de créer une session supplémentaire qui lancera le gnome-shell! Comme on vient de le voir, pour lancer une session, il suffit presque d'une seule commande, commande qui se charge de lancer différents logiciels, gestionnaires de fenêtres…etc qui sont caractéristiques de chaque session. Ainsi l'utilisateur intelligent se demande en quoi un "problème" est mentionné dans le titre puisqu'il suffit de se faire une commande personnalisée qui lance le gnome-shell… Cependant ce problème existe vraiment : Dans le cas de KDE (par exemple), il suffit de créer un nouveau script qui lancera la session KDE. Cependant ici notre script lancera toujours une session gnome! Il faut donc trouver un moyen pour que le "gnome-session" "différencie" la session par défaut et la session que l'on va créer. La solution se trouve grâce à la puissance de gnome : "gnome-session" est capable de se doter de paramètres particuliers en fonction du nom de la session qui l'a lancé!
La démarche se constitue donc en deux étapes simples :
- Créer une session gnome personnalisée
- Ajuster les paramètres de la session gnome pour que gnome-shell devienne le gestionnaire de fenêtres par défaut.
Première étape : créer une session personnalisée
Lightdm
ceci étant écrit pour gdm au départ il n'est plus valable pour Lightdm.
LightDm (gnome display manager) est l'écran de connexion par défaut d'Ubuntu. Cette rubrique se destine donc à tous les utilisateurs ayant directement installé Ubuntu ( et non kubuntu, xubuntu…).
De manière graphique avec nautilus et gedit
En ligne de commande
Ouvrez un terminal et exécutez les commandes suivantes :
cd /usr/share/xsessions sudo cp gnome.desktop nom_de_votre_session.desktop
Deuxième étape : configurer cette session pour qu'elle devienne une session gnome-shell
Cette étape est des plus simples : il s'agit de lancer automatiquement au démarrage de notre session une commande qui lance le gnome-shell. La commande la plus simple reste encore :
gnome-shell --replace
Une autre solution serait de modifier l'éditeur de configuration gconf mais qui s'avère un peu plus complexe. (En effet, Gnome-shell ne se limite pas à être une gestionnaire de fenêtres… contrairement à compiz, on ne peut donc pas se contenter de remplacer "compiz" par "gnome-shell" dans gconf!
Il faut donc que cette session gnome-shell ait cette commande en autostart. Pour ce faire, il suffit de créer un script shell contenant la commande désirée et le mettre dans le dossier /etc/xdg/xdg-<nom_de_votre_session>/autostart
Ouvrez gedit en mode administrateur (Applications/Accessoires/terminal et tapez "sudo gedit") et collez ce qui suit :
[Desktop Entry] Type=Application Name=GNOME Shell Comment=Window management and application launching Exec=/usr/bin/gnome-shell X-GNOME-Bugzilla-Bugzilla=GNOME X-GNOME-Bugzilla-Product=gnome-shell X-GNOME-Bugzilla-Component=general X-GNOME-Bugzilla-Version=2.28.1 Categories=GNOME;GTK;Utility;Core; OnlyShowIn=GNOME; NoDisplay=true X-GNOME-Autostart-Phase=WindowManager X-GNOME-Provides=panel;windowmanager; X-GNOME-Autostart-Notify=true X-Ubuntu-Gettext-Domain=gnome-shell
Ensuite vous faites "fichier/enregistrer sous" et enregistrez ce fichier avec l'extension .desktop dans le dossier /etc/xdg/xdg-nom_de_votre_session/autostart
Voilà, c'est fini ! Il ne vous reste maintenant qu'à vous déconnecter (ou redémarrer) et choisir votre session gnome-shell! (en bas)