Wie kann gedit
gezwungen 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.txt
jedoch 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.txt
wü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".)
Antworten:
Der Grund, warum Ihre Änderung des
Exec
Schlü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 denDBusActivatable
Schlüssel auf ändernfalse
.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.desktop
dazu 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-window
oder-s
. Beides führt dazu, dass die Dateien in einem neuen Fenster geöffnet werden, aber-s
jedes Fenster gehört auch zu einem eigenen Prozess. Wenn Sie--new-window
alle 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
Exec
Schlüssel erneut ändern. Die%U
bedeutet , 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 "%u
Jetzt" ä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 .quelle
Gehen Sie basierend auf Sebastians Antwort wie folgt vor:
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
In der Datei ~ / .local / share / applications / geditNewWin.desktop: Gehen Sie zu allen
EXEC=
Zeilen (es gibt einige) und setzen Sie sie aufExec=gedit -s %U
. Weitere ÄnderungName=Text Editor
zuName=Text Editor (new window)
.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:
quelle