Antworten:
Dank Marco habe ich einen Weg gefunden wmctrl.
Da Compiz-Arbeitsbereiche eigentlich Ansichtsfenster eines einzelnen Desktops sind, besteht die Lösung darin, das aktuelle Ansichtsfenster so zu verschieben, dass es den mittleren Bereich des Desktops abdeckt.
Rufen Sie zunächst wmctrl -dan, um Informationen zum aktuellen Desktop abzurufen:
read desktop_id _ast \
DG_ geometry \
VP_ viewport \
WA_ wa_off wa_size \
title \
< <(LANG=C wmctrl -d | grep '*')
geom_w=${geometry%x*}
geom_h=${geometry#*x}
# The workarea size isn't accurate, because the top/bottom panel is excluded.
viewport_w=${wa_size%x*}
viewport_h=${wa_size#*x}
rows=$((geom_w / viewport_w))
cols=$((geom_h / viewport_h))
# Fix the viewport size
viewport_w=$((geom_w / rows))
viewport_h=$((geom_h / cols))
Berechnen Sie dann den Ursprung des mittleren Ansichtsfensters:
center_row=$((rows / 2))
center_col=$((cols / 2))
center_x=$((center_col * viewport_w))
center_y=$((center_row * viewport_h))
center_viewport=$center_x,$center_y
Und verschieben Sie das Ansichtsfenster dorthin:
wmctrl -o $center_viewport
zur Steuerung von compiz über die Befehlszeile herunter . Speichern Sie es als compiz-send.pyin Ihrem privaten Ordner.python compiz-send.py vpswitch switch_to_5_key, um sicherzustellen, dass er ordnungsgemäß funktioniert. Sie sollten zum mittleren Arbeitsbereich wechseln.Wenn es funktioniert, erstellen Sie eine Datei mit dem Namen .switch_to_center_workspace.shin Ihrem privaten Ordner und fügen Sie Folgendes ein:
#!/bin/bash
sleep 5 && python /home/user/compiz-send.py vpswitch switch_to_5_key
Ersetzen userdurch Ihren Benutzernamen.
Öffnen Sie Startup Applications, System -> Preferences -> Startup Applications .
Klicken Sie auf Hinzufügen und geben Sie im Feld Befehl: den Eintrag ein /home/user/.switch_to_center_workspace.sh. Geben Sie in die Einträge Name: und Kommentar: ein, was Sie möchten .
Melden Sie sich ab und wieder an und überprüfen Sie, ob es funktioniert.
dbus.exceptions.DBusException: org.freedesktop.DBus.Error.UnknownMethod: Method "activate" with signature "si" on interface "org.freedesktop.compiz" doesn't exist
sleep 5Teil des Skripts auf eine höhere Zahl sleep 10, um sicherzustellen, dass compiz bereits ausgeführt wird, wenn das Skript ausgeführt wird. Du benutzt compiz richtig?
Ich wollte die ähnliche Frage stellen, aber für 3 horizontale Arbeitsbereiche und ich führe auch compiz aus, und die wmctrl -dAusgabe (pro Arbeitsbereich) sieht folgendermaßen aus:
0 * DG: 4098x768 VP: 0,0 WA: 0,24 1366x744 Workspace 10 * DG: 4098x768 VP: 1366,0 WA: 0,24 1366x744 Workspace 10 * DG: 4098x768 VP: 2732,0 WA: 0,24 1366x744 Workspace 1Dann habe ich einfach wmctrl -o 1366,0( VP- Werte) verwendet, um das Center beim Start zu meinem Standardarbeitsbereich zu machen. Könnte nicht für alle funktionieren, aber nur für den Fall;)
sh -c "sleep 2;/usr/bin/wmctrl -o 1366,0
Nur eine kurze Anmerkung - ich verwende Natty und dank der Antwort von @ 谢 继 继 habe ich festgestellt, dass Folgendes gemeldet wird, wenn das Terminal in jedem der vier 'Arbeitsbereiche' in Unity verschoben wird:
$ wmctrl -d
# top left
0 * DG: 2048x1200 VP: 0,0 WA: 0,24 1024x576 Workspace 1
# bottom left
0 * DG: 2048x1200 VP: 0,600 WA: 0,24 1024x576 Workspace 1
# top right
0 * DG: 2048x1200 VP: 1024,0 WA: 0,24 1024x576 Workspace 1
# bottom right
0 * DG: 2048x1200 VP: 1024,600 WA: 0,24 1024x576 Workspace 1
... dh es handelt sich weder um separate Desktops noch um Arbeitsbereiche - lediglich das Ansichtsfenster ändert sich!
Um zwischen diesen vier Ansichtsfenstern zu wechseln, rufen Sie einfach den wmctrl -oBefehl direkt mit den VPoben aufgeführten Werten auf, dh:
wmctrl -o 0,0
wmctrl -o 0,600
wmctrl -o 1024,0
wmctrl -o 1024,600
EDIT: Ups, sorry, habe gerade gesehen, dass dies das Gleiche ist wie die Antwort von @ wik - Zusammenführen / Löschen, wie es angemessen ist.
wmctrlKann aber das Ansichtsfenster innerhalb des Desktops trotzdem wechseln. Siehe meine Antwort unten.