X Windows - sissejuhatus 1984 - Massachusettsi Tehnoloogiainstituut. MIT X11 - universaalne akendesüsteem, mis tagab rakenduste sõltumatuse konkreetsetest graafikaseadmetest. X-server - programm, mille üleasandeks on pildi näitamine kasutajale X-terminaalil. Kõik rakendused (X-kliendid) pöörduvad graafikaoperatsioonideks X-serveri poole kindla protokolli alusel. X-serverit juhivad X-sündmused (hiire liigutamine, hiirenuppude vajutamine ja lahtilaskmine, klahvivajutused jne.). X-kliendiks on iga graafikaliidesega programm. Erilisel kohal klientide hulgas on aknahaldur (window manager), mis suhtleb ka teiste klientidega (ICCCM - Inter-Client Communication Conventions Manual), andes X-akendele "välimuse" ja käitumise. X-ressursid on serverile vajalikud kujutise tekitamiseks - värvid, kirjad, ikoonid, ... X-server ja X-kliendid võivad asuda erinevates arvutites ja suhelda võrgu vahendusel X-protokolli kasutades. X Windows - DISPLAY X-server töötab mingi kindla monitori jaoks, mis määratakse järgmiselt: masin:displeinumber.ekraaninumber kus masin on masina nimi, IP-aadress või puudub, kui tegemist "sama" masinaga displei (display) viitab ühele graafilisele töökohale, kus on ühine hiir ja klaviatuur, kuid võib-olla mitu monitori. Ühe masinaga võib olla seotud mitu niisugust töökohta. ekraan (screen) viitab konkreetsele monitorile graafilisel töökohal. Displeinumbrid ja ekraaninumbrid algavad nullist, ekraaninumber pole kohustuslik (eeldatavalt null). Näit. keskkonnamuutuja DISPLAY c-shell setenv DISPLAY gregorius:0 Bourne shell DISPLAY=gregorius:0; export DISPLAY Kliendi võib käivitada parameetriga display, mis on kõrgema prioriteediga X Windows - aknahaldurid Aknahaldureid on mitmeid, kasutaja saab sobiva valida. olwm - OPEN LOOK window manager olvwm - Virtual Open Look window manager twm - Tab window manager ctwm - Virtual Tab window manager mwm - Motif window manager ... Tavaliselt käivitatakse aknahaldur X-windows initsialiseerimisfaili .xinitrc viimase käsuna (mitte taustale). Igal aknahalduril individuaalne (vahel ka iga ekraani jaoks individuaalne) initsialiseerimisfail. Aknahalduri valikust sõltub näiteks: - akende välimus (dekoreerimine) - võimalus kasutada virtuaalseid ekraane - menüüd hiirenuppude all, - reageerimine X-sündmustele X Windows - tähtsaid faile ja muutujaid .xinitrc - X Windows klientide algkäivitus (üldiselt taustale, aknahaldur viimasena ja mitte taustale), vt. xinit .openwin-init - olwm konfiguratsioonifail .openwin-menu - olwm menüüde määramine .twmrc - twm konfiguratsioonifail .ctwmrc - ctwm konfiguratsioonifail .mwmrc - mwm konfiguratsioonifail .Xdefaults - X-ressursside määramine klientidele; jõustub xrdb-programmiga .Xauthority - turvafail, mida saab muuta xhost-programmiga, vt. ka xauth .xmodmaprc - klaviatuurimäärangud, vt. xmodmap DISPLAY - X-serveri ekraani määrang XAUTHORITY - viit turvafailile, kui see pole .Xauthority OPENWINHOME - viit OpenWindows süsteemikataloogile X Windows - aknad Igal ekraanil on juuraken - root window, aknad moodustavad hirarhilise puu. Üldjuhul ei välju mistahes akna alluvad oma ülemakna piiridest, alluvad omavahel võivad kattuda. Erandi moodustab üks klass dialoogaknaid - top level windows, mille asukoht ekraanil ei sõltu ülemaknast (nende juhtimine on aknahalduri ülesanne) Aken võib olla avatud või ikoniseeritud - kui soovitakse ekraanile ruumi ilma akent hävitamata. Ikoonidega tegeleb mõnedes aknahaldurites ikoonihaldur (icon manager). Akna dekoreerimine on aknahalduri ülesanne - raam (border), päis (title bar) ning seal kasutatavad kirjad (fonts) ja nupud (title buttons), aknamenüüd (window menus), jne. Samas ei ole aknahalduri olemasolu tarvilik - dekoreerimata aknad ilmuvad ka "puhta" X serveri korral. Kerimisriba (scrollbar) on konkreetse X-kliendi omadus. Konkreetsete akende omadusi võib vaadelda kui objekte - teatud klasside esindajad. Vajalikke omadusi saab anda tervele klassile korraga, lasta neid pärida (inherit) jne. X Windows - üldised aknaparameetrid Ekraani määrang (kui erineb DISPLAY väärtusest): -display masin:dispaleinr.ekraaninr Akna suurus ja paiknemine (geometry): -geometry WxH+DX+DY W - akna laius pikselites või sümbolites (sõltuvalt klientprogrammist) H - akna kõrgus pikselites või ridades +DX - akna vasaku serva kaugus ekraani vasakust servast pikselites -DX - akna parema serva kaugus ekraani paremast servast pikselites +DY - akna ülemise serva kaugus ekraani ülemisest servast pikselites -DY - akna alumise serva kaugus ekraani alumisest servast pikselites Näit. alumine vasak nurk: -g +0-0 Akna taustvärv: -bg värv Akna raami värv: -bd värv Akna raami laius pikselites: -bw laius Akna esiplaani värv (näit. teksti värv): -fg värv Aknas kasutatav kiri: -fn font Akna pealkiri (title): -title string -iconic kliendi käivitamisel luuakse aken ikoonina -rv vahetada tausta ja esiplaani värvid (reverse) Paljud rakendusprogrammide omadused teatatakse X serverile nn. X ressursside andmebaasi kaudu ( .Xdefaults ) nimi*nimi*...*nimi: väärtus Esimesel kohal on programmi (rakenduse) või klassi nimi, edasi täpsustatakse ressurss (klass). Klassinimed suurtähega. X resursside määramiseks võibette anda rakenduse nime, mille järgi otsitakse ressursside andmebaasist: -name nimi Ressursi võib ka otse määrata: -xrm ressursistring X Windows - X sündmused X rakenduste käitumist juhivad nn. X sündmused (event driven system). Klaviatuuriga seotud sündmused (key events): - mingi klahvi allavajutamine, - mingi klahvi üleslaskmine Hiirega seotud sündmused (mouse events): - hiire mingi nupu allavajutamine - hiire mingi nupu lahtilaskmine - hiire liigutamine, hiirekursori sisenemine mingisse piirkonda,... - topeltvajutus hiire nupule ... Teisesed sündmused, mis võivad olla genereeritud aknahalduri vm. klientide poolt (seotud akna omaduste muutumisega - nähtavus, suurus, jne.) Klaviatuuri sündmusi võtab vastu see aken, mis on sisestusfookuses (input focus). Sisestusfookuse muutmiseks on erinevaid võimalusi - näit hiire asukoha järgi, valik hiirenupuga, ... X Windows - klahvidest Hiire nupud - toetab kuni 5 nuppu, tüüpiliselt kolm: Vasak nupp, Button1, SELECT Keskmine nupp, Button2, ADJUST 2 nupu korral Shift-B1 Parempoolne nupp, Button3, MENU 1 nupu korral Control-B1 Double tähistab topeltvajutust hiire nupule, Triple kolmekordset vajutust. Modifikaatorid - kuni 8 klahvi, mis seotakse konkreetse klaviatuuri klahvidega (madaltaseme klahvikoodidega) xmodmap-programmi abil Control - tavaliselt Ctrl-klahv Shift - tavaliselt Shift-klahv Lock - tavaliselt CapsLock-klahv Mod1 - tavaliselt Meta-klahv (romb) Mod2 - tavaliselt Alt-klahv Mod3 ... Mod5 - saab ise määrata (X Appeal: Ctrl_R=compose, Alt_L=Meta) X Windows - X ressursid Värvid. Nimed vt $OPENWINHOME/lib/rgb.txt Puna-Rohe-Sini skaalas: 16-ndkoodidena #rgb, #rrggbb, #rrrgggbbb, #rrrrggggbbbb Näit. #ffffffff0000 - kollane #ffffffffffff - valge Kirjad (tähestikud). Nimed vt xlsfonts abil -adobe-times-bold-r-normal--18-180-75-75-p-99-iso8859-1 Väljade võimalikke väärtusi (vt xfontsel, xfd) adobe, b&h, bitstream, misc, dec, sony, schumacher, ... courier, helvetica, times, symbol,lucida, terminal, fixed, ... medium, bold, demibould, normal, ... - tüpograafiline kaal r, i, o, ... (roman, italic, oblique, ...) normal, condensed, narrow, semicondensed ... - laius kirja suurus pikselites: 6 .. 34, 0 (suurus sõltub ekraani lahutusvõimest) kirja suurus kümnendikpunktides: 80 .. 240, 0 (suurus ei sõltu ekraani lahutusvõimest) x-lahutus, y-lahutus (dpi): 75, 100, 0 p, m, c (proportional, monospace, ...) keskmine laius kümnendikpikselites: 50 .. 210, 0 kodeering: iso8859, jisx0201.1976, ... Pildid (bitmaps) - ikoonid, kursorid, foonimustrid, jm. graafiline materjal X Windows - xmodmap Klaviatuuri häälestamine, pöördumine tavaliselt .xinitrc failis: xmodmap $HOME/.xmodmaprc (definitsioonid ~/.xmodmaprc failis) Definitsioonides kasutatakse järgmisi mõisteid: - keysym - klahvi loogiline nimi (vt. XKeysymDB või keysymdef.h) - keycode - klahvi numbriline kood (saab teada demoprogrammiga xev) - modifier - Shift, Lock, Control, Mod1 ... Mod5 - pointer - hiire nupu number keycode number = tavaline [ shiftiga ] ... keysymkeysymname = keysymname ... ... vt. man xmodmap Näide. Eesti tähed F1 kuni F4 alla keysym F1 = adiaeresis keysym F2 = odiaeresis keysym F3 = otilde keysym F4 = udiaeresis X Windows - .xinitrc Mida panna initsialiseerimisfaili: muutuja DISPLAY määramine, kui seda ei tehta automaatselt (meie juhul tehakse) muutuja PATH täiendamine, kui vaja muutuja LD_LIBRARY_PATH seadmine. kui vaja muude X Windowsi tööks vajalike muutujate seadmine, kui vaja (HOME, OPENWINHOME, ...). Üldiselt pole meie juhul vajalik juurdepääsu lubamine/keelamine oma displeile teistest masinatest (xhost, xauth) X ressursside andmebaasi sisselugemine (xrdb) displei omaduste määramine ja oma kirjade lisamine, kui soovitakse (mkfontdir, xset, xsetroot) klaviatuuri ja hiire konfigureerimine (xmodmap) klientide algkäivitus foonitöödeks (xterm, xclock, xbiff, ... ) aknahalduri käivitamine esiplaanile #!/bin/sh # Näide $HOME/.xinitrc failist - kõik read ei sobi igasse konteksti, valida # Kui kasutatav X tarkvara ei sea ise õigeks DISPLAY väärtust, siis # tuleb see teha siin (muuta vastavalt konkreetsele olukorrale) # Meie juhul pole vajalik - välja kommenteeritud # if [ -z "$DISPLAY" ] ; then # DISPLAY="`hostname`.`domainname`:0.0"; export DISPLAY # fi PATH=$PATH:/usr/ccs/bin; export PATH LD_LIBRARY_PATH="/usr/openwin/lib"; export LD_LIBRARY_PATH # Luba kasutada oma displeid mistahes masinast xhost + # Endale juurdepääsu lubamine masinast otherhost # xauth extract - $DISPLAY | rsh otherhost xauth merge - # Ressursside andmebaasi lugemine if [ -f $HOME/.Xdefaults ]; then xrdb $HOME/.Xdefaults fi # Lubame klahvide autorepeat omadust xset r if [ -f $HOME/.xmodmaprc ]; then xmodmap $HOME/.xmodmaprc fi # Avame konsooliakna, terminaaliakna, kella ja postivalvaja xterm -C -geometry 80x10+0+0 -sb -title CONSOLE -ls -bg gray & xterm -geometry 80x43+0-0 -sb -title xterm -ls -bg gray & oclock -geometry 120x120-215+0 -bg darkgreen & xbiff -g -370+40 & # Käivitame aknahalduri olwm exit X Windows - tavakliente xterm - terminaaliaken (emuleerib vt102, Tektronix 4014); xconsole xclock, oclock, ... - kell (nii digitaal- kui ka analoognumbrilauaga) xbiff - märguanne uute kirjade saabumisest xman - dokumentatsiooni lugemisprogramm xwd, xwud, xpr - akna "pildistamine" xedit - lihtne tekstiredaktor xlock - ekraani lukustamine xcalc - kalkulaator (TI-30 või HP-10C) xv - piltide (.gif, .jpeg, ... ) näitamine Informatsiooni saamine: - xset q, xdpyinfo - kasutatava displei kohta - xlswins - akende puu kohta - xprop, xwininfo - näidatud akna omadustest - xlsclients - klientprogrammide kohta - xlsfonts, xfontsel, xfd - kirjade (fonts) kohta - showrgb - värvide kohta - .../openwin/demo/xev - X sündmuste kohta - xload - süsteemi koormatuse kohta X Windows - Solarise kliente textedit - tekstiredaktor mailtool - postiprogramm imagetool - piltide näitamine ja töötlemine shelltool, cmdtool - terminaaliaknad cm - kalendrihaldur (päevakava jm.) audiotool - helifailide mängimine ja töötlemine filemgr - failihaldur (üsna võimas) binder - seob failitüübi rakendusega calctool - kalkulaator answerbook - dokumentatsioon printtool - trükihaldur tapetool - magnetlindihaldur clock - kell iconedit - ikooniredaktor snapshot - akna pildistamine perfmeter - info süsteemi jõudluse kohta X Windows - xterm Terminaaliemulaator. Võimalik konfigureerida kolmel viisil: - käsurea parameetritega - X ressurssidega - jooksvalt menüüde abil (ctrl-B1, ctrl-B2 ja ctrl-B3, kui hiirekursor xterm aknas) Olulisemaid parameetreid lisaks standardsetele (bg, bd, bw, fg, fn, title, geometry, name, rv, xrm, display, iconic): -C - konsooliaken (peab olema luba väljastada) -e käsk [ argumendid ] - alati viimane parameeter, kui esineb. Käivitada aknas antud käsk antud parameetritega -j - jump scroll kerimismoodus -ls - kohelda login-aknana (näit. täita ~/.login programm) -sb - siduda aknaga kerimisriba (scrollbar) -t - Tektronix emulatsioon -l - salvestada kogu seanss ka faili Menüüst saab kirja (ja akent) suurendada! X Windows - ekraani pildistamine xwd -out pildifail - hiirega näidatud akna kujutis salvestatakse faili pildifail xwud -in pildifail - faili salvestatud kujutise taasesitamine ekraanil xpr pildifail > trükifail.ps faili salvestatud kujutise teisendamine PostScript kujule (trükkimiseks) xwd parameetreid: -nobdrs - pildistatakse sisu ilma raamita -frame - pildistatakse koos aknahalduri dekoratsioonidega -root, -screen - juurakna pildistamine -name xxx, -id xxx - pildistatava akna valik nime järgi NB! Lahutus 75 dpi ei näe 300 dpi trükis eriti hea välja - ekraani pildistamine ei ole meetod "korralike" piltide saamiseks. Solarises teeb kõik eelpooltoodud tegevused ära üks programm - snapshot vt. ka xv X Windows - tekstitöötlus Kõik tuntud vahendid (vi, ed, fpted, joe, ..) töötavad teminaaliaknas GNU emacs - palju häid omadusi X keskkonnas (menüüd, mitu akent, ...) xedit - lihtne tekstiredaktor X keskkonnas textedit - tekstiredaktor Solarises xmeuromath - matemaatilise teksti redaktor väljundiga LaTeX-i (kommertsprodukt, väga võimas) tex, latex - matemaatilise teksti formaatijad (eraldi kursus) xdvi - tex (latex) väljundiks olevate .dvi-failide vaatamine X keskkonnas ghostview - PostScript failide vaatamine X keskkonnas X keskkonnas on kasutatav "lõika-kleebi" hiiretehnika teksti kiireks kopeerimiseks ühest aknast teise: Kui liigutada hiirt SELECT-nuppu (vasak) all hoides, siis märgitakse vastav tekstiosa Vajutus ADJUST-nupule (keskmine) kopeerib märgitud teksti kursori kohale (jälgida sisestusfookust!) Tarkvara - Emacs Richard Stallman, Free Software Foundation. Gnu's Not Unix: tekstiredaktor, sümbolsiluja, C kompilaator, linker, tekstiformaatija, süntaksianalüsaatorite generaator, ... CopyLeft tingimused GNU Emacs - sisseehitatud keele Lisp interpretaator, interaktiivne õpik, oma sisemine on-line dokumentatsioon, toetus erinevate tekstitüüpide jaoks (tavaline tekst, Lisp, C, Fortran, ... tex, nroff, ... ), erinevate terminaalitüüpide jaoks ning teiste redaktorite emuleerimine, täiendamine (completion), töö mitme puhvri ja mitme aknaga, lühendite kasutamine, klaviatuuri häälestamine, oma töökeskkond (trükkimine, programmide kompileerimine ja silumine, operatsioonid failide ja kataloogidega, posti lugemine ja saatmine, ajaviide ... ) Kasutaja jaoks häälestamiseks fail ~/.emacs Kogu töö tehakse Lisp-funktsioonide abil, millest suur osa on kättesaadavad käskudena. Käsud on seotud (binded) klahvidega vastavate tabelite abil. Üks moodus Emacsi konfigureerimiseks on muuta tabeleid, mis seovad klahve käskudega. Uute käskude kirjutamiseks on tarvis pisut osata Lispi. Lisp-käske saab vahetult täita Meta-x klahvi abil. Meta- ja Control- tähistame edaspidi M ja C. Ilma Meta-klahvita klaviatuuril 2 märki: Esc ning vastav sümbol. Olulisi prefikseid tabelite valimiseks: C-x - mitmesugused Emacsi käsud C-h - help-käsud ja dokumentatsioon Esc - Meta-sümbolid C-x 4 - nn. teise akna käsud Põhireziimid (major modes): fundamental, lisp, c, text, nroff, tex, outline Lisareziimid (minor modes): auto-fill, abbrev, auto-save, indented-text, overwrite Reziimi määramiseks: M-x reziiminimi Failikäskude ning Lisp-käskude argumendid saab mugavalt valida TAB-klahviga (täiendamine, completion, vrd. tcsh) ~/.emacs faili käske: - Konfiguratsioonimuutujate seadmine, näit. (setq inhibit-startup-message t) (setq default-major-mode `text-mode) (setq text-mode-hook `turn-on-auto-fill) - Reziimi(de) valimine sõltuvalt failinimest (setq-default auto-mode-alist `( ("\\.tex$" . tex-mode) ; (regexp . mode) ("\\.text$" . text-mode) ) ) - Lisp definitsioonide lugemine: (load-file failinimi) - Kasutajafunktsioonide definitsioonid (näiteks genereeritud klaviatuurimakrode määrangutest: vt. name-last-kbd-macro ja insert-kbd-macro ) - Klahvide ümbermääramine (argumentideks tabel, klahvinimi ja funktsioon): (define-key global-map "\C-xl" `make-symbolic-link) - Kasutajalühendite faili ~/.abbrev_defs lugemine: (quietly-read-abbrev-file) Mõned klahvimäärangud C-z suspend-emacs - ajutine väljumine, võimalus naasta või protsess tappa C-x C-c save-buffers-kill-emacs - väljumine salvestamisega C-x u undo - viimase tegevuse tühistamine C-g - käsu katkestamine C-x b switch-to-buffer - puhvri vahetamine C-x o other-window - akna vahetamine M-x Lisp-käsk execute-extended-command - Lisp-käsu täitmine C-h i info - Emacsi dokumentatsioon C-h t help-with-tutorial - Emacsi õpik C-h b describe-bindings - klahvide tabeli jooksva seisu näitamine C-h k klahv describe-key - klahviga seotud funktsiooni kirjeldus C-h f funktsioon describe-function - Lisp funktsiooni kirjeldus fn. nime järgi C-h describe-mode - jooksva põhireziimi kirjeldus C-h s describe-syntax - süntaksitabeli seis C-x C-f find-file - faili lugemine puhvrisse C-x C-s save-buffer - puhvri sisu salvestamine C-x C-v find-alternate-file - teise faili lugemine C-x s save-some-buffers - puhvrite salvestamine dialoogis M-~ not-modified - puhvri kuulutamine salvestamist mittevajavaks C-x C-w write-file - puhvri sisu salvestamine etteantud faili C-f forward-char - nool paremale C-b backward-char - nool vasakule C-n next-line - nool alla C-p previous-line - nool üles M-< beginning-of-buffer - puhvri algusse M-> end-of-buffer - puhvri lõppu C-a beginning-of-line - rea algusse C-e end-of-line - rea lõppu C-v scroll-up - lehekülg edasi M-v scroll-down - lehekülg tagasi C-o open-line - tühja rea lisamine kursori alla Käsu kordamiseks võib talle ette kirjutada numbrilise argumendi, mis antakse Meta-klahvi all hoides või C-u abil C-d delete-char - märgi kustutamine C-k kill-line - kustutamine rea lõpuni C-x f set-fill-column - parema serva määramine (setq-default fill-column 70) - parema serva määramine ~/.emacs -failis M-s center-line - paigutamine rea keskele C-tühik set-mark-command - lõigu alguse märkimine. Seejärel liikuda lõigu lõppu ja anda sealt käsk märgitud lõigu kohta: C-w kill-region - lõigu kustutamine C-x a puhver append-to-buffer - lõigu lisamine antud puhvrisse M-x print-region - lõigu trükkimine M-w copy-region-as-kill - lõigu kopeerimine hilisemaks taastamiseks M-g fill-region - lõigu rajastamine (numb. argumendiga ka parem serv sirgeks) C-x C-l downcase-region - väiketähtedesse C-x C-u upcase-region - suurtähtedesse C-y yank - viimati kustutatud teksti taastamine kursori kohale (mitu taset!) C-s isearch-forward - otsimine (ESC katkestab) M-% otsitav RET asendaja RET query-replace - otsimine ja asendamine dialoogis C-x C-b list-buffers - puhvrite loetelu C-x b puhver switch-to-buffer - olemasoleva puhvri valimine või uue loomine C-x 4 b puhver switch-to-buffer-other-window - sama teises aknas C-x k kill-buffer - puhvri hävitamine C-x 2 split-window-vertically - akna kaheksjagamine, dubleerides puhvri sisu C-x 4 f failinimi find-file-other-window - faili lugemine teise aknasse C-x 0 kill-window - akna hävitamine M-C-v scroll-other-window - teksti kerimine teises aknas M-x shell - käsuinterpretaatori käivitamine C-x d dired - töökeskkond failioperatsioonide sooritamiseks - Lühendite (abbrev) defineerimine Kursori ees oleva fraasi jaoks saab defineerida lühendi, näiteks 3 sõna korral: C-u 3 C-x + nimi add-global-abbrev Laiendamiseks vajalik reziim abbrev-mode Salvestamiseks M-x write-abbrev-file ( failinimeks näiteks ~/.abbrev_defs ) - Klaviatuurimakrod C-x ( start-kbd-macro def. algus C-x ) end-kbd-macro def. lõpp C-x e call-last-kbd-macro kasutamine M-x name-last-kbd-macro RET nimi RET annab makrole nime, muutes ta tavaliseks Lisp-käsuks, mida saab näiteks siduda mingi klahviga, kasutada M-x abil jne. M-x insert-kbd-macro kirjutab makrole vastava Lisp-koodi puhvrisse (kuhu on näiteks toodud ~/.emacs fail - nii saab seda Lisp-koodi seansi alguses sisse lugeda) - Klahvide sidumine käskudega M-x global-set-key RET klahv käsk RET X Windows - pildid ja heli xv - programm pildifailide vaatamiseks X keskkonnas (.gif, .jpg, ...) imagetool - pildivaatamisprogramm Solarises, eeldab display-PostScripti, ei tööta seetõttu iga X serveriga (X Appeal) mpeg_play - videolõikude (.mpeg, .mpg) vaatamisprogramm audiotool - helifailide (.au) mängimine Solarises (/dev/audio) idraw - graafikaredaktor iconedit - ikooniredaktor Pildid ja heli on integreeritud ka Interneti klientprogrammidesse: Mosaic, netscape - www klientprogrammid X keskkonnas mailtool - postiprogramm Solarises. Võimaldab koos kirja tekstiga saata lisandusi (attachments), mis saatmisel kodeeritakse ning lugemisel dekodeeritakse ja animeeritakse automaatselt (eeldusel, et animatsiooni- programm on määratud) X Windows - olwm aknahaldur olwm konfigureerimine: parameetrite abil menüüde abil (praktikumiülesanne) ressursside abil Parameetreid: -click - sisestusfookus hiirenupu klõpsuga -follow - sisestusfookus hiire liigutamisega Kõik standardsed X parameetrid (bg, fn, ... ) .... Menüüde loomine. Alusfailiks $OPENWINHOME/lib/openwin-menu Enda menüü luua faili $HOME/.openwin-menu Iga menüü võib sisaldada pealkirja, käske, alammenüüsid, eraldajaid ... Võtmesõnad suurtähtedes: TITLE, DEFAULT, MENU, END, INCLUDE, PIN, SEPARATOR, NOP jt. käsud Menüükirjelduse iga rida (pikki "ridu" saab luua \-sümboliga rea lõpus) koosneb märgendist (üks sõna või pikem tekst jutumärkides) ja käsust. Igas (alam) menüüs vöib ühe märgendi järel olla sõna DEFAULT (antud menüü vaikimisi tehtav tegevus). Eritähendusega käskudeks on: TITLE - menüü pealkirja määramine: märgend TITLE [ PIN ] Sõna PIN lisamine kinnitab menüü ekraanile MENU ... END - alammenüü loomine: märgendMENU failinimi - loetakse failist mmärgend MENU - kirjeldatakse sisu sisu mmärgendEND [PIN ] INCLUDE - alammenüü lugemine failist (vead ei ole fataalsed): märgend INCLUDE failinimi SEPARATOR (ilma märgendita) - lisaruum menüü kujunduses BACK_SELN - viia valitud aken teiste taha REFRESH - värskendada kõigi akende sisu EXIT - väljuda X Windows süsteemist QUIT_SELN - väljuda valitud rakendusest RESTART - aknahalduri taaskäivitamine rakendustest väljumata WMEXIT - aknahalduri töö lõpetamine rakendustest väljumata REREAD_MENU_FILE - värskendada menüüde sisu vastavalt menüüfailidele OPEN_CLOSE_SELN - ümberlülitumine ikooni ja akna vahel FLIPFOCUS - muuta sisestusfookuse juhtimise meetodit (click/follow) FULL_RESTORE_SIZE_SELN - akna ümberlülitamine täisekraani ja normaalsuuruse vahel SAVE_WORKSPACE - faili $HOME/.openwin-init tekitamine hetkeseisu pildistamise teel NOP - tühikäsk Konfigureerimine ressursside abil. Lisada faili $HOME/.Xdefaults read kujul: olwm.Nimi: väärtus ning lugeda ressursside andmebaas sisse: xrdb -merge $HOME/.Xdefaults Näiteid: olwm.MinimalDecor: oclock clock xbiff olwm.ShowResizeGeometry: true olwm.SetInput: followmouse olwm.IconLocation: right-bt olwm.KeyboardCommands: Full Viimane määrang lubab töötada hiireta (klahvidele saab ise funktsioone määrata): Alt-n - Next Application - liikumine rakenduste vahel Alt-m - Window Menu - aktiviseerida aknamenüü, milles saab liikuda nooltega. Valikud Move ja Resize töötavad nooltega (Control-nool kiiremaks liikumiseks) Alt-Shift-m - Workspace Menu - aktiviseerida põhimenüü Tarkvara - programmeerimisvahendid Kompilaatorid, linker, silujad: m4, cpp - programmide eeltöötlus cc - ANSI C kompilaator CC - C++ kompilaator gcc - GNU C kompilaator g++ - GNU C++ kompilaator as - Assembler f77 - Fortran pc - Pascal m2c - Modula2 muud translaatorid lint - C programmide kontrollimine lex, yacc - süntaksanalüsaatorite generaator ld - linker adb, sdb, dbx, gdb - silujad Tarkvara failiversioonide haldamiseks: SCCS - Source Code Control System RCS - Revision Control System Failidevaheliste sõltuvuste haldamine ning projekti eesmärgi saavutamiseks vajalike tööde järjestamine ja täitmine: make - makefile-juhitav programmihaldur imake - makefile genereerija näidismakrodest xmkmf - imake käivitaja X11 keskkonnas ar, ranlib - teekide loomine ja haldamine Failinimede suffikseid: .c , .C , .cc , .cxx , .m , .h - C ning C++ .s , .S - Assembler ( .S rakendatakse cpp) .f , .e , .F , .r - Fortran ( .F - cpp, .r - ratfor) .p - Pascal .mod , .def - Modula-2 .l , .y - lex ja yacc sisendfailid .i , .ii - preprotsessori väljundfailid .o - objektmoodulid .a - staatilised teegid lib*.a .so - dünaamilised teegid (shared) a.out , core , makefile , Makefile , Imakefile