Wie kann man gedit zwingen, ein neues Fenster unabhängig von vorhandenen gedit-Fenstern zu öffnen, wenn auf einem Gnome-Desktop von Debian 8 auf eine Textdatei doppelklickt wird?

9

Wie kann geditgezwungen werden, ein neues Fenster unabhängig von vorhandenen gedit-Fenstern zu öffnen, wenn eine Textdatei (.txt) auf einem Gnome-Desktop von Debian 8, Jessie, doppelklickt?

Angenommen, a.txt ist bereits in einem gedit-Fenster geöffnet und b.txt wird auf einem Gnome-Desktop von Debian 8 Jessie doppelt angeklickt. Dann wird b.txt leider standardmäßig in einer Registerkarte im selben Fenster wie a.txt geöffnet.

Ich möchte b.txtjedoch in einem neuen Fenster von gedit geöffnet werden, damit es zwei Fenster gibt - das vorhandene Fenster für a.txt und ein neues Fenster für b.txt.

Wenn Gnome gedit mit der Option "-s" wie in aufgerufen hat

gedit -s b.txt

dann b.txtwürde in einem neuen Fenster geöffnet, während a.txt in seinem vorhandenen Fenster bleibt.

Standardmäßig scheint Gnome jedoch gedit ohne die Option "-s" aufzurufen.

Die Konfigurationsdatei

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

enthält die Ausführungsanweisung

Exec=gedit %U

Also habe ich es geändert in

Exec=gedit -s %U

durch die folgenden Befehle und startete den Computer neu.

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

Diese Methode ist jedoch fehlgeschlagen. Die b.txt wird weiterhin in einer Registerkarte im selben Fenster wie a.txt geöffnet. Ich stecke fest. Ich brauche deine Hilfe.

Der Standardmodus von gedit ist "einzelnes Fenster, mehrere Registerkarten". Ich möchte den Modus "Mehrere Fenster".

Übrigens verwandelt die folgende nutzlose Methode gedit in den Modus "Einzelfenster, keine Registerkarte", was nicht das ist, was ich will.

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

Mit dieser "gsettings" -Methode schließt gedit automatisch a.txt und verwendet das vorhandene Fenster von a.txt erneut, um b.txt darin zu öffnen, wenn b.txt auf einem Desktop doppelklickt. Somit ist es der Modus "Einzelfenster, keine Registerkarte" (im Gegensatz zu "Mehrfachfenster").

(Der Standardwert für "show-tabs-mode" ist übrigens "auto".)

i7pj3qnuz
quelle
@don Ich bin nicht sehr vertraut mit Launcher. Mit welchen Befehlen kann der separate Launcher aufgerufen werden?
i7pj3qnuz

Antworten:

5

Der Grund, warum Ihre Änderung des ExecSchlüssels in der .desktop-Datei nicht funktioniert hat, ist, dass gedit DBus-aktiviert ist. Dies bedeutet, dass es über den DBus-Daemon Ihrer Sitzung gestartet wird und dann eine gemeinsame DBus-Schnittstelle für solche aktivierbaren Programme bereitstellt, um die zu öffnenden Dateien anzugeben. Sie können dies verhindern, indem Sie den DBusActivatableSchlüssel auf ändern false.

Außerdem ist es viel besser, eine Kopie der .desktop-Datei, die Sie ändern möchten, in Ihrem Home-Verzeichnis zu erstellen und diese zum Überschreiben der systemweiten Datei zu verwenden, als die systemweite Datei direkt zu ändern. Auf diese Weise wird das System bei Updates von Distributionspaketen nicht überschrieben. Kopieren Sie /usr/share/applications/org.gnome.gedit.desktopdazu einfach nach ~/.local/share/applications/org.gnome.gedit.desktop. Dateien in diesem Pfad überschreiben Dateien mit demselben Namen aus dem systemweiten Verzeichnis.

Dann gibt es auch einen wichtigen Unterschied zwischen den beiden möglichen Flags, die zum Öffnen eines neuen Fensters verwendet werden: --new-windowoder -s. Beides führt dazu, dass die Dateien in einem neuen Fenster geöffnet werden, aber -sjedes Fenster gehört auch zu einem eigenen Prozess. Wenn Sie --new-windowalle Fenster verwenden, verwenden Sie denselben gedit-Prozess.

Und um sicherzustellen, dass dies auch funktioniert, wenn Sie mehrere Dateien in Ihrem Dateimanager auswählen und öffnen, müssen Sie den ExecSchlüssel erneut ändern. Die %Ubedeutet , dass mehrere URLs werden als Argumente für diesen Befehl erlaubt, was bedeutet , dass der Dateimanager es so beginnen würde: gedit --new-window file1.txt file2.txt. Dies führt zu einem einzelnen neuen Fenster mit zwei Registerkarten. Wenn Sie dies auf " %uJetzt" ändern , wird dem Dateimanager mitgeteilt, dass die Anwendung nur eine einzelne URL als Argument akzeptiert und den Befehl daher mehrmals ausführt, jedes Mal mit einer anderen Datei als Argument. Weitere Informationen hierzu finden Sie in der Freedesktop-Desktop-Eintragsspezifikation .

Sebastian
quelle
0

Gehen Sie basierend auf Sebastians Antwort wie folgt vor:

  1. Erstellen Sie eine lokale Kopie der gedit-Konfigurationen. Die Änderungen, die Sie vornehmen, gelten dann nur für den aktuellen Benutzer.

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

  2. In der Datei ~ / .local / share / applications / geditNewWin.desktop: Gehen Sie zu allen EXEC=Zeilen (es gibt einige) und setzen Sie sie auf Exec=gedit -s %U. Weitere Änderung Name=Text Editorzu Name=Text Editor (new window).

  3. Verknüpfen Sie in Ihrem Nautilus-Dateimanager (Standard-Dateimanager in Gnome, oft nur als "Dateien" oder " Gnome-Dateien" bezeichnet ) die Dateitypen (.txt, .csv, ...) mit Ihrer neu erstellten Anwendung:

    • Klicken Sie mit der rechten Maustaste auf eine TXT-Datei (oder einen beliebigen Dateityp).
    • Klicken Sie auf "Eigenschaften".
    • Wählen Sie die Registerkarte "Öffnen mit".
    • Wählen Sie 'Texteditor (neues Fenster)' aus der Liste
    • Klicken Sie auf "Als Standard festlegen".
Markus Dutschke
quelle