Systemy - System okien w linuksie

Download Report

Transcript Systemy - System okien w linuksie

System okien Linuxa
Linux daje każdemu użytkownikowi dostęp do
graficznego środowiska pracy. Jest nim X-Window,
którego kariera zaczęła się jeszcze przed powstaniem
Linuksa. Prace nad uniwersalnym graficznym interfejsem
użytkownika przeznaczonym dla systemów uniksowych
rozpoczęły się około roku 1986. Przyczyną był fakt, iż
każdy producent lansował swoje własne rozwiązania, w
znakomitej większość przypadków niezgodne z innymi.
System tworzony przez naukowców z Massachusetts
Institute of Technology, a nadzorowany później przez X
Consortium, z założenia miał być otwarty i niezależny od
żadnej firmy komercyjnej. Od początku roku 1997
wszystkie prawa do X-Window ma Open Software
Foundation, która udostępnia je na licencji GNU. Zamiast
interfejsu wiersza poleceń można używać opartego na XWindow System, graficznego interfejsu użytkownika (GUI
Graphical User Interface). To dzięki temu interfejsowi
można używać okien, ikon i menu.
System okien Linuxa
X nie jest pierwszym systemem okienkowym napisanym
dla systemów typu UNIX®, lecz jest on najbardziej
popularnym. System X może być nazywany po prostu
“X”, “System okien X”, “X11” oraz jeszcze na wiele innych
sposobów.
Filozofia systemu X jest bardzo zbliżona do filozofii Uniksa:
“narzędzia, nie reguły”. Oznacza to, że X nie stara się
narzucać jak ma zostać wykonane zadanie, dostarcza
jedynie narzędzi pozostawiając użytkownikowi decyzję o
sposobie ich wykorzystania.
Stąd też X nie wymusza jak powinny wyglądać okienka,
jak je przesuwać po ekranie za pomocą myszki, jakie
skróty klawiaturowe wykorzystać by przełączać
pomiędzy okienkami (np. Alt+Tab w w przypadku
Microsoft Windows), jak powinny wyglądać nagłówki
okienek, itd.
System okien Linuxa
Serwer X przenosi tę odpowiedzialność do aplikacji nazywanej
“Menedżerem okien”. Dla systemu Linux napisano wiele
window menadżerów, najbardziej znane to : AfterStep,
Blackbox, ctwm, Enlightenment, fvwm, Sawfish, twm, Window
Maker i wiele więcej. Każdy z nich oferuje inny wygląd i
sposób obsługi; niektóre obsługują “wirtualne pulpity”; inne
umożliwiają definiowanie własnych skrótów klawiszowych do
zarządzania pulpitem; jeszcze inne posiadają przycisk “Start”
bądź podobne rozwiązanie; w niektórych można zmieniać
dowolnie motywy graficzne, pozwalając na całkowitą zmianę
wyglądu i zachowania przy uruchamianiu nowego motywu.
Te menedżery i wiele innych dostępne są w kategorii x11-wm
w Kolekcji portów.
Ponadto, również środowiska graficzne KDE oraz GNOME
posiadają w pełni zintegrowane, własne menedżery okien.
Każdy menedżer okien posiada również odrębny mechanizm
konfiguracyjny; niektóre wykorzystują ręcznie modyfikowane
pliki konfiguracyjne, inne dysponują narzędziami graficznymi, a
przynajmniej jeden (Sawfish) wykorzystuje plik konfiguracyjny
napisany w języku Lisp.
System okien Linuxa
W środowisku graficznym można uruchomić kilka
aplikacji jednocześnie , każdą w innym oknie.
Menadżery okien oferują specjalne okno zwane
terminalem i oferujące standartowe funkcje konsoli
tekstowej, ponadto okno to ma możliwość uruchamiania
w wierszu poleceń programów X-Window. Na przykład
po napisaniu xpaint i naciśnięciu ENTER uruchomi się
program graficzny XPaint, należy tylko pamiętać, że po
zamknięciu okna terminala, zostanie zamknięty także
uruchomiony z niego program. Po uruchomieniu w ten
sposób programu, okno terminala jest zajęte, nie można
już w nim wydawać żadnych nowych poleceń. Jednak
jeżeli uruchomi się program ze znakiem ampersand & na
końcu, np: xpaint & i ENTER, program zostanie
uruchominy jak porzednio, z tą różnicą że terminal jest
wolny do wydawania dalszych poleceń.
Terminal
Terminal posiada kilka użytecznych włąściwości związanych z
obsługą tekstu.
• z lewej lub prawej strony okna znajdują się suwak służący do
przeglądania tekstu.
• po wciśnięciu lewego przycisku myszy i przesunieciu nią,
zaznaczczony zostanie jakiś tekst, zostanie on automatycznie
zapamiętany. Zapamiętany w ten sposób tekst można
wstawić np. do edytora tekstu otwartego w drugim okienku.
Można to zrobic poprzez kliknięcie prawym przyciskiem myszy.
• dwukrotne kliknięcie lewym przyciskiem myszy, zaznacza całe
słowo.
• można uruchomić tyle terminali ile jest potrzebne. Zamknąć
terminal można za pomocą komendy exit lub poprzez
kliknięcie myszą X na pasku menu.
Sposób uaktywniania
Jedną z funkcji realizowanych przez menedżera okien
jest “sposób uaktywniania” okien za pomocą myszy.
Każdy system okienkowy potrzebuje pewnego sposobu
wyboru okna, które będzie aktywnie przyjmować
sygnały z klawiatury i powinno wskazywać, które okno
jest aktywne.
Znanym wszystkim sposobem uaktywniania jest zapewne
“kliknij-by-uaktywnić”. Jest to metoda wykorzystywana w
systemie Microsoft Windows, w której okno zostaje
uaktywnione po otrzymaniu kliknięcia myszką.
X sam z siebie nie obsługuje żadnego sposobu
uaktywniania. To właśnie menedżer okien kontroluje,
które okno jest aktywne w danych czasie. Różne
menedżery wspierają różne metody uaktywniania.
Wszystkie z nich obsługują „kliknij-by-uaktywnić” a
większość z nich obsługuje również kilka innych.
Sposób uaktywniania
Najczęściej spotykane sposoby uaktywniania to:
• „aktywuj-za-myszą” - aktywne jest okno znajdujące się
bezpośrednio pod wskaźnikiem myszki. Przy czym, nie
koniecznie jest to te samo okno, które znajduje się nad
wszystkimi innymi oknami. Zmiana aktywnego okna
dokonywana jest przez wskazanie na inne okno. Nie jest
wymagane kliknięcie na nim.
• „leniwe uaktywnianie” – ta metoda jest drobną wariacją
metody aktywuj-za-myszą, w której w sytuacji gdy wskaźnik
myszy jest przesunięty nad wolne pole wówczas żadne okno
nie jest aktywne, a wszystkie wprowadzane znaki są tracone.
W tej metodzie natomiast aktywne okno jest zmieniane tylko
gdy wskaźnik zostanie przesunięty nad nowe okno, natomiast
nie w momencie gdy opuści bieżące okno.
• „kliknij-by-uaktywnić” - aktywne okno jest wybierane poprzez
kliknięcie na nie myszką. Okno może później być
“podniesione” i pojawić się nad wszystkimi innymi oknami.
Wszystkie wprowadzane znaki są kierowane do tego okna,
nawet jeśli wskaźnik myszki zostanie przesunięty nad inne okno.
Różnice między menedżerami okien dotyczą
m.in.:
• dostosowywalności wyglądu i
funkcjonalności
– tekstowych menu wykorzystywanych do
uruchamiania programów lub zmieniania
ustawień
– paneli i innych graficznych metod uruchamiania
aplikacji
– liczby pulpitów oraz wirtualnych pulpitów (pulpity
większe niż fizyczny rozmiar monitora) i metod
przełączania się między nimi
• wielkością zajmowanej pamięci i innych
zasobów systemowych
• stopnia integracji ze środowiskiem
FVWM
FVWM jest chwalone za bardzo wysoką jakość kodu. Wielu programistów
opiera swoje projekty na FVWM. Wiele popularnych menedżerów okien jest
spokrewnionych z FVWM: Afterstep, XFce, Enlightenment i inne.
Główne cechy tego menedźera to:
• wsparcie dla gestów myszą - gesty myszą pozwalają na przypisywanie
komend do kształtów rysowanych myszą
• wsparcie dla formatu PNG z przezroczystością - możliwość tworzenie grafik
w formacie PNG w celu użycia jako elementy pasków tytułu i menu.
Przezroczystość pozwala na tworzenie bardzo atrakcyjnych efektów
• rozszerzalność dzięki modułom - wykorzystywanie tylko potrzebnych cech
FVWM, dzięki ładowaniu i wyładowywaniu modułów
• wsparcie dla fontów Xft2 - wykorzystanie Anti-aliasingu, cienie i wiele innych
• zarządzanie sesją - możliwość wykorzystanie menedżera sesji w celu
zapisania stanu pulpitu i odtworzenia go po ponownym uruchomieniu
komputera
• biblioteki Perl w celu wykorzystania skryptów dla rozszerzenia możliwości
FVWM
• wsparcie dla Xinerama - możliwość używania FVWM na dwóch lub więcej
monitorach
FVWM
• tworzenie paneli dzięki modułowi FvwmButtons – panel może
wyglądać dowolnie, mieć dowolną kolejność opcji w nim
występujących oraz dowolne położenie.
• paski tytułu mogą być wyłączane lub tworzone na dowolnej
krawędzi okna
• pełne wsparcie dla różnorodnych wersji językowych - FVWM
został przetłumaczony na wiele języków (dzięki gettext), w tym
jezyki Azji i języki z tekstem w odwrotnym kierunku, np. Hebrsjski
• Wirtualne pulpity – można ich stworzyć nieograniczoną ilość,
przy czym każdy może być duży jak tylko chcemy
• dynamiczne menu
• zestaw narzędzi do tworzenia prostych okien
• pasek tytułowy – może być dowolnego rozmiaru,
półprzeźroczysty, po dowolnej stronie okna lub może go
wcale nie być. Wygląd belki definiujemy za pomocą pixmap
bądź wektorów. Można także różne paski tytułowe przypisać
do różnych okien
• pełne wsparcie dla powiadomień z EWMH, ICCCM-2 i GNOME
AfterStep
Głównym celem programistów AfterStepa jest stworzenie
konfigurowalnego, estetycznego menadżera okien, efektywnie
zarządzającego zasobami systemowymi. AfterStep pierwotnie był
wariantem FVWM, upodobniającym go do NeXTSTEP, lecz porzucono
tę ideę, odchodząc od FVWM i przepisując kod na nowo.
Dodatkowe cechy to:
• obsługa drag&drop
• łatwa zamiana wyglądu dzięki zastosowaniu tzw. themes
• dość rozbudowane właściwości a przy tym dość szybki
• zainstalowane pliki skatalogowane w formacie HTML, tak aby
użytkownik mógł przejrzeć listę dostępnych czcionek, obrazków itp.
• dokumentacja dostępna w formatach HTML i man
• menu skrótów klawiszowych
Obecnie zawiera kilkadziesiąt modułów, takich jak:
• WinList - zarządzanie oknami programów
• Pager – zarządzanie pulpitem
• Wharf – zarządzanie apletami
AfterStep jest utrzymywany przez małą społeczność programistów, do
których należą min.:Alfredo Kojima (lider), Guylhem Nazar oraz inni.
Menadżerem projektu jest Sasha Vaco.
Enlightenment
• Często nazywany E. Może być używany samodzielnie lub wraz
ze środowiskami graficznymi takimi jak GNOME (swego czasu
był to domyślny menedżer okien tego środowiska) czy KDE.
Jego głównym autorem jest programista i grafik Carsten
Haitzler (Rasterman).
• Wydany został na licencji BSD.
• Enlightenment znany z dużych możliwości konfiguracji oraz
atrakcyjnej grafiki i efektów specjalnych.
• Dostępne niezwykle dopracowane pod względem graficznym
tematy pulpitu (themes) oraz statyczne i animowane tła
pulpitu.
• Dostępny jest w dwóch liniach
– stabilnej DR16
– rozwojowej DR17. Kod serii, DR17 (lub inaczej E17), jest napisany
od początku i bazuje na silnie zmodularyzowanych bibliotekach
EFL (Enlightenment Foundation Libraries). DR17 ma być
samodzielną powłoką graficzną, przeznaczoną dla szerokiej
gamy urządzeń od urządzeń wbudowanych do stacji roboczych
Enlightenment
• Powłoka graficzna to określenie twórców
Enlightenment. Oznacza ono, że poza
zarządzaniem oknami program wykonuje też inne
funkcje, ale nie jest tak rozbudowany jak środowiska
graficzne w rodzaju KDE czy GNOME, dla których
powstają często duże aplikacje. Podobne do niego
są środowiska Xfce czy WindowMaker.
• Posiada swój menedżer logowania – Entrance. Jest
to efektownie wyglądający odpowiednik bardziej
znanych menedżerów logowania takich jak XDM,
GDM czy KDM.
• Z Enlightenment domyślnie korzysta niewiele
dystrybucji GNU/Linuksa (np. Elive, Ubuntu)