GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Pourquoi Gedit continue-t-il d'ouvrir de nouvelles instances au hasard lors de l'ouverture de fichiers depuis Nautilus ?

Oh comme j'aime Ubuntu et toutes ses fonctionnalités, mais ce "bug" me met en colère depuis si longtemps et j'ai finalement décidé de demander de l'aide ici.

J'ai assigné tous les .php fichiers à ouvrir avec gedit chaque fois que je double-clique dessus dans nautilus. Maintenant, le comportement est étrange.

  1. Je n'ai pas gedit en cours d'exécution
  2. Je double-clique sur un fichier à ouvrir
  3. Une fenêtre gedit s'ouvre et le fichier se charge
  4. Je double-clique sur un autre fichier à ouvrir

Maintenant, il y a 2 résultats possibles :

5A) Le fichier s'ouvre dans la même fenêtre gedit dans un nouvel onglet

5B) Le fichier s'ouvre dans une nouvelle fenêtre gedit, ce qui entraîne l'exécution de 2 gedits.

Que A ou B se produise semble être totalement aléatoire et continue indéfiniment. Cela signifie que je double-clique sur 100 fichiers et je pourrais me retrouver avec 60 gedits, dont certains auront 1 onglet, certains auront 2 onglets, certains auront 3 onglets…

C'est extrêmement ennuyeux et un correctif pour cela serait très apprécié. Quelqu'un a-t-il déjà essayé de résoudre ce problème ?

Cela s'est produit dans Ubuntu 10.04, 10.10 et 11.10. Toutes les versions d'Ubuntu que j'ai jamais testées.

Meilleure réponse

Pourquoi…

gedit possède un algorithme assez intéressant pour déterminer s'il ouvre une nouvelle instance ou s'il s'ouvre dans un onglet d'une instance existante.

Situé dans le fichier source gedit-app.c dans la fonction static boolean is_in_viewport , l'algorithme teste si l'instance actuelle de gedit est

  1. dans le même numéro d'écran et le même nom d'affichage
  2. dans le même espace de travail
  3. plus de 25 % des bords de la fenêtre

Si tout est vrai, alors gedit s'ouvre dans la même instance dans un nouvel onglet, sinon il s'ouvre dans une nouvelle fenêtre.

En résumé - la seule façon réaliste de changer le comportement est de changer l'algorithme…

Comment…

Ce qui suit est un moyen rapide d'obtenir une manière cohérente d'ouvrir gedit… il ouvrira toujours une nouvelle instance.

installer les outils de développement de base

sudo apt-get install devscripts build-essential fakeroot 

obtenir la source

cd ~/Downloads
mkdir build
cd build
apt-get source gedit
cd gedit-3.2*

faire le changement

Ouvrez gedit-app.c

gedit gedit/gedit-app.c

ajouter return FALSE; comme indiqué et enregistrez.

Ce que cela fait, c'est toujours quitter la routine en disant "je ne suis pas en cours d'exécution dans une fenêtre et donc toujours ouvrir une nouvelle instance"

Si vous utilisez return TRUE; cela s'ouvrira toujours dans une instance existante de gedit dans un nouvel onglet…

En relation:Comment réparer la résolution DNS qui ne fonctionne pas après la mise à niveau vers Ubuntu 13.10 (Saucy) dans Ubuntu ?

donnez-lui un nom de package unique

OK, nous devons donner au package un nom unique pour empêcher les mises à jour du référentiel d'écraser votre package modifié

gedit debian/changelog

ajoutez maintenant +yourname à la version supérieure et enregistrez le fichier, c'est-à-dire

Remarque - pour être absolument sûr - après avoir installé le package modifié ci-dessous, verrouillez la version conformément à la question liée ci-dessous.

construire le package

sudo apt-get build-dep gedit
debuild -i -us -uc -b

Allez prendre un café…

cd ..
sudo dpkg -i gedit*.deb

Question liée :

  1. Comment empêcher la mise à jour d'un package spécifique ?

Ubuntu
  1. Pourquoi Find -mtime +1 ne renvoie-t-il que les fichiers de plus de 2 jours ?

  2. Comment accéder aux fichiers Flash à partir de sites Web de streaming ?

  3. Pourquoi Ls -l affiche-t-il une taille différente de Ls -s ?

  4. Impossible de transférer des fichiers de la maison vers USB ?

  5. Pourquoi le curseur saute-t-il lors de la frappe ?

Comment empêcher Gedit d'ouvrir quoi que ce soit ?

Pourquoi Nautilus s'ouvrira automatiquement lors du chargement de Kde ?

Comment accéder aux fichiers Windows à partir d'Ubuntu ?

Arrêter l'ouverture de .py dans Gedit ?

Pourquoi `xdg-mime query filetype ...` ne parvient-il pas à trouver un nouveau type de fichier ajouté ?

Pourquoi dd de /dev/random donne-t-il des tailles de fichiers différentes ?