Rozejrzałem się przez chwilę i nie mogłem znaleźć odpowiedzi na mój następujący problem:
Mam zestaw sześciu komputerów stacjonarnych na Ubuntu 12.04 z Unity. Przy uruchamianiu każdego ranka przechodzę przez procedurę otwierania tych samych pięciu lub sześciu programów. Otwieram każdy w określonym obszarze roboczym. Chciałbym mieć to zautomatyzowane. Czy istnieje sposób na skrypt lub skonfigurowanie tego?
Dodatkowe pytanie : Aby jeszcze bardziej skomplikować sprawę, uruchamiam dwa ekrany w trybie podwójnego widoku. Właściwie muszę uruchomić każdy program na określonym ekranie, najlepiej na pełnym ekranie.
unity
xorg
workspaces
x11
Jahn
źródło
źródło
Odpowiedzi:
Pomysł jdp407 dotyczący użycia compizconfig spowoduje powiązanie konkretnej aplikacji z określonym obszarem roboczym, dzięki czemu KAŻDY RAZ ten program zostanie otwarty, zostanie umieszczony w odpowiednim obszarze roboczym. Jeśli nie jest to pożądane, możesz wykonać następujące czynności:
1) Zainstaluj
wmctrl
2) Utwórz plik o następującej treści i ustaw go jako wykonywalny
3) Wywołaj ten skrypt z
.xsessionrc
katalogu domowego [jeśli będziesz musiał utworzyć ten plik], aby zautomatyzować proces przy każdym logowaniu. Lub możesz po prostu zadzwonić z terminala, jeśli to konieczne. EDYCJA: Umieść go w „Aplikacjach startowych”, a nie .xsessionrc. .xsessionrc uruchomi się jeszcze przed zakończeniem ładowania środowiska pulpitu.Możesz utworzyć niestandardową wersję xsession, jak sugeruje jdp407, aby mieć dwie sesje do wyboru, jedną, która automatycznie otwiera te aplikacje, a drugą nie. Ale wydaje mi się to niepotrzebne.
Jeśli uważasz, że przejście do obszaru roboczego, otwarcie odpowiednich aplikacji, a następnie przejście do następnego jest czasochłonne, możesz otworzyć wszystkie aplikacje za jednym razem, a następnie przenieść okna za pomocą
wmctrl
. Na przykładprzeniesie okno z Firefoksem w tytule do obszaru roboczego 1. Jeśli istnieje więcej niż jedno okno, pierwsze na liście zarządzanych okien
wmctrl
zostanie przeniesione. Aby go użyć, musisz znać tytuł okien, które zostaną utworzone przez aplikacje. Dlatego nie zasugerowałem tego jako podstawowej opcji. Jeśli tytuły będą jednoznaczne, jak ma to miejsce w przypadku najczęściej używanych aplikacji, jest to właściwy sposób.Otwieranie aplikacji na pełnym ekranie:
Niektóre aplikacje, takie jak gnome-terminal, mają argumenty wiersza poleceń, aby otworzyć okno w stanie zmaksymalizowanym lub w trybie pełnoekranowym. Jeśli takie opcje istnieją, skorzystaj z nich. W przeciwnym razie zastosuj
wmctrl
w następujący sposóbMaksymalizuje to moje (już istniejące) okno terminala.
Spowoduje to przejście okna do trybu pełnoekranowego.
Przejdź do
wmctrl
strony podręcznika użytkownika. Możesz znaleźć zastosowanie dla większej jego funkcjonalności.źródło
wmctrl
działa tutaj dobrze (LXDE i XFCE, komponowanie za pomocą xcompgr włączone)wmctrl -o X,Y
aby przejść do określonej rzutni. Jeśli masz wiele monitorów, możesz przenosić aplikacje na inny monitor za pomocąwmctrl -r "App name" -e G,X,Y,W,H
. Działa dobrze z efektami wizualnymi jedności.Są tutaj dwa „problemy”: pierwszy polega na otwarciu określonego zestawu programów podczas logowania; drugi polega na otwarciu ich w określonych obszarach roboczych. Oba zajmę się osobno:
Tworzenie niestandardowej sesji X.
Jest to dość łatwe do zrobienia. Musisz po prostu utworzyć skrypt sesji X, a następnie powiedzieć LightDM, aby go użył. Musisz znać polecenia, aby uruchamiać żądane programy z terminala.
touch ~/.customxsession
i naciśnij klawisz Enter.gedit ~/.customxsession
i naciśnij klawisz Enter.touch /usr/share/xsessions/multi.desktop
i naciśnij klawisz Enter.gedit /usr/share/xsessions/multi.desktop
i naciśnij klawisz Enter.Przypisywanie programów do obszarów roboczych
Jest to również dość łatwe, ale wymaga dodatkowego oprogramowania, które nie jest domyślnie instalowane w Ubuntu.
sudo apt-get install compizconfig-settings-manager
w Terminalu).Logowanie
Po zalogowaniu musisz poinformować Ubuntu, że chcesz użyć niestandardowej sesji X.
Problemy
Całkiem wiele mogło się z tym nie udać, albo popełnisz mały błąd, albo popełniłem błąd, pisząc tę odpowiedź. Jeśli coś pójdzie nie tak, upewnij się, że postępowałeś zgodnie z instrukcjami podanymi na liście, a jeśli nie, popraw wszystko. Jeśli nadal masz problem, zostaw komentarz.
~ / .customxsession:
/usr/share/xsessions/multi.desktop:
źródło
Dodaj wymagane aplikacje do programu StarupApplications, a następnie dodaj również ten skrypt. To jest mój skrypt: ManageWorkSpaces.sh
// skup się na terminalu
Ale nie mam pojęcia o obsłudze 2 wyświetlaczy.
źródło
wmctrl -d
, mam tylko jeden „pulpit”. Czy przetestowałeś to na Unity w Ubuntu 12.10?