Ärgerliches Verhalten in Geany, wenn Sie eine Datei mit mehreren geöffneten Geany-Fenstern öffnen

3036
Max Williams

Wenn Sie in Gedit mehrere Gedit-Fenster geöffnet haben und dann eine Datei öffnen, wählt Gedit diese im zuletzt aktiven Fenster. Ich mag dieses Verhalten, ich denke es ist intuitiv.

In Geany, das ich sonst lieber als Gedit habe, scheint die Regel, in der die Instanz verwendet werden soll, die "älteste" zu sein. Was noch schlimmer ist: Wenn diese Instanz auf einem anderen Desktop geöffnet ist, wird diese Instanz auch auf Ihren aktuellen Desktop verschoben. Dies macht es effektiv unmöglich, mit mehreren Geany-Fenstern zu arbeiten, was wirklich ärgerlich ist.

Kennt jemand eine Möglichkeit, wie ich Geany-Dateien in der zuletzt aktiven (dh "betrachteten") Instanz von Geany öffnen kann? Ich verwende die aktuellste Version (0.21).

0
Ich habe Geany nie mit mehr als einem offenen Fenster gesehen. Ignacio Vazquez-Abrams vor 12 Jahren 0
In der neuesten Version können Sie mit der rechten Maustaste auf eine Registerkarte klicken und "In neuem Fenster öffnen" wählen. (wieder ärgerlich, es öffnet sich im ursprünglichen Fenster und öffnet es in einem neuen Fenster) Max Williams vor 12 Jahren 0

3 Antworten auf die Frage

3
Rikard

Bei der Verwendung von Geany 1.22 gibt es möglicherweise eine Problemumgehung, die dem, was Sie tun möchten, sehr nahe kommt.

Entsprechend dem Handbuch auf http://www.geany.org/manual/current/#command-line-options können Sie verwenden

--socket-file 

um die Socket-Datei anzugeben, mit der mit der Geany-Instanz kommuniziert werden soll.

Wenn Sie Folgendes in ein Skript einfügen, erhalten Sie eine Instanz pro Arbeitsbereich:

#!/bin/bash geany --socket-file=/tmp/geany-sock-$(xprop -root _NET_CURRENT_DESKTOP | awk '') $ 

(Es gibt auch die Befehlszeilenargumente an geany weiter).

Das ist toll. Ich bevorzuge es, in meiner .XXXXrc-Datei eine "Edit" -Funktion zu definieren und auch '&' anzuheften, um es im Hintergrund laufen zu lassen. troutinator vor 11 Jahren 0
Dies führte dazu, dass unendlich viele magere Prozesse zum Laichen führten. shrx vor 8 Jahren 0
0

Leider gibt es keine Möglichkeit, dieses Verhalten zu konfigurieren. Vor einigen Monaten habe ich einige Geany Plugin-Entwickler dazu befragt, und es scheint die einzige Möglichkeit, dies zu ändern, indem Sie den Code selbst schreiben und ihnen einen Patch senden.

0
Dominic108

Dies hätte vielleicht ein Kommentar zu der Antwort von Rikard sein sollen, aber ich werde es als alternative Antwort präsentieren. Ich habe bemerkt, dass seine Lösung den Computer (mit Ubuntu 14.04) nicht anspricht, wenn wir ihn verwenden, wenn das Originalskript (ohne die Socket-Option) bereits ausgeführt wird. Ich hatte das Gefühl, es wäre gut, wenn das Skript in diesem Fall beendet wird. Wenn Sie dem Skript einen Namen geben geany, legen Sie es in ein Verzeichnis vor /usr/binoder an einem anderen Ort als das Original in PATH ab.

#!/bin/bash for pid in $(pgrep "geany") do cmd=$(ps -p $pid -o cmd) if [[ "$cmd" = *"/usr/bin/geany"* ]] && [[ "$cmd" != *"socket"* ]] ; then echo original geany already running exit fi done /usr/bin/geany --socket-file=/tmp/geany-sock-$(xprop -root _NET_CURRENT_DESKTOP | awk '') $