Le royaume de Eric Buist >> Informatique >> Quelques-unes de mes recherches personnelles >> Trucs et astuces >> Astuces spécifiques au DIRO
Me contacter Plan du site
<< Ajouter une touche personnelle Faire cohabiter KDE 2 et KDE 3 harmonieusement

Faire cohabiter KDE 2 et KDE 3 harmonieusement

KDE 2 et KDE 3, bien que similaires en apparence, diffèrent dans leurs fichiers de configuration se trouvant dans ~/.kde. Les fichiers de KDE 3, si utilisés avec KDE 2, occasionnent des problèmes de présentation de l'interface et de fonctionnalité qui rendent l'environnement pratiquement inutilisable. Dans une configuration réseau comme au DIRO de l'Université de Montréal, il cohabite, dans les laboratoires de recherche, des versions de KDE 2 et KDE 3! Le problème est donc présent et mérite une solution.

Symptômes

Comment y remédier

Pour retrouver un KDE fonctionnel, il faut suivre un certain nombre d'étapes.

  1. Fermez votre session X d'une façon ou d'une autre. Utilisez CTRL-ALT-Backspace si KDE ne coopère plus.
  2. Appuyez sur ALT-F2 pour basculer sur une console texte et branchez-vous en tapant votre nom d'utilisateur et mot de passe habituels.
  3. Tapez rm -rf ~/.kde, ce qui va effacer tous vos paramètres KDE!
  4. Tapez killall -9 kdeinit afin de débarrasser le système du processus en live lock. Vous pouvez utiliser top pour vérifier si le processus est bien tué. Utilisez dans ce cas la touche P pour ordonner au programme de classer les processus par ordre d'activité CPU. Tapez Q pour quitter Top.
  5. Tapez exit pour refermer la console texte, puis basculez de nouveau en mode graphique en utilisant ALT-F7 ou ALT-F8.
  6. Au prochain branchement, KDE fonctionnera, mais il sera revenu aux paramètres par défaut.

Comment le contourner

Si vous devez vous balader entre du KDE 3 et du KDE 2, la solution précédente n'est pas très conviviale, surtout si vous personnalisez beaucoup votre environnement KDE! Pour éliminer totalement le problème, il vous faudra créer plusieurs répertoires de configuration KDE, un pour chaque version, puis mettre en place un script établissant au démarrage un lien symbolique au bon répertoire. Ce script doit toutefois s'exécuter avant KDE.

Voici les étapes permettant de mettre la solution en place. Ces préparatifs devraient être effectués pendant que KDE est inactif et ne sont à effectuer qu'une seule fois.

  1. Téléchargez le script shell setkdedir de ma création. Le script ne détruit rien, vous pouvez vérifier par vous-même. Placez le script dans ~, votre répertoire home.
  2. Fermez votre session et basculez sur une console texte en appuyant sur ALT-F2. Entrez votre nom d'utilisateur et mot de passe DIRO habituels.
  3. Tapez rm -rf ~/.kde, ce qui effacera vos paramètres KDE actuels.
  4. Tapez successivement
    mkdir ~/.kde1
    mkdir ~/.kde2
    mkdir ~/.kde3
    mkdir ~/.kdeu
    ln -s ~/.kde3 ~/.kde
    chmod u+x ~/setkdedir
    ~/setkdedir
            
    
  5. Utilisez ls -l afin de voir si le lien symbolique .kde est correctement configuré après l'appel au script. Si tel est le cas, l'aiguillage est en place, reste à le mettre en fonction avant le démarrage de KDE.

    Remarque: Il est possible de conserver les paramètres actuels de votre KDE. Pour ce faire, au lieu de supprimer .kde, renommez-le pour qu'il corresponde à la bonne version et ne créez que les autres répertories.

  6. Supprimez les fichiers ~/.xsession, créez le fichier ~/.Xclients, par exemple avec Emacs, et tapez-y le contenu suivant.
    #!/bin/bash
    
    ~/setkdedir
    
    touch ~/good
    
    exec startkde
    
  7. Enregistrez le fichier puis tapez exit pour quitter la console. Basculez sur l'interface graphique avec ALT-F7 ou ALT-F8.
  8. Tapez uniquement votre nom d'utilisateur et validez par Enter.
  9. Assurez-vous que Default est sélectionné au bas de la boîte et non KDE. Si KDE est activé, votre nouveau fichier ~/.Xclients ne sera pas exécuté!
  10. Tapez votre mot de passe et si tout va bien, vous obtiendrez un environnement KDE.
  11. Vérifiez si le fichier ~/good a été créé et si tel est le cas, cela prouve que ~/.Xclients a bien été exécuté. Vous pouvez alors retirer la ligne touch du fichier ~/.Xclients.

Ce que fait le script

Tout d'abord, setkdedir appelle kde-config -v. Cette commande affiche les versions de Qt et de KDE et sa sortie est semblable à ceci.

Qt: 3.1.1
KDE: 3.1-10 Red Hat
kde-config: 1.0

Ce programme a toutefois pour fâcheux effet de recréer un répertoire .kde, d'où la nécessité, lors des préparatifs, de créer vous-même un lien symbolique avec ln -s.

setkdedir n'a besoin que du numéro majeur de version et utilise Perl afin de l'isoler parmi la sortie obtenue. Le résultat est alors confronté à des tests qui détermineront quel répertoire sera effectif pour votre session actuelle. La commande rm -f permet de supprimer, sans avertissement, le lien symbolique .kde. Si .kde était un véritable répertoire, il ne serait pas touché. Je n'ai pas utilisé l'option -r spécialement pour cela! Finalement, un lien symbolique est créé afin que le répertoire .kde corresponde à celui de la bonne version. Si la version KDE ne peut être déterminée, .kdeu (pour unknown) sera utilisé. Cette stratégie solutionne le problème, mais la configuration est distincte pour chacun des KDE.