Ich möchte in der Lage sein, ein vorhandenes Fenster mit einem skriptfähigen Befehl auf alle Desktops zu verschieben (zu pinnen), anstatt über das Fenstermenü.
wmctrl -r <WIN> -t <DESK>
verschiebt ein Fenster auf einen anderen Desktop, aber ich habe keine Möglichkeit gefunden, dies zu verwenden, um das Fenster auf allen Desktops anzuzeigen. wmctrl -l
wird -1
als Desktop-Nummer für Fenster angezeigt, die auf allen Desktops angezeigt werden, die Übergabe -1
an -t
funktioniert jedoch nicht.
Ein ungelöster Fedora-Fehlerbericht scheint dieses Problem zu beheben : Anscheinend wird der Wert -1 intern von verwendet wmctrl
und kann aus diesem Grund nicht an übergeben werden -t
. Der Fehlerbericht erwähnt auch, dass Fenster mit einigen Fenstermanagern angeheftet werden können, indem dem Zielfenster die Sticky- Eigenschaft zugewiesen wird . Ich verwende jedoch Openbox und dieser Ansatz scheint für mich nicht zu funktionieren. Es gibt tatsächlich einen Patch für diesen Fehlerbericht. Ich habe es nicht versucht. Es ist aus dem Jahr 2009. Ich würde es vorziehen, Patches wmctrl
oder andere Dinge zu vermeiden .
Gibt es eine andere Möglichkeit, dieses Verhalten unter Openbox zu skripten?
Antworten:
Wie ein Benutzer in den Kommentaren sagte,
wmctrl
wurde es seit Oktober 2005 nicht mehr berührt. Es ist sehr wahrscheinlich, dass das Feature zu diesem Zeitpunkt funktioniert hat und seitdem aufgrund von Paketen, die sich um es herum ändern, kaputt gegangen ist.Hier ist das
wmctrl
Changelogquelle
Ab wmctrl v1.07
-t -2
funktioniert für mich.quelle
-b add,sticky
funktioniert-t
nochsticky
arbeiten für mich auf LXQt und Openbox.xdotool search --name xyz set_desktop_for_window 4294967295
quelle
xdotool set_desktop_for_window -1
es als Option interpretiert wird, obwohl es einem Befehl folgt und der von zurückgegebene Wert istxdotool get_desktop_for_window
.