Odpowiedzi:
Dzięki Marco wymyśliłem sposób użycia wmctrl.
Ponieważ obszary robocze compiz są w rzeczywistości rzutnią pojedynczego pulpitu, więc rozwiązaniem jest przeniesienie bieżącej rzutni, aby obejmowała środkowy obszar pulpitu.
Najpierw zadzwoń, wmctrl -daby uzyskać informacje o bieżącym pulpicie:
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))
Następnie oblicz początek środkowej rzutni:
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
I przenieś tam rzutnię:
wmctrl -o $center_viewport
do sterowania compiz z wiersza poleceń. Zapisz go jak compiz-send.pyw folderze domowym.python compiz-send.py vpswitch switch_to_5_keyaby upewnić się, że działa poprawnie. Powinno to spowodować przejście do środkowego obszaru roboczego.Jeśli to działa, utwórz plik o nazwie .switch_to_center_workspace.shw folderze domowym i wklej w nim następujące elementy:
#!/bin/bash
sleep 5 && python /home/user/compiz-send.py vpswitch switch_to_5_key
zastępując userswoją nazwę użytkownika.
Otwórz Aplikacje startowe, System -> Preferencje -> Aplikacje startowe .
Kliknij Dodaj iw polu Polecenie: wstaw pozycję /home/user/.switch_to_center_workspace.sh. Umieść, co chcesz, w nazwach: i Komentarze: wpisy.
Wyloguj się, zaloguj ponownie i sprawdź, czy działa.
dbus.exceptions.DBusException: org.freedesktop.DBus.Error.UnknownMethod: Method "activate" with signature "si" on interface "org.freedesktop.compiz" doesn't exist
sleep 5część skryptu na wyższą liczbę, sleep 10aby upewnić się, że compiz już działa, gdy skrypt jest uruchomiony. Używasz Compiz, prawda?
Chciałem zadać podobne pytanie, ale dla 3 poziomych obszarów roboczych i również uruchamiam compiz, a dane wmctrl -dwyjściowe (na obszar roboczy) wyglądają tak:
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 1Następnie po prostu użyłem wmctrl -o 1366,0( wartości VP ), aby ustawić centrum jako mój domyślny obszar roboczy podczas uruchamiania. Może nie dla wszystkich, ale na wszelki wypadek;)
sh -c "sleep 2;/usr/bin/wmctrl -o 1366,0
Krótka uwaga - używam Natty, a dzięki odpowiedzi @ 谢 继 雷 zauważyłem, że następujące informacje są zgłaszane przez przeniesienie terminala w każdym z czterech „obszarów roboczych” w Unity:
$ 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
... tzn. nie są to ani oddzielne pulpity, ani przestrzenie robocze - po prostu zmienia się rzutnia!
Tak więc, aby przełączać się między tymi czterema rzutniami, wystarczy wywołać wmctrl -opolecenie bezpośrednio z VPwartościami wymienionymi powyżej, tj .:
wmctrl -o 0,0
wmctrl -o 0,600
wmctrl -o 1024,0
wmctrl -o 1024,600
EDYCJA: Ups, przepraszam, właśnie zobaczyłem, że jest to to samo, co odpowiedź @ wik - scal / usuń odpowiednio.
wmctrlmoże przełączyć rzutnię na pulpicie. Zobacz moją odpowiedź poniżej.