Jak si zprijemnit praci s XWindow systemem

referat pro seminar Linux

Hynek Bakstein


Obsah

Co je to Window manager

Window manager - WM ( cesky spravce oken ) je program , ktery se stara o umistovani, premistovani a zmeny romeru oken, zobrazeni titulku okna a okraje s body pro zmenu velikosti. Dale umi nektera okna schovat (minimalizovat do ikony nebo uplne schovat) a znovu je zobrazit. Toto je asi tak minimum, co by takovy WM mel umet, pokud vam to staci, muzete si jeden takovy stahnout tady. Vetsina lidi ale uvita i jine vlastnosti navic, napr. vice virtualnich pracovnich ploch (desktopu), uzivatelsky prizpusobitelna menu, iconbary, moznost zmeny barev oken, seznam bezicich uloh a dalsi... Jak si vybrat v dzungli ruznych WM vam poradi nasledujici odstavec...

[obsah]


Jaky vybrat ?

Spravcu oken je nepreberne mnozstvi - od kuriozit jako Amiwm (vypada jako amigacky workbench), pres to co dostanete v zakladni distribuci XWindows - twm az po opravdu propracovane olvwm (OpenLook virtual window manager) a fvwm, ktery ja osobne povazuji za nejlepsi WM jaky kdy vznikl... (to dokazuje i mnozstvi vzhledovych uprav, ktere z nej udelaji sice neco na pohled uplne jineho, ale v jadru je porat stary dobry fvwm...). Posledne jmenovany existuje ve dvou zakladnich verzich - 1.24 (posledni oficialni verze) a 2.0X (stale beta). Od verze 1.24 je odvozen i dalsi zajimavy WM - afterstep, ktery ma vzhled NeXTstepu a jeho predchudce bowman. Od verze 2.0X je odvozen i (podle meho nazoru ponekud perverzni)FVWM95. Obe verze se lisi krome kodu i v konfiguracnim souboru, ale zmenu jsou to jenom kosmeticke a pokud zvladnete syntaxi jednoho, nebude problem editovat druhy.... Jak si upravit (pozor ne vytvorit! je lepsi vzit uz hotovy ridici soubor a ten modifikovat) konfiguracni soubor se doctete v nasledujicim odstavci.

Jako ukazku vam predkladam obrazek moji pracovni plochy - pouzivam Afterstep.



obr0. muj desktop

Na tomto obrazku muzete videt okno minimalizovane do listy s titulkem - okno login, rozbalene menu, modul wharf - ty ikonky po prave strane - s rozbalenym foldrem a okna minimalizovana do ikony v leve dolni casti pracovni plochy. V modulu wharf si muzete vsimnout zmensenych aplikaci xload, xcmap a hlavne - hned druhy od zhora - modul assclock. Assclock jsou pekne hodiny s kalendarem a jak si muzete vsimnout, umi i ceske zkratky pro nazvy mesicu a dnu... Treti od spoda je modul Pager. Zmenseni aplikaci pro pouziti v modulech Wharf, GoodStuff nebo FvwmButtons se provede prikazem Svallow v ridicim souboru WM v sekci konfigurace prislusneho modulu.

[obsah]


Jak si prizpusobit fvwm v1.24

Protoze ja osobne pouzivam afterstep a donedavna jsem pouzival fvwm v1.24 bude tento odstavec o konfiguracnim souboru pro fvwm v1.24. Principy a obecne pojmy zde uvedene plati ale i u konfiguracniho souboru pro fvwm 2.0X.

Fvwm i afterstep obsahuji tzv. moduly, coz jsou utilitky starajici se o takove veci jako je spravce virtualnich prac. ploch, ikonky pro casto pouzivane aplikace doprovod nekterych akci zvukem a dalsi...

Mezi nejdulezitejsi moduly patri:


obr1. seznam oken u Afterstepu

Dalsi moduly jsou popsany v odpovidajicich manualovych strankach...

Existuje samozrejme i moduly od jinych autoru, nez od autoru WM. Takoveto moduly nejsou soucasti distribuce WM a muzete si je stahnout a pridat sami. Prikladem takoveho modulu je CDE panel pro fvwm2. Je to v Tcl/Tk napsany programek, ktery emuluje ovladaci panel u Common Desktop Environment - viz linky. Existuje i hack pro FvwmButtons, ktery jim doda podobneho vzhledu.


obr2. panel - modul emulujici vzhled CDE control panelu

Nejprve jak se vlastne ten konfiguracni soubor jmenuje. Existuje dva typy tohoto souboru - systemovy s preddefinovanym nastaveni a uzivatelsky - pro kazdeho uzivatele s jeho specifickymi nastavenimi. Systemovy se jemuje system.fvwmrc a je ulozen v adresari spolecne s moduly WM , ktery je urcen pri kompilaci. (vetsinou /usr/lib/X11/fvwm nebo /usr/X11R6/lib/X11/fvwm) Je pro uzivatele pristupny pouze ke cteni. Pokud chce uzivatel zmenit nastaveni WM musi si zkopirovat systemovy konf.soub. do sveho domovskeho adresare jako .fvwmrc. Tento soubor pak muze dale menit a je mu dana prednost pred system.fvwmrc.

Nyni podrobneji k tomu, co vse lze nastavit:

Priklad:

#barva textu ma titulku okna
StdForeColor        DarkRed
#barva pozadi titulku okna
StdBackColor        Gray

#barva textu na "sticky" okne
StickyForeColor     Black
#barva pozadi "sticky" okna
StickyBackColor     Gray

Priklad:

#jmena fontu se ridi beznymi XWindows konvencemi
Font               -*-helvetica-*-*-*-*-10-*-*-*-*-*-*-*

Priklad:

#umisteni iconboxu se ridi stejnymi pravidly jako parametr -geometry u aplikaci
IconBox            +2 -67 -1 -5

Priklad:

# velikost 2x2 stranek  
DeskTopSize      2x2
DeskTopScale     32

Priklad:

# cesta k modulum
ModulePath /usr/lib/X11/fvwm

# cesta k barevnym ikonam
PixmapPath /usr/X11R6/include/X11/pixmaps:/home/ja/mojeikony

# cesta k cernobilym ikonam
IconPath /usr/X11R6/include/X11/bitmaps

Priklad:

Style          Pager     NoTitle, Sticky, StaysOnTop, WindowListSkip, NoHandles
Style          xosview   Sticky, WindowListSkip
Style          TkMan     Icon OpenBook.xpm

Priklad:

# z afterstepu - Shade schova okno a necha pouze titulek
Function "Shade-or-Raise"
  Move     "Motion"
  Raise    "Click"
  Shade    "DoubleClick"
  PutOnTop "TripleClick"
EndFunction

Priklad:

# hlavni menu s casto pouzivanymi aplikacemi a akcemi - obsahuje podmenu -
jejich definece musi byt pred touto definici

Popup "HotList"
        Title    "HotList"
        Exec     "XTerm"         exec xterm -sb -ls -geometry 80x40 &
        Nop      ""
        Popup    "Applications"  Applications
        Popup    "Utilities"     Utilities
        Nop      ""
        Popup    "Modules"       Module-Popup
        Nop      ""
        Popup    "Exit"          Quit-verify
EndPopup

Priklad:

# stisk tlacitka pro minimalizaci
Mouse 0 1 A Iconify

# vyvolani menu s pouzivanymi aplikacemi
Mouse 1 R A PopUp "HotList"

Mouse 1 T A Function "Shade-or-Raise"

Priklad:

Key F1      A     M     Popup HotList
Key F5      A     A     Iconify

# sipka + ctrl kdekoliv -> posun o 1 stranku
Key Left    A     C     Scroll -100 0
Key Right   A     C     Scroll +100 0
Key Up      A     C     Scroll 0 -100
Key Down    A     C     Scroll 0 +100

[obsah]


.XResources a app-defaults soubory

Pro prijemnejsi praci si muzete zmenit i vzhled nekterych X-ovskych aplikaci. Pokud si spustite X ze zakladni distribuce, zjistite ze vetsina aplikaci je nehezky cernobila.. ( spise bila ) To se samozrejme v pripade aplikaci napsanych pomoci Athena widget setu - poznate podle toho, ze jsou s linkovane s knihovnami libXt a libXaw nebo podle vzheldu, da napravit a existuji na to dva zpusoby.

Prvni je upravit konfiguracni soubor aplikace v adresari /usr/X11R6/lib/X11/app-defaults, ktery ma stejny nazev jako aplikace, ale prvni dve pismena jsou velka. ( napr. xcalc -> XCalc ) Jsou i vyjimky jako bitmap -> Bitmap, ale s tim si kazdy poradi. V techto ouborech muzete najit takoveto radky:

*background: gray50
*QuitButton.background: Red

Tyto radky prirazuji barvu pozadi aplikaci a tlacitku pro ukonceni. Takto muzete ale specifikovat i font, tvar kurzoru ale i zobrazeny text - to se da pouzit pri lokalizaci programu. To jak adresovat jednotlive prvky rozhrani je popsano v literature o X a je to priliz rozsahle, nez abych to zde mohl podrobne popsat. Misto toho vam poradim rychlejsi cestu jak si takoveto nastaveni atributu vyzkouset a pak si nechat vygenerovat patricne radky do app-defaults souboru. Slouzi k tomu program editres, htery je soucasti standardni distribuce X. Ten vam zobrazi stromovou strukturu prvku rozhrani aplikace a umozni vam v dialogu menit hodnoty atributu. Ovladani je docela pratelske. V menu Command zvolite polozku Get Widget Tree a pak tuknete mysi na aplikaci jiz chcete upravit. V menu Tree vyberte polozku Select widget in client a tuknete na prvek rozhrani aplikace, ktery chcete zmenit, nebo jej vyberte ze stromu, ktery se vam zobrazil po urceni aplikace. Vybrany prvek si muzete nechat pro kontrolu zvyraznit pomoci volby Tree/Flash active widget. Pak pomoci Command/Show resource box vyvolate dialog a muzete vesele menit... Pak uz jenom tlacitko Apply pro provedeni zmen a Save pro ulozeni... pro podrobnejsi popis programu editres si prectete manualovou stranku, nebo mi mailnete.

Druha moznost je zmenit soubor $HOME/.XResources ( pokud neexistuje pak jej vytvorte ). V tomto souboru se atributy nastavuje stejne jako v predchozim pripade, ale pokud chcete zmenit atributy pouze v jedne aplikaci, MUSITE uvest na zacatku radku jmeno jeji tridy ( stejne jako app-defaults soubor nebo si jej muzete zjistit pomoci moudulu FvwmIdentify ), jinak bude zmena GLOBALNI - ve vsech aplikacich pokud u nich nebude zmenena. Na poradi specifikaci zalezi a predefinuji i ty uvedene v app-defaults souborech ! V tomto souboru muzete jeste napsat customiztaion: Color a pak se pouzijou ty app-defaults soubory, ktere maji nazev Jmeno-color.

Priklad :

*background: gray50
! globalni zmena
XTerm*background: Black
!pouze pro Xterm

[obsah]


OffiX

Offix je sada aplikaci obsahujici jednoduchy editor, spravce souboru, spravce tisku, odpadkovy kos a clipboard. To by nebylo zase az tak zajimave, ale tyto aplikace jsou propojeny pomoci protokolu umoznujiciho tzv. Drag&Drop ( DnD ) aneb tahni a pust ;-). Existuje jiz docela dost patch souboru pro jine aplikace, ktere jim take umozni vyuzivat tohoto protokolu. ( pro ty, kteri nevdi, co je to patch, tak je to soubor ve formatu pro program patch, ktery umozni provest automatickou upravu zdrojoveho textu ) Mezi ne patri i patche pro fvwm, afterstep, goodstuff, wharf, xv a spousta dalsich. Patche pro WM jsou nejdulezitejsi, protoze umoznuji pouzivani DnD i pro ikonizovane aplikace. Tento protokol se docela rozsiril a proto si myslim, ze o nem jeste uslysime...

[obsah]


Linky

Linky na domaci strany window manageru jsou uvedeny na zacatku tohoto dokumentu. Tady jsou uvedeny jenom dalsi zajimave linky.

Linux applications page - stranka plna zajimavych odkazu, prehledna, pravidelne updatovana.

Linux programs - Dalsi dobra stranka o aplikacich pro Linux.

Stranka o window managerech - obsahuje mnoho informaci o velkem mnozstvi WM, screenshoty, linky, zebricek oblibenosti ruznych WM, porovnani velikost, diskusni forum.....

OffiX - domaci stranka

CDE pro Linux - Common Desktop Enviroment panel pro Linux a fvwm2.

Divoky WM - pry nejlepe konfigurovatelny a vzhledove nejlepsi WM - co je na tom pravdy muzete posoudit sami, ale na plny zazitek budete asi potrebovat TrueColor graf. kartu.....

[obsah]