Pozycja w centralnym obszarze roboczym podczas logowania

12

Skonfigurowałem przełącznik obszaru roboczego 3x3 i domyślnie chcę, aby moja pozycja była centralna. Czy to możliwe?

Xiè Jìléi
źródło

Odpowiedzi:

7

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
Xiè Jìléi
źródło
6

Tak: zainstaluj wmctrl

sudo apt-get install wmctrl

i utwórz plik w ~/.config/autostart/wmctrl.desktopnastępujący sposób:

[Desktop Entry]
Name=Desktop Switcher
Exec=/usr/bin/wmctrl -s 4
Type=Application
Chipaca
źródło
1
W Compiz jest tylko jeden pulpit. Ale i tak wmctrlmoże przełączyć rzutnię na pulpicie. Zobacz moją odpowiedź poniżej.
Xiè Jìléi
2
  1. Najpierw pobierz ten skrypt pomocniczyalternatywny tekst do sterowania compiz z wiersza poleceń. Zapisz go jak compiz-send.pyw folderze domowym.
  2. Uruchom polecenie, python compiz-send.py vpswitch switch_to_5_keyaby upewnić się, że działa poprawnie. Powinno to spowodować przejście do środkowego obszaru roboczego.
  3. 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.

  4. Otwórz Aplikacje startowe, System -> Preferencje -> Aplikacje startowe .

  5. Kliknij Dodaj iw polu Polecenie: wstaw pozycję /home/user/.switch_to_center_workspace.sh. Umieść, co chcesz, w nazwach: i Komentarze: wpisy.

  6. Wyloguj się, zaloguj ponownie i sprawdź, czy działa.

Izajasza
źródło
Niestety skrypt nie działadbus.exceptions.DBusException: org.freedesktop.DBus.Error.UnknownMethod: Method "activate" with signature "si" on interface "org.freedesktop.compiz" doesn't exist
Xiè Jìléi
@ 雷 继 雷 Zmień sleep 5część skryptu na wyższą liczbę, sleep 10aby upewnić się, że compiz już działa, gdy skrypt jest uruchomiony. Używasz Compiz, prawda?
Izajasza
Próbuję uruchomić skrypt w gnome-terminal i otrzymuję wyjątek. Używam compiz 0.8.6.
Xiè Jìléi
W skrypcie jest powiedziane, że podpis metody „si” nie istnieje, więc myślę, że argumenty (string, int) przekazane do aktywacji () mogą nie być poprawne.
Xiè Jìléi
2

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:

  • W Workspace 1: 0 * DG: 4098x768 VP: 0,0 WA: 0,24 1366x744 Workspace 1
  • W Workspace 2: 0 * DG: 4098x768 VP: 1366,0 WA: 0,24 1366x744 Workspace 1
  • W Workspace 3: 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;)

wik
źródło
Polecenie, którego używam w „System -> Preferencje -> Aplikacje startowe”:sh -c "sleep 2;/usr/bin/wmctrl -o 1366,0
wik
... może być konieczne dostosowanie wartości snu, np. spróbuj 10, 15 itd.
wik
Dzięki za tę notatkę - przepraszam, że jej nie przeczytałem przed przeczytaniem twojej odpowiedzi :)
sdaau
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.

sdaau
źródło