Oh, j'adore 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 fichiers .php
à ouvrir avec gedit chaque fois que je double-clique dessus dans Nautilus. Maintenant, le comportement est étrange.
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, entraînant l'exécution de 2 gedits.
Que A ou B arrive semble être totalement aléatoire et continue à aller infiniment. Cela signifie que je double-clique sur 100 fichiers et que je risque de me retrouver avec 60 gedits, dont certains auront 1 onglet, certains auront 2 onglets, certains auront 3 onglets ...
Ceci est extrêmement agaçant et une solution à ce problème serait très appréciée. 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 déjà testées.
gedit
a un algorithme assez intéressant pour déterminer si elle ouvre une nouvelle instance ou si elle 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
Si toutes sont vraies, 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é - le seul moyen réaliste de changer le comportement est de changer l'algorithme ...
Ce qui suit est un moyen rapide d’obtenir un moyen cohérent d’ouvrir Gedit ... il ouvrira toujours une nouvelle instance.
installez les outils de développement de base
Sudo apt-get install devscripts build-essential fakeroot
récupère le 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
ajoutez return FALSE;
comme indiqué et enregistrez.
Cela revient à toujours quitter la routine en disant "Je ne cours pas 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 ...
donnez-lui un nom de paquet unique
OK, nous devons attribuer un nom unique au package pour empêcher les mises à jour du référentiel de remplacer votre package modifié.
gedit debian/changelog
ajoutez maintenant +yourname
à la version de la première ligne et enregistrez le fichier i.e.
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.
construit le paquet
Sudo apt-get build-dep gedit
debuild -i -us -uc -b
Allez prendre un café ...
cd ..
Sudo dpkg -i gedit*.deb
Question liée:
Je voulais que tous les fichiers soient ouverts dans une seule fenêtre de gedit. Je n'ai pas trouvé cette information ailleurs, mais avec les modifications suivantes, j'ai réussi à ouvrir tous les fichiers texte dans une seule fenêtre sous forme de nouveaux onglets, peu importe la façon dont je les ai ouverts (via launcher, via nautilus, via Gnome DO).
Obtenez le numéro d'affichage: tapez echo $DISPLAY
dans la ligne de commande. par exemple. vous obtenez :0
comme numéro d'affichage.
Ouvrez /usr/share/applications/gedit.desktop
en tant que superutilisateur avec un éditeur de texte.
Changer la ligne en disant:
Exec=gedit %U
à
Exec=gedit --display=:0 %U
où :0
est votre numéro d'affichage.
Cela ne se produit pas au hasard
Par défaut, Gedit n'est pas fait pour ouvrir plusieurs instances, mais une seule par écran. Si vous ouvrez dans l’affichage là où c’est pas encore, Gedit ouvrira des fichiers dans Gedit qui existent maintenant dans cet affichage depuis le fichier ouvert.
Pour que vous puissiez faire en sorte que la 1ère instance de gedit soit sur Tous les espaces de travail, elle suit votre affichage actif. Ou travaillez sur chaque espace de travail avec chaque projet et chacun avec ses propres Gedit ouverts. Dans les raccourcis clavier, vous pouvez créer un nouveau raccourci pour basculer la fenêtre sur tous les espaces de travail.
OU il est possible de toujours l’ouvrir dans une nouvelle instance en utilisant la commande de raccourci dans Ouvrir avec .. gedit --new-window
Vous pouvez donc essayer dans les propriétés php ouvrir avec reset et mettre une nouvelle ouverture avec juste Gedit
en utilisant gedit --help-all
ull voir une autre option d’ouverture avec gedit.
Et vous pouvez également essayer de supprimer gedit avec tous les fichiers de configuration et de l’installer proprement en utilisant Sudo apt-get purge gedit && Sudo apt-get clean && Sudo apt-get update && Sudo apt-get install gedit
MISE À JOUR: J'ai été capable de reproduire. Lorsque vous déplacez la fenêtre un peu hors de l'écran, puis que vous ouvrez un fichier, celui-ci s'ouvre dans une nouvelle fenêtre. Il pense en quelque sorte que c'est dans un autre affichage.
Cela a commencé à m'arriver. Je n'ai trouvé aucun fichier de configuration pertinent et j'ai même essayé de purger + nettoyer. Enfin trouvé ce que c'était. La fenêtre de Gedit s’ouvrait telle qu’elle semblait avoir été maximisée, mais ce n’était pas le cas. J'ai appuyé sur le bouton d'agrandissement de la fenêtre et le problème a été résolu! Notez que la fenêtre n'a pas changé de taille, seuls les coins sont passés du rond au carré. Il semble que cela doit être un bug dans l'algorithme @ fossfreedom décrit ci-dessus.
Remarque: lorsque vous fermez la fenêtre, l'état d'agrandissement/minimisation doit être stocké quelque part dans une configuration utilisateur. Cet état survit à purge + clean, et il ne figure pas non plus dans la config Gedit par utilisateur.