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 -d
aby 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
compiz-send.py
w folderze domowym.python compiz-send.py vpswitch switch_to_5_key
aby 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.sh
w 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 user
swoją 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 5
część skryptu na wyższą liczbę, sleep 10
aby 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 -d
wyjściowe (na obszar roboczy) wyglądają tak:
0 * DG: 4098x768 VP: 0,0 WA: 0,24 1366x744 Workspace 1
0 * DG: 4098x768 VP: 1366,0 WA: 0,24 1366x744 Workspace 1
0 * DG: 4098x768 VP: 2732,0 WA: 0,24 1366x744 Workspace 1
Nastę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 -o
polecenie bezpośrednio z VP
wartoś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.
wmctrl
może przełączyć rzutnię na pulpicie. Zobacz moją odpowiedź poniżej.