Kann ich die Anwendung, die in einem Arbeitsbereich ausgeführt wird, in der Befehlszeile auf einen anderen umstellen? Ich benutze Ubuntu 10.04
UPDATE1 Gemäß den folgenden
Vorschlägen
wmctrl -l
0x02200003 -1 bond Bottom Expanded Edge Panel
0x02200049 -1 bond Top Expanded Edge Panel
0x02000020 0 bond x-nautilus-desktop
0x04e00004 0 bond bond@bond: ~
0x0482a380 0 bond OMG! Ubuntu! | wmctrl - Chromium
0x05000072 0 bond how to shift applications from workspace 1 to 2 using command - Ask Ubuntu - Stack Exchange - Google Chrome
jetzt, wenn ich tippe
wmctrl -r :OMG! Ubuntu! | wmctrl - Chromium: -t 2 No window was specified.
Also, wie man es richtig benutzt, was ist der Fehler oben?
UPDATE2
Ich habe es versucht
wmctrl -r 0x05000072 -t 2
Aber die Fenster hatten keine Wirkung und blieben im selben Arbeitsbereich.
command-line
workspaces
registrierter Nutzer
quelle
quelle
Antworten:
Wenn Sie einen kompatiblen Fenstermanager wie Metacity (Unity 2-d) verwenden, können Sie mit wmctrl ein Fenster auf einen anderen Desktop wechseln. Die Syntax lautet
wmctrl -r :ACTIVE: -t <DESKTOP>
. Sie können Ihren aktuellen Desktop auch mit ändernwmctrl -s <DESKTOP>
. Desktop-Nummern beginnen bei 0. In einer Zeile wäre dies:Wenn Sie ein anderes Fenster als das aktive auf einen anderen Desktop wechseln möchten, verwenden Sie Text aus dem Titel als Argument für -r. Zum Beispiel:
Alternativ können Sie
wmctrl -l
die verfügbaren Fenster auflisten und die ID-Nummer anstelle der speziellen Zeichenfolge an -r übergeben:ACTIVE:
. Wenn Sie eine ID übergeben, müssen Sie auch -i hinzufügen. Zum Beispiel:(wmctrl kann unter Ubuntu mit installiert werden
sudo apt-get install wmctrl
.) Derzeit scheint dies leider nicht mit Standard Unity zu funktionieren.quelle
wmctrl -r "Chromium" -t 1
in seiner Antwort als Skyblue-Erwähnungen verwenden können, solange Sie einen kompatiblen Fenstermanager wie Unity-2d verwenden.Hier ist ein Skript von mir, das implementiert, was Sie fragen: https://github.com/norswap/wmov/blob/master/wmov.sh
In der aktuellen Form kann es Fenster (ausgewählt durch Abgleichen einer Zeichenfolge ohne Berücksichtigung der Groß- und Kleinschreibung mit dem Titel der Teilzeichenfolge, wie bei der
wmctrl
-r
Option) an andere Desktops senden , entweder durch Auswahl einer expliziten Desktop-Nummer oder durch Angabe der Richtung des Desktops vom aktuellen Desktop.Zum Beispiel:
Es funktioniert tatsächlich wie in Desguas Beitrag beschrieben. Es bietet auch die Möglichkeit, Fenster an andere Arbeitsbereiche zu senden.
quelle
Wenn Sie compiz verwenden, schauen Sie hier im compiz-Wiki nach . Dort finden Sie mehrere Beispiele. Schauen Sie sich das "Put" -Plugin an.
Beispiel
quelle
Es ist möglich, dies zu tun
xdotool
, aber wenn Siecompiz
diese Lösung verwenden, ist sie möglicherweise nicht anwendbar. Denken Sie also bitte daran.Sie können ein bestimmtes Fenster (das aktive Fenster) in einen anderen Arbeitsbereich wechseln
Oder für ein Skript möchten Sie möglicherweise die Fenster eines bestimmten Programms auf einen bestimmten Arbeitsbereich umschalten mit:
Dieser Befehl sucht und findet die
firefox
Fenster und überträgt sie an Arbeitsbereich 1, wo sie minimiert angezeigt werden. Umfirefox
zum Standard-Desktop zurückzukehren, ersetzen Sie einfach die 1 durch eine 0 am Ende des Befehls. Um ein anderes Fenster an einen anderen Arbeitsbereich zu senden, ersetzen Sie es einfach durch einenfirefox
anderen Programmnamen.Es ist wichtig, dass Sie
%@
die vom--search
Parameter übergebenen Fenster so darstellen , als würden keine Fenster übertragen.Weitere Informationen finden Sie auf
man xdotool
den Ubuntu-Manpages online.quelle
Erstens ist der Doppelpunkt Teil des
:ACTIVE:
magischen Tokens, um das aktive Fenster anzuzeigen. Du willst es nicht normal. Zweitens müssen Sie Zeichenfolgen mit Leerzeichen zitieren.Sie können auch die Fenster-ID (die
0x...
am Anfang jeder Zeile steht) abrufen und diese verwenden, anstatt zu versuchen, den Titel zum Laufen zu bringen.quelle
xwininfo
das Fenster auszuführen und dann auf das gewünschte Fenster zu klicken.wmctrl -m
)wmctrl
nicht funktioniert. (Insbesondere muss es aufPropertyChange
Ereignisse imIndem Sie das Skript, das als Lösung für diese Frage angegeben ist , ein wenig ändern, "bringt" Folgendes ein bestimmtes Fenster in den aktuellen Arbeitsbereich (in compiz):
Wenn ein beliebiger Arbeitsbereich gewünscht wird, müssen Sie das entsprechende
$SCREEN_W
/ hinzufügen / entfernen$SCREEN_H
, so oft wie ein Arbeitsbereich ein Fenster vom Zielbereich entfernt ist.quelle
Versuchen:
lass mich erklären: in hilfe von wmctrl zeigt
wmctrl -d
kann alle Arbeitsbereiche auflisten, in meinem Computer wird nun wie folgt angezeigt:* bedeutet den aktuellen Arbeitsbereich
Übrigens,
wmctrl -l
um alle Fenster (die Sie bereits gekannt haben) aufzulisten, in meinem Computer sind sie jetzt:da der "DESK" die Nummer sein muss, benutze ich
grep “workspace name” | cut -d" " -f1
, um es zu bekommen.Wenn ich beispielsweise Firefox in den Arbeitsbereich "Code" verschieben möchte, kann ich Folgendes verwenden:
oder
aber
Arbeite mich nur einmal und ich weiß nicht warum!
quelle