Comment forcer gedit à ouvrir une nouvelle fenêtre indépendamment des fenêtres gedit existantes chaque fois qu'un fichier texte est double-cliqué sur un bureau Gnome de Debian 8?

9

Comment geditforcer l'ouverture d'une nouvelle fenêtre indépendamment des fenêtres gedit existantes lorsqu'un fichier texte (.txt) est double-cliqué sur un bureau Gnome de Debian 8, Jessie?

Supposons que a.txt soit déjà ouvert dans une fenêtre gedit et que b.txt soit double-cliqué sur un bureau Gnome de Debian 8 Jessie. Malheureusement, par défaut, b.txt sera ouvert dans un onglet dans la même fenêtre que a.txt.

Cependant, je veux b.txtêtre ouvert dans une nouvelle fenêtre de gedit afin qu'il y ait deux fenêtres - la fenêtre existante pour a.txt et une nouvelle fenêtre pour b.txt.

Si Gnome a invoqué gedit avec l'option "-s" comme dans

gedit -s b.txt

puis b.txtserait ouvert dans une nouvelle fenêtre, tandis que les séjours de A.txt dans sa fenêtre existante.

Cependant, par défaut, Gnome semble invoquer gedit sans l'option "-s".

Le fichier de configuration

/usr/share/applications/org.gnome.gedit.desktop

contient la directive d'exécution

Exec=gedit %U

Donc, je l'ai changé en

Exec=gedit -s %U

par les commandes suivantes et redémarré l'ordinateur.

cd /usr/share/applications
su # similar to sudo
mv org.gnome.gedit.desktop org.gnome.gedit.desktop.bak
perl -pe 's/Exec=gedit %U/Exec=gedit -s %U/' org.gnome.gedit.desktop.bak > org.gnome.gedit.desktop
diff org.gnome.gedit.desktop org.gnome.gedit.desktop.bak

Cependant, cette méthode a échoué. Le b.txt s'ouvre toujours dans un onglet dans la même fenêtre que le a.txt. Je suis coincé. J'ai besoin de ton aide.

Le mode par défaut de gedit est "fenêtre unique, onglets multiples". Je veux le mode "fenêtres multiples".

Soit dit en passant, la méthode inutile suivante transforme gedit en mode "fenêtre unique, sans onglet", ce qui n'est pas ce que je veux.

gsettings set org.gnome.gedit.preferences.ui show-tabs-mode 'never'

Avec cette méthode "gsettings", gedit ferme automatiquement a.txt et réutilise la fenêtre existante de a.txt pour y ouvrir b.txt chaque fois que b.txt est double-cliqué sur un bureau. Il s'agit donc du mode "fenêtre unique, sans onglet" (par opposition à "fenêtres multiples").

(Soit dit en passant, la valeur par défaut pour "show-tabs-mode" est 'auto'.)

i7pj3qnuz
la source
@don Je ne connais pas très bien le lanceur. Quelles sont les commandes pour appeler le lanceur séparé?
i7pj3qnuz

Réponses:

5

La raison pour laquelle votre modification de la Execclé dans le fichier .desktop n'a pas fonctionné est que gedit est activé par DBus. Cela signifie qu'il est lancé via le démon DBus de votre session, puis fournit une interface DBus commune pour ces programmes activables afin de spécifier les fichiers à ouvrir. Vous pouvez empêcher cela en changeant la DBusActivatableclé en false.

En outre, il est préférable de créer une copie du fichier .desktop que vous souhaitez modifier dans votre répertoire personnel et de l'utiliser pour remplacer le fichier à l'échelle du système plutôt que pour modifier le fichier à l'échelle du système directement. De cette façon, le système ne sera pas écrasé lors des mises à jour du package de distribution. Pour ce faire, copiez simplement /usr/share/applications/org.gnome.gedit.desktopsur ~/.local/share/applications/org.gnome.gedit.desktop. Les fichiers de ce chemin remplaceront les fichiers du même nom du répertoire à l'échelle du système.

Ensuite, il existe également une différence importante entre les deux indicateurs possibles utilisés pour ouvrir une nouvelle fenêtre: --new-windowou -s. Les deux entraîneront l'ouverture des fichiers dans une nouvelle fenêtre, mais avec -schaque fenêtre appartiendra également à son propre processus. Lorsque vous utilisez --new-windowtoutes les fenêtres, partagez le même processus gedit.

Et enfin pour vous assurer que cela fonctionne également si vous sélectionnez plusieurs fichiers dans votre gestionnaire de fichiers et les ouvrez, vous avez besoin d'une autre modification de la Execclé. Les %Umoyens que plusieurs URL sont autorisés comme arguments pour cette commande, ce qui signifie que le gestionnaire de fichiers commencerait comme ceci: gedit --new-window file1.txt file2.txt. Il en résulte une seule nouvelle fenêtre avec deux onglets. Si vous changez ceci en %umaintenant, cela indique au gestionnaire de fichiers, que l'application n'accepte qu'une seule URL comme argument et la fait donc exécuter la commande plusieurs fois, chaque fois avec un fichier différent comme argument. Pour plus de détails à ce sujet, voir la spécification d'entrée de bureau freedesktop .

Sébastien
la source
0

D'après la réponse de Sébastien , procédez comme suit:

  1. Faites une copie locale des configurations gedit. Les modifications que vous apportez s'appliquent alors uniquement à l'utilisateur actuel.

    cp /usr/share/applications/org.gnome.gedit.desktop ~ / .local / share / applications / geditNewWin.desktop

  2. Dans le fichier ~ / .local / share / applications / geditNewWin.desktop: accédez à toutes les EXEC=lignes (il y en a quelques-unes) et définissez-les sur Exec=gedit -s %U. Changement supplémentaire Name=Text Editoren Name=Text Editor (new window).

  3. Dans votre gestionnaire de fichiers Nautilus (gestionnaire de fichiers standard dans Gnome, souvent appelé simplement 'Files' ou Gnome Files ) associez les types de fichiers (.txt, .csv, ...) à votre application nouvellement créée:

    • faites un clic droit sur un fichier .txt (ou sur le type de fichier que vous voulez)
    • cliquez sur 'Propriétés'
    • choisissez l'onglet 'Ouvrir avec'
    • sélectionnez 'Editeur de texte (nouvelle fenêtre)' dans la liste
    • cliquez sur «Définir par défaut»
Markus Dutschke
la source