Compiz Grid
Sztuczką jest wtyczka grid do Compiza. Po krótkiej konfiguracji
pozwala skrótami klawiszowymi rzucać okna w ustalone miejsca
ekranu.
Jak to działa
Ot, mam zwykły zabałaganiony ekran z chaotycznie położonym
terminalem.
Wciskam Win-KP7 (tj. trzymając wciśnięty klawisz Windows wciskam siódemkę
z klawiatury numerycznej) i terminal ładnie układa się w lewej dolnej
ćwiartce ekranu.
Przeskakuję Alt-Tabem do Emacsa i wciskam Win-KP6. Edytor ładnie wyrównuje
się zajmując całą prawą stronę ekranu.
Kolejne wciśnięcia tego samego skrótu dają też wersję szerszą
i węższą
I tyle. Łącznie mam skróty pozwalające rzucić bieżące okno na górną,
dolną, lewą lub prawą połówkę albo do dowolnej ćwiartki (a przy
powtórnym wciskaniu także robiące nieco węższą i nieco szerszą
wersję). Do kompletu jest też skrót rozciągający okno na cały ekran.
Przypisuję je sobie do odpowiednio położonych klawiszy klawiatury
numerycznej więc nie wymaga to żadnego wysiłku przy zapamiętywaniu.
Instalacja i konfiguracja
Z oczywistych przyczyn wymagany jest Compiz. Na Ubuntu oznacza to
uaktywnienie efektów wizualnych (System/Preferencje/Wygląd,
zakładka Efekty wizualne, trzeba wybrać cokolwiek innego niż
Brak, program pobierze i zainstaluje niezbędne pakiety).
Następnie uruchamiamy konfigurator Compiza:
System/Preferencje/Menedżer ustawień CompizConfig. Jeżeli go nie ma,
instalujemy:
$ sudo apt-get install compizconfig-settings-manager
Jest tam sporo ciekawych opcji które można sobie włączać (min. trochę
wizualnego bajeru w sekcjach Efekty i Pulpit) i ... wyłączać (od
kiedy niechcący wciskając jakąś kombinację klawiszy przestawiłem sobie
ekran w tryb negatywu a później jakąś inną przyczepiłem do myszy
swoiste szkło powiększające pamiętam o usuwaniu wszystkich funkcji z
sekcji Dostępność). W tej chwili interesuje mnie zakładka
Zarządzanie oknami, w której trzeba włączyć wtyczkę Grid:
Screenshoty robiłem na komputerze na którym mam ustawioną angielską
wersję językową, po polsku program wygląda podobnie choć elementy są w
innej kolejności.
I już powinno działać. Test: klikamy Ctrl-Alt-KP4 (4 z klawiatury
numerycznej). Okno ustawień powinno wypełnić lewe pół ekranu (albo
trochę więcej, ma ograniczenie dolne szerokości).
Na jednym z komputerów mi to nie zadziałało. O przyczynach i
rozwiązaniu w następnym rozdziale.
Kombinacje takie jak Ctrl-Alt-KP4 są mało poręczne. Wolę Win-KP4.
Dlatego skróty sobie zmieniłem. Trzeba je też oczywiście zmienić jeśli
klawiatura (np. laptopowa) w ogóle nie ma klawiatury numerycznej (tu
poręczne wydają mi się Win-strzałki i CtrlAlt-strzałki, jedne do
rozrzucania po połówkach, drugie po rogach).
Aby zmienić skróty, po prostu klikamy słowo Grid. Pojawia się ekranik
z wykazem aktualnych skrótów. Klikając dowolny z nich dostajemy
okienko pozwalające zmienić skrót (Grab key combination vel
Przechwyć kombinację klawiszy i wciskamy co trzeba). Klawisz
Windows jest tu określany jako Super.
Po ustawieniu wszystkich klawiszy zabawa jest zakończona, można od
razu pobawić się w rzucanie okna ustawień w różne strony (nie trzeba
niczego restartować ani przeładowywać).
Problemy
Na jednym z komputerów nie działały mi skróty klawiszowe powiązane
z klawiaturą numeryczną. Najpierw myślałem, że nie działa plugin,
później podejrzewałem wysłużoną klawiaturę. A winne okazało się
jedno z ustawień klawiatury (System/Preferencje/Klawiatura i zakładka
Klawisze myszy), gdzie miałem włączony tryb emulacji myszy klawiaturą:
Po wyłączeniu tego ustawienia skróty zaczęły działać.
Mam też jeden problem użytkowy: zdarza mi się następujący scenariusz:
- odsyłam jakieś okno (wciskając któryś ze skrótów),
- po obejrzeniu efektu stwierdzam, że wolę je gdzie indziej i wciskam inny skrót,
- odesłane zostaje ... inne okno, które po przerzuceniu poprzedniego uzyskało focus.
Jest to ewidentnie związane z moim trybem obsługi myszy - od lat
pracuję w trybie przekazywania focusu do okna nad którym znajduje się
mysz. Przy pracy w domyślnym trybie click to focus problemu nie
będzie ale ... chyba wolę się pogodzić z tą niedogodnością.
Devil's Pie
Wspomnę jeszcze o zupełnie innym programiku wspomagającym
zarządzanie rozmiarem i położeniem okien.
W tej chwili go nie używam, z powodów o których na końcu.
Ale całkiem możliwe, że kiedyś do niego wrócę.
Devil's Pie wykrywa okna o ustalonych nazwach (można też stosować
parę innych cech) i automatycznie zmienia ich rozmiar czy też relokuje
je. Jest to np. sposób na to, by Evolution zawsze po uruchomieniu
miało rozmiar 640x600 i mieściło się w lewym górnym rogu ekranu a
Emacs miał 640x900 i leżał z prawej strony.
Instalacja - pakiet devilspie:
$ sudo apt-get install devilspie
Program nie ma GUI, konfigurowany jest przez edycję plików
konfiguracyjnych. Wczytuje wszystkie pliki o rozszerzeniu
.ds z katalogu ~/.devilspie. Zazwyczaj umieszcza się
tam osobny pliczek dla każdej kontrolowanej aplikacji.
Przykładowo, jeśli stworzę ~/.devilspie/keepass.ds o treści:
(begin
(if
(contains (application_name) "KeePassX")
(begin
(above)
(geometry "640x480+0-10")
)
)
)
devilspie zadba by okienko keepassx-a miało rozmiar 640x480 i było
umieszczone w lewym dolnym rogu ekranu (o tym skąd liczone jest
położenie decydują znaki + i -, np. zapis 640x480-0+10 rzuciłby okno
do prawego górnego rogu) i miało ustawioną właściwość zawsze na
wierzchu.
Jeszcze inny przykład - kiedyś eksperymentowałem z następującym
~/.devilspie/firefox.ds (jeszcze w starej wersji firefoksa, cytuję
jako przykład powiązania w jednym pliku reguł dotyczących różnych
okien):
(begin
(if
(is (application_name) "Firefox")
(begin
(geometry "960x750+0")
)
)
(if
(matches (window_name) "Bookmark")
(begin
(center)
(above)
)
)
(if
(matches (window_name) "Session Manager - Restore")
(begin
(center)
(above)
(geometry "400x200")
)
)
)
Możliwości - zarówno wybierania okien, jak ustalania co z nimi robić -
jest sporo. Omawia je man devilspie.
Min. można wysyłać okienka na ustalony wirtualny desktop,
obdarzać je focusem, maksymalizować czy nawet nadawać im
przezroczystość.
Przy normalnym używaniu devilspie działa stale (najwygodniej wrzucić
je do System/Preferencje/Programy startowe), monitoruje
uruchamiające się programy i modyfikuje ich ustawienia zaraz po tym,
gdy się pojawią ich okna (później dając im już spokój, można zmienić
rozmiar takiego okienka i devilspie nie będzie już go ruszać).
W trakcie pisania reguł wygodniejsze jest odpalanie devilspie z
palca, w terminalu. W chwili uruchomienia analizuje ono listę
wszystkich uruchomionych programów i aplikuje do nich swoje reguły.
Zatem odpalam interesujące mnie aplikacje, piszę/poprawiam konfigurację
w ~/.devilspie, następnie zabijam (Ctrl-C) działające devilspie
i uruchamiam je na nowo - a wszystkie okna powinny zostać poprzesuwane
w skonfigurowane miejsca.
Na czas pisania reguł warto też stworzyć plik ~/.devilspie/debug.ds
o treści:
(debug)
Efektem będzie wypisywanie na standardowym wyjściu (czyli w terminalu
w którym działa sobie devilspie) nazw okien i aplikacji, co ułatwia
pisanie reguł dopasowujących.
No a gdy reguły są już gotowe, wrzucamy devilspie do autostartu
i zapominamy o nim (do czasu, gdy trzeba coś poprawić).
Informacja o braku GUI nie jest do końca prawdziwa, istnieje
program gDevilSpie.
Niestety wymaga samodzielnej kompilacji.
Nie testowałem go jeszcze.
Jest to wszystko fajne a pisanie reguł nie jest przesadnie trudne.
Niemniej jednak, ostatnio devilspie nie używam. Powód? Dwa:
nie udało mi się satysfakcjonująco rozwiązać sprawy drugiego okna
(np. o ile pierwsze uruchamiane okno firefoksa chciałbym widzieć na
lewej połówce ekranu, o tyle drugie już niekoniecznie, a nie udało
mi się ich rozróżnić),
okazało się, że jednak pracuję dość niejednorodnie, zależnie od tego,
co akurat robię, wolę mieć programy w różnych miejscach
(np. przy pracy nad HTML chcę dużego okna przeglądarki ale przy
programowaniu w Pythonie i używaniu przeglądarki do podglądu
dokumentacji wolę małe okno w rogu) i chyba częściej zdarzało mi
się poprawiać po devilspie niż cieszyć dobrze ustawionym oknem.
Do tego nazwy, hierarchie okien itp dość często się (przy upgrade) zmieniają.
A i ja sam nieraz zmieniam aplikacje.
Kafelkowe menedżery okien
Ostatnim elementem bajki są kafelkowe menedżery okien. Czyli
programy, które same rozmieszczają okna i budują ich układy.
xmonad, awesome, dwm i kilka innych.
Myśl o wypróbowaniu któregoś z nich obracam w głowie od dość dawna, na
razie się nie zdecydowałem (zmiana przyzwyczajeń byłaby jednak bardzo
radykalna) ale kto wie...
Widzę u Ciebie kilka terminali na ekranie. Może Cię zainteresuje programik "terminator" - pozwala fajnie dzielić i układać terminale w jednym oknie.
Kiedyś się nim - fakt, że krótko - bawiłem. Czułem się trochę niekomfortowo z dwóch powodów: a) nie mogłem sobie łatwo pozmieniać układu okienek (np przestawić tego co które jest u góry na dół) i b) podwójne skróty klawiszowe (desktopowe skoki Alt-Tabem i terminatorowe Ctrl-Tabem) jakoś mi się ciągle mieszały. No i jeszcze - przywykłem do używania profili (np. przy terminalach robiących ssh na zdalne maszyny stosuję inny kolor, trudniej się wtedy pomylić) a tu terminator nic nie ma.
Tak więc teraz bardziej pociąga mnie window-manager, który dobrze porozkłada gnome-terminale niż okno z drugą hierarchią.
Ale zgadzam się, że dla wielu osób
terminatormoże być fajnym narzędziem. W pewnym sensie jest to screen zintegrowany z desktopem (reagujący na klikanie myszą, z scrollbarami itd).http://www.vimeo.com/6712657
a widzałeś to? :) Moim zdaniem przyszłość układania okien będzie taka.
Obserwacje o problemach z pomysłami na dotykowe ekrany są OK. Pomysł dotykowej maty ciekawy. Ale właściwe rozwiązanie (w którym wyczuwam potężną inspirację iPhone, to zwijanie do pasków to przecież dokładnie stamtąd) mi się nie podoba. To jest ... mogłoby mi się podobać na netbooku, laptopie z małym ekranem i podobnych urządzeniach.
Na desktopie, z dużym LCD, w całej zabawie mi chodzi o to, by wygodnie widzieć naraz wiele okien. Nie tylko o to, by w miarę łatwo się między nimi przełączać ale by faktycznie pracując z jednym oknem jedno, a nieraz kilka innych dobrze widzieć.
@Marcin Kasperski W "terminatorze" możne przestawiać okna wewnętrznych terminali. Trzeba jedynie chwycić za tą belkę o góry terminala i przeciągnąć. Działa łatwo. Do przechodzenia pomiędzy oknami można używać ALT+Strzałka w górę, dół, w boki. A co do oznaczania innymi kolorami jak się jest na innej maszynie to można sobie $PS1 zmienić :)