Ich habe eine Anwendung mit mehreren Fenstern. Wie kann ich schnell alle Fenster dieser Anwendung in den Vordergrund bringen?
Wenn ich mit dem Scrollrad durch die Anwendungen scrolle, wird nur ein Fenster angezeigt. Wenn Sie zum nächsten Fenster wechseln, wird das letzte Fenster wieder in den Hintergrund gerückt.
Wenn ich auf das Anwendungssymbol klicke, erhalte ich eine Vollbildübersicht aller Fenster. Ich muss jedes Fenster manuell auswählen und die Maus mehrmals über die Hälfte des Bildschirms bewegen.
Meine bisher beste Lösung besteht darin, alle Fenster zu minimieren ( Ctrl+ Super+ D) und dann die Fenster meiner Anwendung mit dem Scrollrad anzuzeigen.
Gibt es eine bessere Lösung?
Antworten:
BEARBEITEN -neue Antwort-
Die Antwort (en) unten sind immer noch gültig, und daher die vorgeschlagenen Optionen. Aufgrund der fortwährenden Erkenntnisse habe ich diese Option hinzugefügt, um den folgenden Indikator zu verwenden, der wahrscheinlich die eleganteste Lösung ist.
Als solches sollte es wahrscheinlich Option 5 ersetzen (unter Verwendung einer .desktop-Datei).
Wählen Sie einfach die Anwendung aus der Liste aus, und alle Fenster der entsprechenden Anwendung (im aktuellen Ansichtsfenster vorhanden) werden geöffnet:
Wie benutzt man
von ppa:
... oder manuell:
Der Indikator benötigt
wmctrl
Kopieren Sie den Indikator in eine leere Datei und speichern Sie ihn als
raise_apps.py
Kopieren Sie das Bild unten und speichern Sie es genau mit dem Namen
raise.png
in ein und demselben Verzeichnis wie der Indikator.Dann führen Sie es einfach mit dem Befehl:
python3 /path/to/raise_apps.py
Hinzufügen, wenn Sie Anwendungen starten möchten:
ALTE ANTWORT:
Über die Frage
Mit den richtigen Tools ist es nicht sehr kompliziert, "nur" alle Fenster einer Anwendung zu öffnen. Es ist etwas komplizierter sicherzustellen, dass nur die Fenster des aktuellen Ansichtsfensters geöffnet sind. Die eigentliche Herausforderung besteht jedoch darin, einen bequemen Weg zu finden, um die Aktion dem Benutzer zur Verfügung zu stellen.
Nachfolgend fünf Optionen, um das zu erledigen und zu zeigen, wie es gemacht werden kann. Alle Optionen können jetzt verwendet werden. Die letzte Option ist jedoch eher experimentell. es funktioniert gut, hat aber ein paar kleinere kosmetische Nachteile, wie in der Beschreibung der Option erläutert. Ich habe es trotzdem als Konzept hinzugefügt .
Das automatische Verbreiten der Fenster in nicht überlappender Weise, wie in einem Kommentar vorgeschlagen, scheint mir keine praktische Idee zu sein. Wenn Sie in einer (anwendungsspezifisch) gruppierten Fensterkonfiguration arbeiten, ordnet das Skript möglicherweise Fenster ungewollt neu an.
Wie benutzt man
Für alle Optionen müssen Sie:
installieren,
wmctrl
wenn es noch nicht auf Ihrem System ist:erstelle, falls noch nicht vorhanden, das Verzeichnis:
(Erklärung: Das Verzeichnis
~/bin
befindet sich in $ PATH, so dass Sie ausführbare Dateien nach ihrem Namen ausführen können.)Kopieren Sie das Skript entsprechend der Option, fügen Sie es in eine leere Datei ein, speichern Sie es unter
raise_app
(keine Erweiterung)~/bin
und machen Sie es ausführbarIn den separaten Optionen werden mögliche zusätzliche Schritte erläutert.
Option 1: Wählen Sie die Anwendung aus, indem Sie ein oder mehrere Zeichen eingeben
zenity
Fenster angezeigtDadurch werden alle Fenster der entsprechenden Anwendung (im aktuellen Ansichtsfenster) in den Vordergrund gerückt.
Heben Sie alle
gnome-terminal
Fenster im aktuellen Ansichtsfenster an:Wie benutzt man:
Führen Sie es mit dem folgenden Befehl aus:
Wenn alles funktioniert, fügen Sie es einer Tastenkombination Ihrer Wahl hinzu: Wählen Sie: Systemeinstellungen> "Tastatur"> "Tastenkombinationen"> "Benutzerdefinierte Tastenkombinationen". Klicken Sie auf das "+" und fügen Sie den Befehl hinzu
Das Drehbuch:
Option 2: Anwendungen durchlaufen und Fenster mit einer Tastenkombination öffnen:
Angenommen, ich habe das folgende Skript unter einer Tastenkombination Alt+ 1. Ich habe mehrere Fenster geöffnet von:
Der momentane Zustand:
Ich drücke einmal Alt+ 1, alle
nautilus
Fenster werden geöffnet:Ich drücke erneut Alt+ 1, alle
firefox
Fenster werden geöffnet:Ich drücke erneut Alt+ 1, alle
gnome-terminal
Fenster werden wieder geöffnet, der Zyklus beginnt von vorne:Wie benutzt man
Fügen Sie es einer Tastenkombination Ihrer Wahl hinzu: Wählen Sie: Systemeinstellungen> "Tastatur"> "Verknüpfungen"> "Benutzerdefinierte Verknüpfungen". Klicken Sie auf das "+" und fügen Sie den Befehl hinzu
Wechseln Sie dann mit Ihrer Tastenkombination durch Ihre Anwendungen mit gruppierten Anwendungsfenstern.
Das Drehbuch:
Option 3: Drücken Sie die Tastenkombination und klicken Sie auf das Startsymbol -oder- das Anwendungsfenster, um alle Fenster im aktuellen Ansichtsfenster zu öffnen
Dies ist wahrscheinlich die Option, die der Beschreibung in Frage / Kommentar am nächsten kommt.
Angenommen, ich habe einen unordentlichen Desktop mit drei
nautilus
Fenstern, die unter anderen Fenstern verborgen sind.So heben Sie alle Nautilus-Fenster an (Beispielverknüpfung: Alt+ 1):
Innerhalb von 3 Sekunden entweder:
Klicken Sie im Launcher auf das Anwendungssymbol
oder:
Klicken Sie auf eines der Fenster der Anwendung
Ergebnis:
Wie benutzt man:
Führen Sie es mit dem folgenden Befehl aus:
Wenn alles funktioniert, fügen Sie es einer Tastenkombination Ihrer Wahl hinzu: Wählen Sie: Systemeinstellungen> "Tastatur"> "Tastenkombinationen"> "Benutzerdefinierte Tastenkombinationen". Klicken Sie auf das "+" und fügen Sie den Befehl hinzu
Dann:
Drücken Sie Ihre Tastenkombination und innerhalb von 3 Sekunden entweder:
Das Drehbuch
Option 4: Eine Tastenkombination ruft eine Optionsliste auf, in der die Anzahl der Fenster pro Anwendung im aktuellen Ansichtsfenster angezeigt wird
Dieser erwies sich als praktischer, als ich angenommen hatte:
Durch Drücken der (erneuten Beispiel-) Tastenkombination Alt+ wird 1ein
zenity
Fenster aufgerufen , in dem alle Anwendungen und die Anzahl ihrer Fenster im aktuellen Ansichtsfenster aufgelistet sind:Durch einfaches Drücken der Pfeiltasten ▴oder gelangen ▾Sie zur richtigen Option. Drücken Sie Enterund alle Fenster der gewählten Anwendung werden geöffnet.
Wie benutzt man:
Führen Sie es mit dem folgenden Befehl aus:
Wenn alles funktioniert, fügen Sie es einer Tastenkombination Ihrer Wahl hinzu: Wählen Sie: Systemeinstellungen> "Tastatur"> "Tastenkombinationen"> "Benutzerdefinierte Tastenkombinationen". Klicken Sie auf das "+" und fügen Sie den Befehl hinzu
Das Drehbuch
Option 5: Öffnen Sie die Fenster ausgeführter Anwendungen über ein Startsymbol
Diese Option besteht aus einem Startsymbol, in dem sich die derzeit ausgeführten Anwendungen in einer Schnellliste befinden. Wenn Sie eines auswählen, werden alle Fenster der Anwendungen geöffnet.
Der Starter wird automatisch aktualisiert, wenn sich die Liste der ausgeführten Anwendungen (im aktuellen Ansichtsfenster) ändert. Die Schnellliste zeigt eine andere Liste in anderen Ansichtsfenstern an, in denen Fenster anderer Anwendungen geöffnet sind (die Anpassung dauert 1-2 Sekunden).
Wie bereits erwähnt, ist diese Option, obwohl sie voll funktionsfähig ist, als Konzept gedacht . Es hat ein paar kleinere kosmetische Nachteile, wie es ist. Das wichtigste:
Darüber hinaus ist das Setup etwas komplizierter (obwohl im Folgenden ausführlich erläutert):
Wie benutzt man
Nachfolgend finden Sie:
zwei Skripte / ein Icon / eine
.desktop
Dateiraise_app
in~/bin
Speichern Sie das unten stehende Symbol (Rechtsklick, Speichern unter) unter
raise.png
Kopieren Sie die
.desktop
Datei in eine leere Datei und bearbeiten Sie die Zeileden realen Pfad zum Symbol (Pfade mit Leerzeichen zwischen Anführungszeichen)
speichern Sie es als
raise.desktop
in~/.local/share/applications
Ziehen Sie die
.desktop
Datei in den Launcher, um sie hinzuzufügenupdate_apps
in~/bin
, machen es ausführbar.Fügen Sie Ihren Startanwendungen den folgenden Befehl hinzu (Dash> Startanwendungen> Hinzufügen):
Das erste Drehbuch
Das zweite Drehbuch
Die .desktop-Datei
Kurze Erklärung
Alle oben genannten Lösungen werden verwendet
wmctrl
, um mit demwmctrl -lpG
Befehl eine Fensterliste zu erstellen . Dieser Befehl erzeugt Zeilen, die wie folgt aussehen:Diese Zeilen umfassen:
xrandr
)Die pid wird in der Ausgabe von nachgeschlagen
ps -u <username>
, um eine "benutzerlesbare" Identifikation (Name) der Anwendung zu erhalten.So können wir den Anwendungen Fenster zuweisen. Anschließend können wir
for
mit dem Befehl die Fenster einer bestimmten Anwendung in einer Schleife öffnenwmctrl -ia
.In Option 3
startet das Skript eine Warteschleife von 3 Sekunden, wobei der
xprop -root
Befehl wiederholt verwendet wird, um festzustellen, ob sich am vordersten Fenster etwas geändert hat. Dies geschieht, wenn der Benutzer entweder auf ein Startsymbol klickt, um das Fenster einer Anwendung zu öffnen, oder direkt auf ein Fenster klickt. In diesem Fall unterbricht die while-Schleife die "neue" vorderste Anwendung, schlägt sie nach und öffnet anschließend alle anderen Fenster dieser Anwendung.quelle
Option 2
Wenn ein Anwendungsfenster nach der Verwendung des Skripts fokussiert ist (das nicht maximiert ist) und ich auf ein anderes Fenster klicke, das "unten" sichtbar ist, erhält die Anwendung unten nicht den Fokus.Es gibt eine Super+ WVerknüpfung, die die Expos aller aktuell geöffneten Fenster anzeigt, aber auch andere Anwendungen enthält. Dies ist standardmäßig aktiviert und erfordert keine Änderungen. Daher ist dies möglicherweise die einfachste verfügbare Option.
Unter anderem können Sie mit den Tasten Ctrl+ Super+ Left/ die Fenster in der rechten und linken Bildschirmhälfte positionieren und mit der RightTaste Alt + ~ (Tilde, die Taste neben der ersten) zwischen ihnen wechseln.
quelle
Wenn Sie Alt + Tab drücken, um durch Anwendungen zu blättern, und eine mit mehreren Fenstern angezeigt wird, halten Sie einfach die Alt-Taste gedrückt, und nach etwa einer vollen Sekunde wird das Symbol durch eine Ansicht aller Fenster für diese Anwendung ersetzt.
Das mag sein oder auch nicht, wonach Sie suchen, aber es funktioniert für mich und ist viel einfacher, also dachte ich mir, ich würde die Option teilen!
quelle
Ich habe @ JacobVlijms raise_apps.py-Skript verwendet und einige Verbesserungen vorgenommen, einschließlich der Verbesserung der Robustheit.
Insbesondere hatte ich festgestellt, dass das Skript von @ JacobVlijm nach ein oder zwei Tagen nicht mehr funktioniert, und ich musste das Skript manuell neu starten, damit es wieder funktioniert. Rückblickend schätze ich, dass die zahlreichen Aufrufe von xrandr letztendlich zu Problemen führen.
Jedenfalls habe ich seinen Code angepasst und die Abfragefrequenz von 5 Sekunden auf 1 Sekunde erhöht, da er sowieso nicht viel CPU verbraucht und robuster gemacht hat. Ich kann es normalerweise Tage / Wochen ohne Probleme laufen lassen.
Eine Einschränkung ist, dass ich xrandr nur einmal während des Startvorgangs aufrufe, um die Bildschirmauflösung zu ermitteln. Wenn Sie also Ihre Bildschirmauflösung ändern (z. B. von 1920 x 1080 auf eine andere Auflösung), möchten Sie raise-apps.py wahrscheinlich manuell neu starten, damit die neue Auflösung übernommen wird. Ich persönlich ändere meine Bildschirmauflösung nie, daher ist dies für mich kein Problem. Darüber hinaus habe ich guten Grund zu der Annahme, dass zu viele Aufrufe von xrandr dazu geführt haben, dass die @ JacobVlijm-Version des Skripts nach ein oder zwei Tagen nicht mehr funktioniert. Daher würde ich nachdrücklich empfehlen, die zahlreichen Aufrufe von xrandr nicht einfach wieder zu verwenden.
Übrigens müssen Sie das Bild raise.png im Verzeichnis / usr / local / icons / ablegen. Wenn Sie raise.png in einem anderen Verzeichnis ablegen möchten, nehmen Sie die entsprechenden Änderungen am Skript vor, damit das Skript die Image-Datei finden kann.
Ubuntu wird hoffentlich diese Art der "Erhöhung aller Fenster" -Funktionalität früher als später in sein System integrieren, da dies sehr nützlich ist:
quelle