Wprowadzenie do systemu X

Witold Paluszy´nski Katedra Cybernetyki i Robotyki Politechnika Wroc lawska http://www.kcir.pwr.edu.pl/~witold/

2001–2013 Ten utw´or jest doste֒ pny na licencji Creative Commons Uznanie autorstwa- Na tych samych warunkach 3.0 Unported

Utw´or udoste֒ pniany 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).

Zalo˙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 sprze֒ towej 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) mie֒ dzy 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 osia֒gnie֒ ty. W roku 1987 wprowadzono wersje֒ 11 systemu (nazywanego te˙z X11), kt´ora jest jego bie˙za֒ca֒ wersja֒. W tym czasie powsta lo kilka kolejnych wyda´n (release) rozszerzaja֒cych funkcjonalno´sci systemu. Najnowszym jest wydanie 7, tzw. X11R7, z roku 2005 (11 lat po R6). Jednak poza pewnymi rozszerzeniami zasadniczy protok´ol 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 zrzeszaja֒ce producent´ow, firmy i organizacje zainteresowane u˙zytkowaniem i rozwojem systemu.

System X Window — wprowadzenie 3 System X Window — znaczenie spo leczne

Od pocza֒tku system X Window by l projektem otwartym — zak lada l ca lkowita֒ jawno´s´c opracowanej koncepcji i zamiar udoste֒ pnienia systemu zainteresowanym jednostkom. M.I.T. od pocza֒tku udoste֒ pnia l wszystkie opracowane programy w wersji ´zr´od lowej zar´owno producentom oprogramowania, jak i u˙zytkownikom.

Mie֒ dzy innymi dlatego system zosta l od pocza֒tku zaakceptowany przez mie֒ dzynarodowe konsorcjum producent´ow sprze֒ tu komputerowego jako standard systemu okienkowego, i koncepcja tego systemu jest najpowszechniej .przyje֒ ta֒ koncepcja֒ takiego systemu

System X Window — wprowadzenie 4 Model konstrukcji programu graficznego

Tradycyjny schemat programu graficznego Model X Window programu graficznego

biblioteka procedur gra− biblioteka procedur gra− Program zródlowy ficznych zamieniajacych ficznych zamieniajacych Program zródlowy operacje graficzne wyso− operacje graficzne wy− wywolania procedur kiego rzedu na operacje sokiego rzedu na wywo− wywolania procedur wysokiego rzedu two− obslugujace konkretne lania protokolu X nie− wysokiego rzedu two− rzacych obiekty graficzne urzadzenie wyswietlajace zalezne od systemu ani rzacych obiekty graficzne sprzetu wyswietlajacego

kompilator kompilator

Program binarny Program binarny kod obsluguje konkretne kod wysyla polecenia urzadzenie graficzne protokolu X Window do serwera

serwer X Window

odbiera polecenia pro− tokolu X Window i obsluguje konkretne urzadzenie graficzne

SIEC

System X Window — wprowadzenie 5 Podstawowe pojecia֒ i architektura systemu X Window Sk ladniki systemu X Window:

,(serwer ekranowy: urza֒dzenie u˙zytkownika (ekran, klawiatura, mysz • i program obs luguja֒cy; najcze´s֒ ciej serwer jest uruchamiany na stacji roboczej albo komputerze typu PC, aczkolwiek istnieja֒ sprze֒ towe realizacje serwer´ow X Window, klienty: programy wy´swietlaja֒ce; moga֒ 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´nserwera: • odbieranie sygna l´ow od myszy i z klawiatury oraz przekazywanie ich klientowi aktywnemu (ang. ), • 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´curuchomiony z zewnatrz.֒ Tradycyjnie, najwa˙zniejszym klientem, zwykle uruchamianym ,w domy´slnej konfiguracji, by l emulator terminala, np. . Dzie֒ ki 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 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 wydaja֒c mu pewne polecenia. Nie wy´swietlaja֒ 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 zamknie֒ ta. Wykonanie ostatniego klienta w pierwszym planie powoduje, ˙ze sesja trwa dop´oki dzia la ten ostatni klient. Pe lni on wie֒ c role֒ steruja֒ca֒ 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 mysza • 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´swietlaja֒cy 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 zwia֒zana 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 doste֒ pu 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. Be֒ dzie o nich mowa dalej

System X Window — serwer 10 Klienty X Window

Po la֒czenie klient´ow z serwerem: o ile serwer normalnie komunikuje sie֒ • z wieloma klientami jednocze´snie, obs luguja֒c ich ˙za֒dania, 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 lonie֒ cia

: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´ol czesne klienty X Window, jakimi sa֒ • .np. firefox, acroread, openoffice, itp. maja֒ swoje w lasne systemy konfiguracji Podobnie graficzne ´srodowiska, zwane pulpitami, be֒ da֒ce konfiguracjami .okienek, ustawie´n, konwencji, i protoko l´ow komunikacji mie֒ dzy 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 - zarza֒dzanie uruchamianiem serwer´ow xcalc - kalkulator xset - konfigurowanie pracuja֒cego serwera xclipboard - text clipboard xsetroot - ustawianie parametr´owt la xclock-oknozzegarem xhost - autoryzacja doste֒ puprzezIP xedit-prostyedytortekstowy xauth - zarza֒dzanie kodami autoryzacji xkill - kasowanie klienta przez wyb´or okna xrdb - obs luga zasob´ow ( ladowanie,wy´sw.) xload-wy´sw.obcia˙z֒ enia 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.informacjiooknie xmag-powie֒ kszenie fragmentu ekranu xprop - wy´sw.w lasno´sci okien i czcionek xwd - zrzut ekranu do pliku w spec.formacie xlsfonts - wy´swietlanielistyczcionek xwud-wy´swietlanie zrzutu ekranu z pliku xfontsel-wybieranieczcionek xpr-drukowaniezrzutuekranu na drukarce xfd - wy´swietlanieczcionek xdpr-bezpo´sr.drukowanie zrzutu ekranu

System X Window — klienty 12 Zarzadca֒ okien

Zarza֒dca okien () jest klientem systemu X Window • o specjalnych prawach; mo˙ze by´c tylko jeden zarza֒dca okien dla danego serwera wed lug zasady: kto pierwszy ten lepszy.

Funkcje zarza֒dcy okien: rozmieszczanie i rozmiar okien klient´ow na ekranie • ,(zarza֒dca 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 zarza֒dcy okien tworza֒ dekoracje okien • ,(belki z przyciskami steruja֒cymi i ramki okien te˙z pe lnia֒ce role֒ przycisk´ow) .specjalne klienty-belki steruja֒ce, oraz menu operacji zwia֒zane z t lem ekranu

.R´o˙zni zarza֒dcy okien maja֒ parametry konfiguruja֒ce ich zachowanie •

Niekt´orzy zarza֒dcy okien realizuja֒ minimalna֒ funkcjonalno´s´c,isa֒ niemal • niewidoczni. Inni maja֒ rozbudowana֒ funkcjonalno´s´c i narzucaja֒ wygla֒d .i zachowanie okien klient´ow, oraz wygla֒d i organizacje֒ ca lego ekranu Ci pierwsi zwykle pracuja֒ samodzielnie, natomiast drudzy cze֒ sto stanowia֒ .cze´s´c֒ bardziej rozbudowanego ´srodowiska graficznego zwanego pulpitem

System X Window — zarzadca֒ okien 13 Zarzadcy֒ okien — wymagania

W pocza֒tkowym okresie, gdy karty graficzne mia ly ograniczona֒ 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 wie֒ kszych mo˙zliwo´sciach, ´srodowiska graficzne by ly rozbudowywane. Towarzyszyli im .zarza֒dcy okien z bogata֒ 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 le֒ du

Ostatnio pojawia sie֒ znowu zapotrzebowanie na skromniejsze interfejsy u˙zytkownika, daja֒ce sie֒ u˙zywa´c na 10-calowych netbookach, a nawet 7-calowych notepadach. Pojawi lo sie֒ (i nadal pojawia) wiele implementacji ,zarza֒dcy okien odpowiadaja֒cych 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 (Zarzadcy֒ okien — podstawowe operacje (geometria

Podstawowymi operacjami realizowanymi przez zarza֒dc´ow okien sa֒ przesuwanie i zmiana rozmiaru okienek, czyli og´olnie zmiana geometrii okienka.

Prawie wszyscy zarza֒dcy okien realizuja֒ te operacje, ale na og´ol nie sa֒ one konfigurowalne. Cze֒ sto do zmiany geometrii s lu˙za dedykowane kontrolki zwia֒zane z okienkami, tzw. dekoracje, zwykle w belce nad oknem, i przyciski wbudowane w obramowania okienek.

Jednak minimalistyczni zarza֒dcy okien czasem maja֒ swoje predefiniowane , operacje mysza֒ albo skr´oty klawiaturowe. Trzeba dobrze zna´c danego zarza֒dce֒ .aby pos lugiwa´c sie֒ nim sprawnie. W nagrode֒ nie tracimy miejsca na ekranie

System X Window — zarzadca֒ okien 15 Zarzadcy֒ okien — ikonizacja/ukrywanie

Wielu zarza֒dc´ow okien, chocia˙z nie wszyscy, umo˙zliwia redukcje֒ okien do ikonek .zwana֒ minimalizacja֒), albo pewien jej wariant zwany ukrywaniem okienek)

Konkretny mechanizm jest na og´ol charakterystyczny dla zarza֒dcy okien i jest elementem jego wygla֒du i stylu. Niekiedy jednak pewne elementy sa֒ konfigurowalne, np. niekt´orzy zarza֒dcy, kt´orzy umieszczaja֒ 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´ol pracuja֒cym .(z zarza֒dca֒ okien klientem (ale bez ˙zadnych specjalnych uprawnie´n

System X Window — zarzadca֒ okien 16 Zarzadcy֒ okien — menu aplikacji

Niekt´orzy zarza֒dcy okien umo˙zliwiaja֒ uruchamianie nowych klient´ow przez kliknie֒ cie mysza֒. Ta operacja jest na og´ol realizowana przez menu aplikacji zwia֒zane z oknem bazowym serwera (t lem, lub pulpitem), poniewa˙z nie ma ona .nic wsp´olnego z ˙zadnym z dzia laja֒cych klient´ow

Menu aplikacji mo˙zna tworzy´c i edytowa´c albo za po´srednictwem pliku konfiguracyjnego, albo interakcyjnie, przez akcje zarza֒dcy okien, albo dedykowany edytor konfiguracji (ta konfiguracja r´ownie˙z jest zapisywana w pliku konfiguracyjnym, ale bez dokumentacji, niedoste֒ pnym bezpo´srednio dla u˙zytkownika).

System X Window — zarzadca֒ okien 17 (Zarzadcy֒ 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 zarza֒dcy .okien umo˙zliwiaja֒ implementacje֒ innego sposobu wyboru aktywnego klienta

Ten spos´ob, zwany click-to-focus (CTF), wymaga kliknie֒ cia mysza֒ 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 .zarza֒dc´ow okien systemu X Window implementuje to zachowanie jako domy´slne

Tryb focus-follows-mouse (FFM) jest che֒ tniej stosowany z minimalistycznymi zarza֒dcami okien, poniewa˙z umo˙zliwia prace֒ r´ownie˙z w oknie, kt´ore nie jest na szczycie stosu, i by´c mo˙ze jest tylko cze´s֒ ciowo wy´swietlane. Co ciekawe, w tym trybie cze֒ sto przydatna okazuje sie֒ 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 Zarzadcy֒ okien — por´ownanie program opis geometria ikonizacja menu apl. wyb.aktyw. Historyczne Open Look WM dekoracje dekor.,pulpit plik konf. FFC/bez wys Tom’s WM dekoracje dek.,pulp/pojem plik konf. FFM+CTF Minimalistyczne tinywm wzorcowy predef. ? - FFM aewm Exiguous WM predef. predef.,ukryw. - FFM evilwm opartynaaewm predef. - tylk.term FFM Joe’s WM dekor. dekor.,belka pl.konf. FFM lwm spec.dek. ukryw.,panel -? FFM fluxbox Desktopowe dtwm el.syst.CDE CTF+FFM xfwm4 el.syst. -? CTF+FFM el.syst.GNOME GNOME CTF+FFM el.syst.GNOME? rozbudowany

System X Window — zarzadca֒ okien 19 W lasno´sci wybranych zarzadc´ow֒ okien Spo´sr´od historycznych zarza֒dc´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: i tctwm -> L atwa konfiguracja w pliku ~/.twmrc. -> Root window menu pozwala uruchamia´c dowolne programy.

Nowszym, minimalistycznym, ale mimo to funkcjonalnym zarza֒dca֒ 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 przesunie֒ cie, Alt-middle zmiane֒ rozmiaru, a Alt-right przeniesienie na sp´od stosu (lower). Aktywne sa֒ r´ownie˙z obramowania okien, ale w praktyce .trzeba je nieco powie֒ kszy´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 Zarzadcy֒ okien — skr´oty klawiaturowe

Tradycyjnie zarza֒dcy 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 wie֒ kszo´s´c zarza֒dc´ow okien predefiniuje tylko cze´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˙za֒dania wy´swietlania, za pomoca֒ 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“֒ ”. Natomiast numer serwera jest obowia֒zkowy 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 pozwalaja֒cy serwerowi kontrolowa´c, od kt´orych klient´ow be֒ dzie on przyjmowa l ˙za֒dania. Istnieja֒ dwa mechanizmy kontroli doste֒ pu. Prostszy (starszy i bardziej prymitywny) mechanizm oparty jest na adresie IP klienta. Mo˙zna zada´c liste֒ adres´ow, z kt´orych serwer be֒ dzie przyjmowa l ˙zadania zg laszaja֒cych sie֒ klient´ow. Mo˙zna r´ownie˙z ca lkowicie .wy la֒czy´c kontrole֒ doste֒ pu 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 la֒cza kontrole֒ doste֒ pu)

System X Window — praca w sieci 25 Autoryzacja wy´swietlania na serwerze

Nowszy i skuteczniejszy mechanizm kontroli doste֒ pu do serwera opiera sie֒ 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 be֒ da֒ 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 przeslanie 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˙za֒da´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 doste֒ pu do serwera wsp´ol pracuja֒ 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 laczenia֒ ssh

W wielu sytuacjach po la֒czenie klienta z serwerem X Window (port TCP 6000 dla serwera :0, 6001 dla :1, itd.) z r´o˙znych wzgle֒ d´ow nie jest mo˙zliwe. Na .przyk lad: serwer mo˙ze znajdowa´c sie֒ w sieci lokalnej za zapora֒ ogniowa֒ (ang firewall), kt´ora nie przepuszcza do wewna֒trz sieci ˙zadnych po la֒cze´n, albo mo˙ze znajdowa´c sie֒ w sieci z filtrowanymi adresami, gdzie komputery w sieci .wewne֒ trznej maja֒ prywatne adresy w og´ole niewidoczne w Internecie

W takich sytuacjach mo˙zna cze֒ sto przetunelowa´c po la֒czenia X Window przez ,po la֒czenie ssh. Je˙zeli mo˙zemy wykona´c po la֒czenie ssh z komputera posiadaja֒cego serwer X Window, w takiej sieci lokalnej, do jakiego´s serwera internetowego, to program ssh mo˙ze utworzy´c tunel przekazuja֒cy pakiety na wskazane porty w ramach swojego po la֒czenia. W ten spos´ob mo˙zemy utworzy´c na zdalnym serwerze internetowym wirutalny serwer X Window, o adresie wewna֒trz tego serwera. Jednak komunikacja kierowana przez klienty X Window na ten adres be֒ dzie przekazywana do bezpo´srednio niedoste֒ pnego serwera X Window.

System X Window — praca w sieci 28 Komunikacja ze zdalnym zarzadc֒ a֒ ekran´ow xdm

(Praca w sieci zwykle polega na pod la֒czaniu sie֒ 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 zarzadc֒ a֒ ekran´ow (display manager), s lu˙za֒cy do automatycznego uruchamiania serwer´ow X na grupie ekran´ow graficznych, be֒ da֒cych pod jego kontrola֒. Zarza֒dca ekran´ow obs luguje te˙z proces logowania sie֒ i tworzenia sesji na serwerze X, poniewa˙z u˙zytkownik .nie ma mo˙zliwo´sci rozpocze֒ cia pracy na uruchomionym przez system serwerze

Zarza֒dca 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 zarza֒dce֒ 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 naste֒ pnie inicjuja֒ wirtualny serwer X Window. Serwer jest wirtualny w takim sensie, ˙ze nie obs luguje sprze֒ tu wy´swietlaja֒cego, 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˙za֒dania wy´swietlania od dowolnych klient´ow, jak .komunikowa´c sie֒ z zarza֒dcami ekran´ow protoko lem XDMCP

Przyk ladami takich serwer´ow-klient´ow sa֒ Xnest i . Uruchamiaja֒c 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 la֒czy sie֒ ze zdalnym zarza֒dca֒ 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´slaja֒ce zachowanie sie֒ klienta, po˙za֒dane 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), ska֒d sa֒ doste֒ pne 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 obejmuja֒cych szereg instancji zasob´ow nale˙za֒cych do danej klasy (klase֒ identyfikuje nazwa rozpoczynaja֒ca sie֒ wielka֒ litera֒). Pozwala to np. na latwe okre´slanie warto´sci dla wielu zasob´ow, i od nich .pojedynczych wyja֒tk´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 doste֒ pnych 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˙zke֒ 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´cchrze´s´cwo´nto´n´snied´z´swite´ztr´ojk֒ at֒ waw´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 ˙za֒daniach 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˙zywaja֒c 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˙zywaja֒c 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 ˙za֒da´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