Ich habe zwei Fenster, A und B. Ist es möglich, zwei Fenster irgendwie miteinander zu verbinden, so dass das Umschalten auf A auch B oder das Umschalten auf B auch A auslöst?
Ich verstehe, dass die Verwendung mehrerer Arbeitsbereiche eine alternative Option ist, habe mich aber gefragt, ob dies auch möglich ist?
command-line
scripts
shortcut-keys
window-manager
window
Simon Tong
quelle
quelle
Antworten:
Einführung
Das folgende Skript ermöglicht die Auswahl von zwei Fenstern. Während beide Fenster geöffnet sind, werden beide Fenster geöffnet, wenn der Benutzer eines der beiden Fenster fokussiert. Wenn man beispielsweise die Witwen A und B verbindet, werden beide durch Hexen mit A oder B über andere Witwen erhoben.
Um das Skript zu stoppen, können Sie es
killall link_windows.py
im Terminal verwenden oder eines der Fenster schließen und erneut öffnen. Sie können die Ausführung auch abbrechen, indem Sie in Xeinem der Popup-Dialogfelder zur Fensterauswahl auf die Schaltfläche "Schließen" klicken.Mögliche Verbesserungen:
Verwendung
Führen Sie das Skript wie folgt aus:
Das Skript ist mit Python 3 kompatibel und kann daher auch als ausgeführt werden
Es gibt zwei Befehlszeilenoptionen:
--quiet
oder-q
ermöglicht das Stummschalten der GUI-Fenster. Mit dieser Option können Sie einfach mit der Maus auf zwei beliebige Fenster klicken, und das Skript beginnt, diese zu verknüpfen.--help
oder-h
druckt die Verwendungs- und Beschreibungsinformationen.Die
-h
Option erzeugt die folgenden Informationen:Zusätzliche technische Informationen können über angezeigt werden
pydoc ./link_windows.py
. Dies./
bedeutet, dass Sie sich im selben Verzeichnis wie das Skript befinden müssen.Einfacher Verwendungsprozess für zwei Fenster:
Ein Popup wird angezeigt, in dem Sie aufgefordert werden, ein Fenster Nr. 1 auszuwählen, zu drücken OKoder zu drücken Enter. Der Mauszeiger wird zu einem Kreuz. Klicken Sie auf eines der Fenster, die Sie verknüpfen möchten.
Ein zweites Popup wird angezeigt, in dem Sie aufgefordert werden, Fenster 2 auszuwählen, zu drücken OKoder zu drücken Enter. Der Mauszeiger wird wieder zu einem Kreuz. Klicken Sie auf das andere Fenster, das Sie verknüpfen möchten. Danach beginnt die Ausführung.
Wenn Sie eines der beiden Fenster fokussieren, hebt das Skript das andere Fenster an, stellt jedoch den Fokus wieder auf das ursprünglich ausgewählte (Hinweis - mit einer Verzögerung von einer Viertelsekunde für beste Leistung), wodurch das Gefühl entsteht, dass Fenster miteinander verbunden sind.
Wenn Sie beide Male dasselbe Fenster auswählen, wird das Skript beendet. Wenn Sie zu irgendeinem Zeitpunkt auf die Schaltfläche zum Schließen des Popup-Dialogfelds klicken, wird das Skript beendet.
Skriptquelle
Auch als GitHub Gist erhältlich
Anmerkungen:
Gtk-Message: GtkDialog mapped without a transient parent. This is discouraged.
Diese können ignoriert werden.quelle
time.sleep
Kann ich das Bit zwischen dem Umschalten auf Null setzen? Gibt es einen Grund für die Verzögerung?# time.sleep(0.25)
und es wird nicht ausgeführt. Der Grund dafür ist, sicherzustellen, dass jedes Fenster richtig angehoben wird. Nach meiner Erfahrung in der Vergangenheit musste ich Verzögerungen für den Betrieb unter Windows haben. Ich würde denken, dass eine Verzögerung von einer Viertelsekunde nicht so viel ist. Lassen Sie mich dem Skript nur noch eine Zeile hinzufügen, die es beschleunigen könnte. OK ?Erhöhen Sie eine beliebige Anzahl von Fenstern als eins
Mit der folgenden Lösung können Sie eine beliebige Kombination aus zwei, drei oder mehr Fenstern auswählen , die kombiniert und mit einer Tastenkombination als eins angezeigt werden sollen.
Das Skript arbeitet mit drei Argumenten:
um das aktive Fenster zur Gruppe hinzuzufügen
um die eingestellte Gruppe zu erhöhen
Um die Gruppe zu löschen, können Sie eine neue Gruppe definieren
Das Skript
Wie benutzt man
Das Skript benötigt
wmctrl
undxdotool
:groupwindows.py
Testen Sie das Skript: Öffnen Sie zwei Terminalfenster und führen Sie den folgenden Befehl aus:
in beiden. Decken Sie sie mit anderen Fenstern ab (oder minimieren Sie sie). Öffnen Sie ein drittes Terminalfenster und führen Sie den folgenden Befehl aus:
Die ersten beiden Fenster werden als eins angehoben.
Wenn alles einwandfrei funktioniert, erstellen Sie drei benutzerdefinierte Tastenkombinationen: Wählen Sie: Systemeinstellungen> "Tastatur"> "Tastenkombinationen"> "Benutzerdefinierte Tastenkombinationen". Klicken Sie auf das "+" und fügen Sie die folgenden Befehle zu drei separaten Verknüpfungen hinzu:
Auf meinem System habe ich verwendet:
Alt+ A, den Befehl ausführen:
... um der Gruppe ein Fenster hinzuzufügen.
Alt+ R, den Befehl ausführen:
... um die Gruppe zu erheben.
Alt+ C, den Befehl ausführen:
... um die Gruppe zu löschen
Erläuterung
Das Skript funktioniert ganz einfach:
add
das Skript mit dem Argument ausgeführt wird , speichert / fügt es die Fenster-ID des aktiven Fensters in eine versteckte Datei ein~/.windowlist
Wenn
raise
das Skript mit dem Argument ausgeführt wird , liest es die Datei und öffnet die Fenster in der Liste mit dem folgenden Befehl:clear
das Skript mit dem Argument ausgeführt wird , entfernt es die versteckte Datei~/.windowlist
.Anmerkungen
Mehr Flexibilität?
Wie bereits erwähnt, können Sie mit dem obigen Skript jederzeit Fenster zu den gruppierten Fenstern hinzufügen. In der folgenden Version können Sie auch jedes Fenster (jederzeit) aus der gruppierten Liste entfernen :
Das zusätzliche Argument zum Ausführen des Skripts lautet
delete
:löscht das aktive Fenster aus den gruppierten Fenstern. Um diesen Befehl auszuführen, habe ich auf meinem System Alt+ Dals Verknüpfung festgelegt.
quelle