Wprowadzenie do systemu X Window
Witold Paluszy´nski
Katedra Cybernetyki i Robotyki Politechnika Wroc lawska
http://www.kcir.pwr.edu.pl/~witold/
2001–2013
Ten utw´or jest dostepny na licencji֒ Creative Commons Uznanie autorstwa- Na tych samych warunkach 3.0 Unported
Utw´or udostepniany na licencji Creative Commons: uznanie autorstwa, na tych֒ samych warunkach. Udziela sie֒ zezwolenia do kopiowania, rozpowszechniania i/lub modyfikacji tre´sci utworu zgodnie z zasadami w/w licencji opublikowanej przez Creative Commons. Licencja wymaga podania oryginalnego autora utworu, a dystrybucja materia l´ow pochodnych mo˙ze odbywa´c sie֒ tylko na tych samych warunkach (nie mo˙zna zastrzec, w jakikolwiek spos´ob ograniczy´c, ani rozszerzy´c praw do nich).
Za lo˙zenia i historia systemu X window
System X Window zosta l opracowany na uniwersytecie M.I.T. w roku 1984 jako standard przemys lowy tworzenia system´ow okienkowych, niezale˙znych od platformy sprzetowej i programowej, w ´srodowisku sieciowym. W za lo˙zeniach֒ mia l by´c zaimplementowany powy˙zej systemu operacyjnego komputera, i umo˙zliwia´c komunikacje֒ (wy´swietlanie okienek i obrazk´ow) miedzy r´o˙znymi֒ rodzajami komputer´ow, r´o˙znych producent´ow, z gdzie indziej napisanym oprogramowaniem, i by´c mo˙ze pod kontrola֒ innego administratora systemu.
Cel sformu lowany przez tw´orc´ow systemu zosta l osiagni֒ ety. W roku 1987֒ wprowadzono wersje֒ 11 systemu (nazywanego te˙z X11), kt´ora jest jego bie˙zac֒ a֒ wersja. W tym czasie powsta lo kilka kolejnych wyda´n (release) rozszerzaj֒ acych֒ funkcjonalno´sci systemu. Najnowszym jest wydanie 7, tzw. X11R7, z roku 2005 (11 lat po R6). Jednak poza pewnymi rozszerzeniami zasadniczy protok´o l komunikacyjny systemu X Window pozosta l w wersji 11 niezmieniony,
i programy uruchomione np. w roku 1987 moga֒ komunikowa´c sie֒ z programami aktualnie kompilowanymi.
X Window nadzoruje obecnie X Consortium zrzeszajace producent´ow, firmy,֒ i organizacje zainteresowane u˙zytkowaniem i rozwojem systemu.
System X Window — wprowadzenie 3
System X Window — znaczenie spo leczne
Od poczatku system X Window by l projektem otwartym — zak lada l ca lkowit֒ a֒ jawno´s´c opracowanej koncepcji i zamiar udostepnienia systemu zainteresowanym֒ jednostkom. M.I.T. od poczatku udost֒ epnia l wszystkie opracowane programy֒ w wersji ´zr´od lowej zar´owno producentom oprogramowania, jak i u˙zytkownikom.
Miedzy innymi dlatego system zosta l od pocz֒ atku zaakceptowany przez֒ miedzynarodowe konsorcjum producent´ow sprz֒ etu komputerowego jako֒
standard systemu okienkowego, i koncepcja tego systemu jest najpowszechniej przyjet֒ a֒ koncepcja֒ takiego systemu.
System X Window — wprowadzenie 4
Model konstrukcji programu graficznego
kompilator kompilator
Program binarny
protokolu X Window do serwera
rzacych obiekty graficzne wysokiego rzedu two−
Program zródlowy
urzadzenie graficzne
Model X Window programu graficznego Tradycyjny schemat programu graficznego
wywolania procedur
rzacych obiekty graficzne wysokiego rzedu two−
Program zródlowy
wywolania procedur
sprzetu wyswietlajacego
urzadzenie graficzne
lania protokolu X nie−
serwer X Window odbiera polecenia pro−
tokolu X Window i obsluguje konkretne kod obsluguje konkretne
Program binarny
zalezne od systemu ani biblioteka procedur gra−
kod wysyla polecenia ficznych zamieniajacych
operacje graficzne wyso−
SIEC kiego rzedu na operacje
obslugujace konkretne urzadzenie wyswietlajace
biblioteka procedur gra−
ficznych zamieniajacych operacje graficzne wy−
sokiego rzedu na wywo−
System X Window — wprowadzenie 5
Podstawowe poj
ecia i architektura systemu X Window
֒ Sk ladniki systemu X Window:• serwer ekranowy: urzadzenie u˙zytkownika (ekran, klawiatura, mysz),֒
i program obs lugujacy; najcz֒ e´sciej serwer jest uruchamiany na stacji roboczej֒ albo komputerze typu PC, aczkolwiek istnieja֒ sprzetowe realizacje serwer´ow֒ X Window,
• klienty: programy wy´swietlajace; mog֒ a֒ by´c uruchamiane na tym samym komputerze co serwer X Window, albo gdziekolwiek w Internecie, w tym r´ownie˙z z komputera o innej architekturze, procesorze, systemie operacyjnym,
• protok´o l X komunikacji klient´ow z serwerami.
System X Window — wprowadzenie 6
Serwer X Window
Rola serwera X Window — obs luga zdarze´n serwera:
• odbieranie sygna l´ow od myszy i z klawiatury oraz przekazywanie ich klientowi aktywnemu (ang. focus),
• odbieranie polece´n i zapyta´n klient´ow i ich realizacja.
Serwer X Window jest programem, kt´ory standardowo nazywa sie֒ X, zatem normalnie jego uruchomienie polega po prostu na wywo laniu tego programu.
Uruchomienie
”go lego” serwera X Window jest niewystarczajace, poniewa˙z֒ pomimo i˙z jest on programem u˙zytkownika, sam nie mo˙ze by´c przez niego sterowany. Co najmniej pierwszy klient musi by´c uruchomiony z zewn
atrz. Tradycyjnie, najwa˙zniejszym klientem, zwykle uruchamianym֒
w domy´slnej konfiguracji, by l emulator terminala, np. xterm. Dzieki niemu,֒ u˙zytkownik serwera uzyskiwa l zdolno´s´c uruchamiania dowolnych program´ow okienkowych (klient´ow X Window), konfiguracji systemu, i og´olnie pracy.
System X Window — serwer 7
Program xinit
Program xinit pozwala wygodnie uruchamia´c serwer X Window. Wywo luje on serwer X, i od razu powoduje wykonanie skryptu (pliku) ${HOME}/.xinitrc:
xedit -geometry -0-0 ~/.xinitrc &
xclock -geometry -0+0 &
xset s on s 300
xsetroot -solid ’#006060’
xterm
Pierwsze dwa wiersze uruchamiaja֒ klienty okienkowe jako procesy t la (& na ko´ncu). Programy te pracuja֒trwale, do momentu ich jawnego zako´nczenia.
Kolejne dwa wiersze uruchamiaja֒klienty X Window, kt´ore konfiguruja֒serwer, wydajac mu pewne polecenia. Nie wy´swietlaj֒ a֒ one okienek, i szybko ko´ncza֒ prace, dlatego nie jest konieczne ich uruchamianie w tle.֒
Ostatni wiersz uruchamia zn´ow
”trwa ly” program okienkowy xterm. Jest on uruchamiany jako pierwszoplanowy, poniewa˙z po wykonaniu ca lego skryptu xinit zamyka serwer X i ko´nczy prace. Gdyby ostatni klient by l uruchomiony֒ w tle, ca la sesja by laby kr´otka i zosta laby automatycznie zamknieta. Wykonanie֒ ostatniego klienta w pierwszym planie powoduje, ˙ze sesja trwa dop´oki dzia la ten ostatni klient. Pe lni on wiec rol֒ e֒ sterujac֒ a֒ dla serwera X Window. Zako´nczenie xterm przez u˙zytkownika powoduje r´ownie˙z zako´nczenie sesji okienkowej.
System X Window — serwer 8
Konwencje i mechanizmy systemu X Window
Zwr´o´cmy uwage֒ na pewne wbudowane mechanizmy systemu X Window:
Operacje mysz a:֒
• lewy klawisz myszy wybiera i zaznacza (r´ownie˙z 2-click, 3-click),
• ´srodkowy wkleja zaznaczony tekst,
• prawy uruchamia menu kontekstowe (je´sli klient ma takie).
Stos okienek — Okienka wy´swietlane sa֒na ekranie w kolejno´sci stosowej — te p´o´zniej wy´swietlone moga֒przykry´c te wcze´sniejsze. Ten stos okienek jest sta ly i u˙zytkownik nie mo˙ze nim sterowa´c. Je´sli jednak klient wy´swietlajacy֒ okienko na szczycie stosu zostanie zako´nczony, to ods loni sie֒ okienko poprzedniego klienta, itd.
Wyb´or okna/klienta aktywnego (focus) — Okno w kt´orym jest wska´znik myszy jest aktywne. Ten klient otrzymuje znaki z klawiatury i zdarzenia myszy. Gdy wska´znik myszy jest w tle ekranu, ˙zadne okno nie jest aktywne.
Nie potrzeba klika´c na okienko, aby uczyni´c je aktywnym. Jednocze´snie aktywno´s´c okienka nie jest zwiazana z wy´swietlaniem na szczycie stosu. Ten֒ domy´slny spos´ob wyboru aktywnego nazywa sie: focus-follows-mouse (FFM).֒
System X Window — serwer 9
Dynamiczna konfiguracja serwera X Window
Serwer X Window posiada wiele cech i funkcji, z kt´orych niekt´orymi mo˙zna sterowa´c w czasie pracy. Istnieje dedykowany klient xset, kt´ory wysy la pewne polecenia serwerowi, zgodne z argumentami wywo lania, np.:
xset r off # wylacza autorepeat na klawiaturze xset s on s 300 # wygaszanie ekranu po 300 sekundach xset pozwala r´ownie˙z ustawia´c serwerowi wa˙zniejsze parametry, jak np. ´scie˙zka dostepu do czcionek (patrz ni˙zej), albo parametry sterowania zasilaniem֒
monitora (sa֒ jednak one zale˙zne od konkretnej implementacji serwera).
Program xsetroot pozwala ustawia´c parametry wy´swietlanego okna serwera, kt´ore ma posta´c t la ekranu X Window.
xsetroot -solid ’#006060’
Istnieja֒jeszcze inne funkcje i parametry serwera, kt´ore mo˙zna ustawia´c w czasie pracy, jak np. autoryzacja wy´swietlania albo zasoby, i s lu˙za֒ do tego specjalne klienty. Bedzie o nich mowa dalej.֒
System X Window — serwer 10
Klienty X Window
• Po laczenie klient´ow z serwerem: o ile serwer normalnie komunikuje si֒ e֒ z wieloma klientami jednocze´snie, obs lugujac ich ˙z֒ adania, to ka˙zdy klient֒ typowo wysy la dane do wy´swietlania do jednego konkretnego serwera.
• Zdarzenia klienta: sygna ly z klawiatury, od myszy, a tak˙ze inne zdarzenia przekazywane klientom przez serwer, np. zdarzenie ods loniecia.֒
• Standardowe argumenty wywo lywania klient´ow okre´slaja֒takie parametry jak:
adres serwera: -display adres-ip:0.0
geometrie:֒ -geometry szer×wys±xoff±yoff
czcionki: -fn ’-misc-fixed-bold-r-normal–15-140-75-75-c-90-iso8859-2’
kolory: -fg yellow -bg blue -bd red inne: -title xxx -iconic ...
• Wiele klient´ow ma wiele parametr´ow konfiguracyjnych zwanych zasobami, o kt´orych ni˙zej.
• Poza tym niekt´ore rozbudowane wsp´o lczesne klienty X Window, jakimi sa֒
np. firefox, acroread, openoffice, itp. maja֒swoje w lasne systemy konfiguracji.
Podobnie graficzne ´srodowiska, zwane pulpitami, bed֒ ace konfiguracjami֒ okienek, ustawie´n, konwencji, i protoko l´ow komunikacji miedzy klientami.֒
System X Window — klienty 11
Zestaw klient´ ow X Window
Zarzadzanie systemem X Window֒ U˙zytkowe
xinit,startx - uruchamianie serwera X xbiff - sygnalizacja poczty e-mail xdm - zarzadzanie uruchamianiem serwer´ow֒ xcalc - kalkulator
xset - konfigurowanie pracujacego serwera֒ xclipboard - text clipboard xsetroot - ustawianie parametr´ow t la xclock - okno z zegarem xhost - autoryzacja dostepu przez IP֒ xedit - prosty edytor tekstowy
xauth - zarzadzanie kodami autoryzacji֒ xkill - kasowanie klienta przez wyb´or okna xrdb - obs luga zasob´ow ( ladowanie,wy´sw.) xload - wy´sw.obcia˙zenia systemu֒
editres - edycja warto´sci zasob´ow klienta xlock - zabezpieczenie klawiatury i ekranu xmodmap - mapowanie klawiatury i myszy xlogo - wy´sw.logo systemu X Window xrefresh - od´swie˙zanie zawarto´sci ekranu xterm - okienkowy emulator terminala Informacje o systemie X Window Graficzne
xdpyinfo - wy´sw.informacji o ekranie bitmap - tworzenie ma lych obrazk´ow xwininfo - wy´swietl.informacji o oknie xmag - powiekszenie fragmentu ekranu֒ xprop - wy´sw.w lasno´sci okien i czcionek xwd - zrzut ekranu do pliku w spec.formacie xlsfonts - wy´swietlanie listy czcionek xwud - wy´swietlanie zrzutu ekranu z pliku xfontsel - wybieranie czcionek xpr - drukowanie zrzutu ekranu na drukarce xfd - wy´swietlanie czcionek xdpr - bezpo´sr.drukowanie zrzutu ekranu
System X Window — klienty 12
Zarz adca okien
֒• Zarzadca okien (window manager ) jest klientem systemu X Window֒
o specjalnych prawach; mo˙ze by´c tylko jeden zarzadca okien dla danego֒ serwera wed lug zasady: kto pierwszy ten lepszy.
• Funkcje zarzadcy okien: rozmieszczanie i rozmiar okien klient´ow na ekranie֒
(zarzadca mo˙ze uzna´c — lub nie — geometrie podawane przez klient´ow),֒ przesuwanie, zmiana rozmiaru okien, zmiana okien w ikony, i z powrotem, przenoszenie wy´swietlanych okien na szczyt lub sp´od stosu (raise/lower ), itp.
• Do interakcji z u˙zytkownikiem zarzadcy okien tworz֒ a֒dekoracje okien (belki z przyciskami sterujacymi i ramki okien te˙z pe lni֒ ace rol֒ e֒ przycisk´ow), specjalne klienty-belki sterujace, oraz menu operacji zwi֒ azane z t lem ekranu.֒
• R´o˙zni zarzadcy okien maj֒ a֒ parametry konfigurujace ich zachowanie.֒
• Niekt´orzy zarzadcy okien realizuj֒ a֒minimalna֒funkcjonalno´s´c, i sa֒niemal niewidoczni. Inni maja֒ rozbudowana֒funkcjonalno´s´c i narzucaja֒wyglad֒ i zachowanie okien klient´ow, oraz wyglad i organizacj֒ e֒ ca lego ekranu.
Ci pierwsi zwykle pracuja֒ samodzielnie, natomiast drudzy czesto stanowi֒ a֒ cze´s´c֒ bardziej rozbudowanego ´srodowiska graficznego zwanego pulpitem.
System X Window — zarzadca okien֒ 13
Zarz adcy okien — wymagania
֒W poczatkowym okresie, gdy karty graficzne mia ly ograniczon֒ a֒ pamie´c֒
i mo˙zliwo´sci, a monitory niewielkie rozmiary i pamie´c, naturalna by la tendencja֒ do realizacji wszystkich operacji predefiniowanymi sekwencjami kliknie´c֒ myszy, oraz skr´otami klawiaturowymi. Tworzenie dedykowanych przycisk´ow dla tych operacji wydawa lo sie֒ wtedy marnowaniem cennego miejsca na ekranie (tzw.
screen real estate).
P´o´zniej, w miare֒ pojawiania sie֒ tanich monitor´ow i kart graficznych o wiekszych֒ mo˙zliwo´sciach, ´srodowiska graficzne by ly rozbudowywane. Towarzyszyli im zarzadcy okien z bogat֒ a֒konfiguracja֒ ustawiana֒interakcyjnie, z systemu menu.
Jednak nadal okazjonalnie konieczne by lo odpalenie minimalnej, niezawodnej sesji okienkowej (tzw. failsafe session), gdy uruchomienie pe lnego ´srodowiska takiego jak Gnome, by lo niemo˙zliwe z jakiego´s powodu (zwykle b ledu).֒ Ostatnio pojawia sie֒ znowu zapotrzebowanie na skromniejsze interfejsy u˙zytkownika, dajace si֒ e֒ u˙zywa´c na 10-calowych netbookach, a nawet 7-calowych notepadach. Pojawi lo sie֒ (i nadal pojawia) wiele implementacji zarzadcy okien odpowiadaj֒ acych nowoczesnym standardom pulpitu graficznego,֒ ale z interfejsem w stylu historycznego minimalizmu. Warto przynajmniej zna´c jaka´s֒ konfiguracje֒ tego typu.
System X Window — zarzadca okien֒ 14
Zarz adcy okien — podstawowe operacje (geometria)
֒ Podstawowymi operacjami realizowanymi przez zarzadc´ow okien s֒ a֒ przesuwanie i zmiana rozmiaru okienek, czyli og´olnie zmiana geometrii okienka.Prawie wszyscy zarzadcy okien realizuj֒ a֒te operacje, ale na og´o l nie sa֒one konfigurowalne. Czesto do zmiany geometrii s lu˙za dedykowane kontrolki֒ zwiazane z okienkami, tzw. dekoracje, zwykle w belce nad oknem, i przyciski֒ wbudowane w obramowania okienek.
Jednak minimalistyczni zarzadcy okien czasem maj֒ a֒ swoje predefiniowane operacje mysza֒albo skr´oty klawiaturowe. Trzeba dobrze zna´c danego zarzadc֒ e,֒ aby pos lugiwa´c sie֒ nim sprawnie. W nagrode֒ nie tracimy miejsca na ekranie.
System X Window — zarzadca okien֒ 15
Zarz adcy okien — ikonizacja/ukrywanie
֒Wielu zarzadc´ow okien, chocia˙z nie wszyscy, umo˙zliwia redukcj֒ e֒ okien do ikonek (zwana֒minimalizacja), albo pewien jej wariant zwany ukrywaniem okienek.֒ Konkretny mechanizm jest na og´o l charakterystyczny dla zarzadcy okien i jest֒ elementem jego wygladu i stylu. Niekiedy jednak pewne elementy s֒ a֒
konfigurowalne, np. niekt´orzy zarzadcy, kt´orzy umieszczaj֒ a֒ikony okien
w dowolnym miejscu na ekranie, maja֒ r´ownie˙z opcje֒ wy´swietlenia pojemnika na ikony (icon box). Niekt´ore ´srodowiska graficzne stosuja֒ pewien wariant
pojemnika na ikony w postaci belki icon, kt´ora zwykle jest wsp´o lpracujacym֒ z zarzadc֒ a֒okien klientem (ale bez ˙zadnych specjalnych uprawnie´n).
System X Window — zarzadca okien֒ 16
Zarz adcy okien — menu aplikacji
֒Niekt´orzy zarzadcy okien umo˙zliwiaj֒ a֒uruchamianie nowych klient´ow przez klikniecie mysz֒ a. Ta operacja jest na og´o l realizowana przez menu aplikacji֒ zwiazane z oknem bazowym serwera (t lem, lub pulpitem), poniewa˙z nie ma ona֒ nic wsp´olnego z ˙zadnym z dzia lajacych klient´ow.֒
Menu aplikacji mo˙zna tworzy´c i edytowa´c albo za po´srednictwem pliku konfiguracyjnego, albo interakcyjnie, przez akcje zarzadcy okien, albo֒
dedykowany edytor konfiguracji (ta konfiguracja r´ownie˙z jest zapisywana w pliku konfiguracyjnym, ale bez dokumentacji, niedostepnym bezpo´srednio dla֒
u˙zytkownika).
System X Window — zarzadca okien֒ 17
Zarz adcy okien — wyb´
֒or okna aktywnego (focus policy)
Przypomnijmy: domy´slnym, wbudowanym w serwer X Window sposobem wyboru klienta aktywnego (focus policy ) jest focus-follows-mouse (FFM).
Jednak operacje wykonywane przez serwer X Window na polecenie zarzadcy֒ okien umo˙zliwiaja֒implementacje֒ innego sposobu wyboru aktywnego klienta.
Ten spos´ob, zwany click-to-focus (CTF), wymaga klikniecia mysz֒ a֒na okno aby sta lo sie֒ ono aktywne. Wtedy, dodatkowo, jest ono wysuwane na szczyt stosu wy´swietlanych okien (w istocie, w tym trybie operacja uaktywnienia okna, i przeniesienie go na szczyt stosu wy´swietlanych jest jedna֒i ta֒ sama֒operacja).֒ Poniewa˙z tak zachowuja֒ sie֒ systemy Microsoft Windows i Mac OS, wiele
zarzadc´ow okien systemu X Window implementuje to zachowanie jako domy´slne.֒ Tryb focus-follows-mouse (FFM) jest chetniej stosowany z minimalistycznymi֒ zarzadcami okien, poniewa˙z umo˙zliwia prac֒ e֒ r´ownie˙z w oknie, kt´ore nie jest na szczycie stosu, i by´c mo˙ze jest tylko cze´sciowo wy´swietlane. Co ciekawe, w tym֒ trybie czesto przydatna okazuje si֒ e֒ operacja przeniesienia okna na sp´od stosu (lower ), kt´ora w trybie click-to-focus (CTF) nie ma w og´ole sensu.
Pewien wariant metody FFM, zwany sloppy focus, polega na tym, ˙ze klient nie przestaje by´c aktywny gdy wska´znik myszy przesunie sie֒ z jego okna na t lo.
System X Window — zarzadca okien֒ 18
Zarz adcy okien — por´
֒ownanie
program opis geometria ikonizacja menu apl. wyb.aktyw.
Historyczne
olwm Open Look WM dekoracje dekor.,pulpit plik konf. FFC/bez wys twm Tom’s WM dekoracje dek.,pulp/pojem plik konf. FFM+CTF Minimalistyczne
tinywm wzorcowy predef. ? - FFM
aewm Exiguous WM predef. predef.,ukryw. - FFM
evilwm oparty na aewm predef. - tylk.term FFM
jwm Joe’s WM dekor. dekor.,belka pl.konf. FFM
lwm spec.dek. ukryw.,panel -? FFM
blackbox fluxbox openbox icewm Desktopowe
dtwm el.syst.CDE CTF+FFM
xfwm4 el.syst.XFCE -? CTF+FFM
metacity el.syst.GNOME GNOME CTF+FFM
compiz el.syst.GNOME?
enlightenment rozbudowany
System X Window — zarzadca okien֒ 19
W lasno´sci wybranych zarz
adc´
֒ow okien
Spo´sr´od historycznych zarzadc´ow okien X11 ciekawy jest twm (Tom’s window֒ manager). Jest minimalny ale dalece konfigurowalny, i tradycyjnie by l
elementem bazowego pakietu X11. Jego konwencje sa֒ troche֒ nietypowe jak na dzisiejsze standardy, ale przez wielu u˙zytkownik´ow by l traktowany jako opcja fallback, czyli: u˙zyj gdy zawiedzie podstawowa konfiguracja. (Niestety, w wielu dystrybucjach Linuksa nie jest domy´slnie instalowany i trzeba go doinstalowa´c.) Pojawi ly sie֒ te˙z jego nowsze wersje: ctwm i tctwm.
-> Latwa konfiguracja w pliku ~/.twmrc.
-> Root window menu pozwala uruchamia´c dowolne programy.
Nowszym, minimalistycznym, ale mimo to funkcjonalnym zarzadc֒ a֒ okien jest evilwm. Nie zapewnia ikonizacji i nie ma menu aplikacji. Pozwala przesuwa´c i zmienia´c rozmiar, a tak˙ze obni˙za´c okna, klawiszami myszy +Alt, np. Alt-left realizuje przesuniecie, Alt-middle zmian֒ e֒ rozmiaru, a Alt-right przeniesienie na sp´od stosu (lower ). Aktywne sa֒r´ownie˙z obramowania okien, ale w praktyce trzeba je nieco powiekszy´c od domy´slnej szeroko´sci 1 piksela.֒
Ma r´ownie˙z szereg predefiniowanych skr´ot´ow klawiszowych z Ctrl-Alt, np.
Ctrl-Alt-Return uruchamia emulator terminala, klawisze Ctrl-Alt-[hjkl]
przesuwaja֒ okno, a Ctrl-Alt-= i Ctrl-Alt-x maksymalizuja.֒
System X Window — zarzadca okien֒ 20
Zarz adcy okien — skr´
֒oty klawiaturowe
Tradycyjnie zarzadcy okien realizowali poni˙zsze skr´oty klawiaturowe, co֒ pozwala lo na pewne przyspieszenie pracy na ma lych ekranach:
ALT + F3 - lower window ALT + F4 - close window ALT + F5 - restore window ALT + F7 - move window ALT + F8 - resize window ALT + F9 - minimize window ALT + F10 - maximize window
Obecnie wiekszo´s´c zarz֒ adc´ow okien predefiniuje tylko cz֒ e´s´c֒ z tych konwencji (np. Alt-F7, Alt-F9), ale pozwala dodefiniowa´c dowolne inne.
System X Window — zarzadca okien֒ 21
System X Window — zarzadca okien֒ 22
Praca z systemem X Window w ´srodowisku sieciowym
Gdy mamy wiele serwer´ow i wielu klient´ow, musimy wskaza´c klientowi, na kt´ory serwer ma wysy la´c ˙zadania wy´swietlania, za pomoc֒ a֒tzw. specyfikacji ekranu:
[adresIPkomputera]:numerserwera[.numerekranu]
Specyfikacje֒ te֒ mo˙zna poda´c klientom za pomoca֒ argumentu wywo lania -display:
xcalc -display 156.17.9.1:0
albo za pomoca֒ zmiennej ´srodowiskowej $DISPLAY:
setenv DISPLAY lab103-2.ict.pwr.wroc.pl:0.0 xterm &
W specyfikacji serwera brak numeru ekranu oznacza domy´slny numer 0, a brak adresu IP komputera oznacza adres IP lokalnego komputera. Zamiast adresu lokalnego komputera mo˙zna te˙z poda´c nazwe֒ specjalna “unix”. Natomiast֒ numer serwera jest obowiazkowy i nie mo˙ze by´c domy´slny. Zatem najprostsza֒ specyfikacja ekranu ma posta´c :0 i jest r´ownowa˙zna unix:0 oraz
localhost:0.
System X Window — praca w sieci 23
Uruchamianie klient´ow na innym (zdalnym) komputerze ni˙z serwer, przez telnet, rsh lub ssh:
ssh diablo.ict.pwr.wroc.pl xterm -display ja.t16.ds.pwr.wroc.pl:0 ssh diablo.ict.pwr.wroc.pl
setenv DISPLAY ja.t16.ds.pwr.wroc.pl:0 xterm &
System X Window — praca w sieci 24
Zezwolenie na wy´swietlanie na serwerze
System X Window posiada mechanizm pozwalajacy serwerowi kontrolowa´c, od֒ kt´orych klient´ow bedzie on przyjmowa l ˙z֒ adania. Istniej֒ a֒ dwa mechanizmy kontroli dostepu. Prostszy (starszy i bardziej prymitywny) mechanizm oparty֒ jest na adresie IP klienta. Mo˙zna zada´c liste֒ adres´ow, z kt´orych serwer bedzie֒ przyjmowa l ˙zadania zg laszajacych si֒ e֒ klient´ow. Mo˙zna r´ownie˙z ca lkowicie wy laczy´c kontrol֒ e֒ dostepu do serwera.֒
Np.:
xhost
xhost +diablo.ict.pwr.wroc.pl xhost
xhost -diablo.ict.pwr.wroc.pl xhost
albo
xhost +
(Ostatnie wywo lanie ca lkowicie wy lacza kontrol֒ e֒ dostepu.)֒
System X Window — praca w sieci 25
Autoryzacja wy´swietlania na serwerze
Nowszy i skuteczniejszy mechanizm kontroli dostepu do serwera opiera si֒ e֒ na wykorzystaniu kod´ow autoryzacji. Serwer tworzy w chwili rozpoczynania sesji u˙zytkownika kod autoryzacyjny sesji i zapisuje go na pliku ~/.Xauthority.
Kod autoryzacyjny mo˙zna przes la´c na komputer, z kt´orego uruchamiane bed֒ a֒ klienty, kt´ore normalnie szukaja֒ tego kodu w pliku zadanym zmienna֒
´srodowiskowa XAUTHORITY.֒
Wy´swietlenie na ekranie wszystkich kod´ow autoryzacji z domy´slnego pliku:
xauth list
Specyfikacja serwera, jaka֒ podaje sie֒ programowi xauth musi zgadza´c sie֒ ze specyfikacja֒ podana֒ w chwili generowania danego kodu. Czyli je´sli np. kod wygenerowany zosta l na komputerze diablo.ict.pwr.wroc.pl dla serwera X zapisanego jako :0, to nie mo˙zemy tego kodu wykorzysta´c na innym
komputerze, poniewa˙z tam specyfikacja serwera :0 by laby ´zle zinterpretowana przez klient´ow. Mo˙zna jednak podawa´c specyfikacje poprzedzone adresem IP serwera X w formacie:
adresIPkomputera/[adresIPkomputera]:numerserwera[.numerekranu]
System X Window — praca w sieci 26
Manipulowanie kodami autoryzacji
Skuteczne pos lugiwanie sie֒ systemem X Window w sieci, gdy niekt´ore klienty sa֒ wywo lywane ze zdalnych komputer´ow, wymaga jawnego przekazywania kod´ow autoryzacyjnych. Na przyk lad, odczytanie kodu autoryzacji domy´slnego serwera, oraz przes lanie go i zapisanie na zdalnym komputerze, pozwala zdalnym klientom autoryzowa´c sie֒ przy wy´swietlaniu na lokalnym serwerze:
xauth extract - $DISPLAY | ssh diablo.ict.pwr.wroc.pl xauth merge -
W razie potrzeby mo˙zna za˙zada´c by lokalny serwer (:0) wygenerowa l nowy֒ kod autoryzacji sesji:
xauth generate :0 .
W powy˙zszym wywo laniu kropka jest skr´otem domy´slnego protoko lu autoryzacji, tzw. MIT-MAGIC-COOKIE-1
Oba mechanizmy kontroli dostepu do serwera wsp´o lpracuj֒ a֒w ten spos´ob, ˙ze kody autoryzacji xauth sa֒ sprawdzane tylko wtedy, gdy dany klient nie ma zezwolenia na wy´swietlanie xhost.
System X Window — praca w sieci 27
Tunelowanie komunikacji X Window przez po l
aczenia ssh
֒ W wielu sytuacjach po laczenie klienta z serwerem X Window (port TCP 6000֒ dla serwera :0, 6001 dla :1, itd.) z r´o˙znych wzgled´ow nie jest mo˙zliwe. Na֒ przyk lad: serwer mo˙ze znajdowa´c sie֒ w sieci lokalnej za zapora ogniow֒
a (ang.֒
firewall), kt´ora nie przepuszcza do wewnatrz sieci ˙zadnych po l֒ acze´n, albo mo˙ze֒ znajdowa´c sie֒ w sieci z filtrowanymi adresami, gdzie komputery w sieci
wewnetrznej maj֒ a֒ prywatne adresy w og´ole niewidoczne w Internecie.
W takich sytuacjach mo˙zna czesto przetunelowa´֒ c po laczenia X Window przez֒ po laczenie ssh. Je˙zeli mo˙zemy wykona´c po l֒ aczenie ssh z komputera,֒
posiadajacego serwer X Window, w takiej sieci lokalnej, do jakiego´s serwera֒ internetowego, to program ssh mo˙ze utworzy´c tunel przekazujacy pakiety na֒ wskazane porty w ramach swojego po laczenia. W ten spos´ob mo˙zemy utworzy´c֒ na zdalnym serwerze internetowym wirutalny serwer X Window, o adresie
wewnatrz tego serwera. Jednak komunikacja kierowana przez klienty X Window֒ na ten adres bedzie przekazywana do bezpo´srednio niedost֒ epnego serwera X֒ Window.
System X Window — praca w sieci 28
Komunikacja ze zdalnym zarz adc
֒a ekran´
֒ow xdm
Praca w sieci zwykle polega na pod laczaniu si֒ e֒ do innych komputer´ow (np. ssh) i uruchamianiu na nich klient´ow z wy´swietlaniem na lokalny serwer. W efekcie mamy ´srodowisko graficzne lokalnego komputera, i wybrane zdalne klienty.
W systemie X Window istnieje mechanizm, zwany zarz adc֒
a ekran´֒ ow (display manager ), s lu˙zacy do automatycznego uruchamiania serwer´ow X na grupie֒ ekran´ow graficznych, bed֒ acych pod jego kontrol֒ a. Zarz֒ adca ekran´ow obs luguje֒ te˙z proces logowania sie֒ i tworzenia sesji na serwerze X, poniewa˙z u˙zytkownik nie ma mo˙zliwo´sci rozpoczecia pracy na uruchomionym przez system serwerze.֒ Zarzadca ekran´ow mo˙ze te˙z by´c skonfigurowany do wysy lania klienta logowania֒ na serwer X Window, kt´ory o to poprosi (protoko lem XDMCP). Pozwala to uruchomi´c serwer, kt´ory zamiast wy´swietla´c okna lokalnych klient´ow, inicjuje logowanie sie֒ u˙zytkownika do zdalnego komputera w trybie graficznym.
Poni˙zsze wywo lanie uruchamia na lokalnym komputerze drugi serwer (:1), kt´ory poprosi zdalnego zarzadc֒ e֒ ekran´ow o przys lanie klienta logowania:
X -query -once adres.ip.zarzadcy.ekranow :1
System X Window — praca w sieci 29
Serwery-klienty X Window
Mo˙zliwo´s´c uruchamiania niestandardowych konfiguracji serwer´ow X Window jest atrakcyjna, jednak utrudniona przez konieczno´s´c obs lugi surowego ekranu
graficznego. Istnieja֒ programy, kt´ore sa֒ klientami, tworza֒ okienko graficzne, a nastepnie inicjuj֒ a֒ wirtualny serwer X Window. Serwer jest wirtualny w takim sensie, ˙ze nie obs luguje sprzetu wy´swietlaj֒ acego, karty graficznej, klawiatury ani֒ myszy, tylko jako ekran wykorzystuje swoje okienko, a z klawiatura֒ i mysza֒ komunikuje sie֒ jak zwyk ly klient.
Natomiast od strony sieciowej taki program jest normalnym serwerem, i mo˙ze zar´owno przyjmowa´c ˙zadania wy´swietlania od dowolnych klient´ow, jak֒
komunikowa´c sie֒ z zarzadcami ekran´ow protoko lem XDMCP.֒
Przyk ladami takich serwer´ow-klient´ow sa֒Xnest i Xephyr. Uruchamiajac je֒ podajemy zar´owno argumenty charakterystyczne dla klienta jak i serwera, np.:
Xephyr -screen 1024x768 -display :0 -query adres.ip.zarzadcy.ekranow :1
Powy˙zsze wywo lanie tworzy okienko klienta o zadanej geometrii na serwerze :0, oraz inicjuje serwer :1 kt´ory laczy si֒ e֒ ze zdalnym zarzadc֒ a֒ekran´ow.
System X Window — praca w sieci 30
Zasoby
Zasoby (ang. resources) sa֒zmiennymi, okre´slonymi dla konkretnych aplikacji (klient´ow), kt´ore pozwalaja֒ ustawi´c na sta le pewne opcjonalne parametry klient´ow, bez ich ka˙zdorazowego jawnego podawania (np. w wierszu
wywo lania). Przyk ladami zasob´ow moga֒ by´c wielko´s´c okienka edytora, flagi okre´slajace zachowanie si֒ e֒ klienta, po˙zadane kolory, itp.֒
Mechanizm zasob´ow pe lni podobna֒funkcje֒ do plik´ow konfiguracyjnych klient´ow, jednak zamiast wpisywa´c preferencje u˙zytkownika do plik´ow na wszystkich komputerach, z kt´orych uruchamiane maja֒ by´c klienty, zasoby sa֒ wpisywane do serwera (dynamicznie), skad s֒ a֒dostepne dla wszystkich klient´ow.֒ Przy uruchamianiu serwera lub sesji warto´sci zasob´ow sa֒normalnie ladowane do serwera z pliku .Xresources lub .Xdefaults.
Zasoby okre´slane sa֒ w systemie hierarchicznym, gdzie pierwszym elementem hierarchii jest umowna nazwa klienta, a ostatnim nazwa konkretnego zasobu.
Mo˙zliwe sa֒ poziomy po´srednie w okre´slaniu zasob´ow. Mo˙zliwe jest r´ownie˙z okre´slanie ca lych klas zasob´ow obejmujacych szereg instancji zasob´ow֒ nale˙zacych do danej klasy (klas֒ e֒ identyfikuje nazwa rozpoczynajaca si֒ e֒ wielka֒ litera). Pozwala to np. na latwe okre´slanie warto´sci dla wielu zasob´ow, i od nich֒ pojedynczych wyjatk´ow.֒
System X Window — zasoby 31
• Przyk lady specyfikacji zasob´ow:
emacs.font: -adobe-courier-*-r-*-*-18-*-*-*-*-*-*-*
emacs.cursorColor: black emacs.pointerColor: red emacs.geometry: 80x50
emacs.foreground: light goldenrod yellow emacs*Background: #5b7686
Ghostview.pageMedia: A4 Fig.latexfonts: true Fig.specialtext: true
• Przyk lady ladowania zasob´ow z pliku do serwera:
xrdb -load $HOME/.Xresources
echo ’xterm*scrollBar: True’ | xrdb -merge
System X Window — zasoby 32
Czcionki
System X Window ma rozbudowany system czcionek, kt´orego elementami sa:֒ system nazw czcionek, kt´orymi moga֒ pos lugiwa´c sie֒ klienty, i ´scie˙zka katalog´ow dyskowych dostepnych dla serwera, gdzie mo˙ze on odnajdowa´c pliki֒
z konkretnymi czcionkami. Serwer czyta opisy wszystkich czcionek na starcie, ale mo˙zna zmieni´c te opisy lub ca la ´scie˙zk֒ e֒ poleceniem xset fp .... Mo˙zna pos lugiwa´c sie֒ nazwami czcionek uog´olnionymi (z *) oraz aliasami. Baza alias´ow czcionek znajduje sie֒ w pliku /usr/lib/X11/fonts/fonts.dir
xfontsel -sample "Ala ma kota" &
xfontsel -sample "ko´s´c chrz
e´֒s´c wo´n to´n ´snied´z ´swite´z tr´ojk at w֒
aw´֒ oz" &
xfd -fn -dt-application-bold-r-normal-serif-18-180-75-75-m-110-iso8859-2 xlsfonts -fn ’*-iso8859-2’
mkdir ~/FONTS
echo ’polska -dt-*-bold-r-*-18-*-m-*-iso8859-2’ > ~/FONTS/fonts.alias xset fp+ ~/FONTS/
xset fp rehash xterm -fn polska &
System X Window — czcionki 33
1= foundry 2 = font family 3 = weight 4 = slant 5 = set width 6 = pixels
7 = points (in tenths)
8 = horizontal resolution in d.p.i.
9 = vertical resolution in d.p.i.
10 = spacing
11 = average width (in tenths of a pixel) 12 = character set
System X Window — czcionki 34
System X Window — czcionki 35
Kolory
Kolory, podobnie jak czcionki, sa֒ elementami systemu pod nadzorem serwera, do kt´orych klienty moga֒ odwo lywa´c sie֒ w swoich ˙zadaniach wy´swietlenia.֒ Specyfikacja koloru jest mo˙zliwa numerycznie, np. w systemie RGB, albo przez s lowne okre´slenia kolor´ow, zdefiniowane w bazie danych kolor´ow w pliku
/usr/lib/X11/rgb.txt (na Solarisie: /usr/openwin/lib/X11/rgb.txt).
Baza ta zawiera takie okre´slenia jak:
”lavender blush”,
”pale violet red”, albo
”deep sky blue”.
Mo˙zna r´ownie˙z okre´sla´c kolory w systemie RGB cyframi szesnastkowymi u˙zywajac od jednej do czterech cyfr na kolor, np. czerwony kolor to #F00 jak֒ r´ownie˙z #F00000000000 (ten sam czerwony) oraz #FF0000 (
”bardziej”
czerwony). Nowszy model specyfikacji kolor´ow pozwala okre´sla´c je w r´o˙znych przestrzeniach kolor´ow u˙zywajac notacji typu: rgb:ffff/0/0.֒
Najprostszy spos´ob pos lugiwania sie֒ kolorami jest przez opcje klienta:
-bg (background) -fg (foreground) -bd (border) albo przez ustawienia jego zasob´ow.
xterm -bg ’light blue’ -fg ’#fff’ -bd plum -cr rgb:f/f/0
System X Window — kolory 36
Pomimo tego wirtualnego bogactwa kolor´ow, istnieja֒serwery X Window z ograniczona֒liczba֒kolor´ow mo˙zliwych do wy´swietlenia w danym momencie, z tzw. mapa֒ kolor´ow. Nie moga֒one zrealizowa´c wszystkich ˙zada´n klient´ow֒ o wy´swietlanie kolor´ow. Moga֒r´ownie˙z zmienia´c mapy kolor´ow przy zmianie aktywnego klienta. Polecenie xdpyinfo podaje informacje o mo˙zliwo´sciach wy´swietlania serwera.
System X Window — kolory 37