- předchozí článek - následující článek - obsah - úvodní stránka -

Linuxové noviny 01-02/99

Window Maker

David Šauer, 3. února 1999

Window Maker přináší nové možnosti uživatelům a vyhovuje novým trendům v oblasti grafických uživatelských rozhraní (GUI). Tak nějak by asi byl Window Maker uveden, pokud by se jednalo o manažer šířený za komerčními účely. Window Maker ovšem takový není. Jedná se o wm (window manager), který sází na osvědčené grafické rozhraní převzaté ze systému NextStep. Jako takový má své zvláštnosti a nemusí tedy padnout všem "do oka".

Nejprve krátce z historie. Někdy koncem roku 1996 chtěl Alfredo Kengi Kojima přidat nějaké další možnosti do jiného okenního manažeru, AfterStepu. Protože se mu zdál zdrojový kód AfterStepu poměrně nepřehledný a nevyhovovala mu složitost změn konfigurace, vznikl WindowMaker.

Ale asi bude lepší citovat autorovu odpověď na otázku "Proč jste se rozhodl napsat WindowMaker a kdy?" (odpověď není upravena):

I decided to write Window Maker while I was still developing AfterStep. Probably at the end of 1996 (cant remember exactly). I wanted to add several features to it, but the AfterStep sources where getting difficult to manage (since its a hack of a hack of a hack of another hack..). I also didnt like the way the fvwm family did its configurations. It was too much trouble to just be able to change simple things like the color of the titlebar.

Pokusil jsem se o překlad, bez záruky na chyby nebo na úplnost:

Window Maker jsem se rozhodl napsat v době, kdy jsem pracoval na AfterStepu. Bylo to pravděpodobně koncem roku 1996, nevím už zcela přesně. Chtěl jsem přidat několik nových možností, ale zdrojové texty AfterStepu bylo velmi obtížné upravit, neboť jsou "trik na trik na trik na jiný trik". Také se mi nelíbil způsob, kterým se wm podobné fvwm konfigurovaly. Příliš obtížná byla například jen změna barvy titulku oken.

Protože název WindowMaker kolidoval s názvem software pro tvorbu oken a dveří, byl WindowMaker přejmenován na Window Maker (pokud se pamatuji, stalo se to někdy v létě 1998).

Poznámky k textu

V textu se občas vyskytuje název souboru uvedený v podivné formě, například /G/D/WindowMaker. To neznamená nic jiného, než že se jedná o soubor $HOME/GNUstep/Defaults/WindowMaker. Tyto zkratky se také často vyskytují v anglické dokumentaci k Window Makeru.

Tlačíka myši jsou označována čísly 1, 2, 3, případně jako Mouse[1,2,3]. To je proto, že pro lidi jako já, kteří mají myš po levé ruce a mají prohozen význam jednotlivých tlačítek, je význam "levé tlačítko" jiný než pro "normální polohu" myši.

Zkratka WM znamená "Window Maker", zkratka wm "window manager".

Kde získat Window Maker

Window Maker si lze samozřejmě stáhnout z internetu, a to ze serveru http://windowmaker.org. Kromě toho je také dostupný v různých distribucích Linuxu, například Red Hatu. Window Maker byl v čase psaní tohoto článku dostupný ve dvou verzích, a to vyzkoušené 0.20.3 a relativně nové 0.50.2. Během několika dní jsem ale neměl s novým balíkem problémy, a tak ho doporučuji k případné instalaci.

Dovoluji si také varovat před verzí 0.51.0. Začátečníkům ho nelze doporučit, něboť WPrefs v této verzi obsahuje chybu, která může poničit menu.

Překlad Window Makeru

Pokud instalujete Window Maker v binární formě, tento odstavec přeskočte. Window Maker je tedy potřeba konfigurovat. Jako obvykle, se to provede příkazem

   $ ./configure

pro naše účely můžeme přidat parametry --enable-sound a --enable-modelock. První nakonfiguruje podporu zvuku. Druhý v případě, že máte XFree s rozšířením XKB, zajistí překlad kódu, který zajišťuje, aby si každé okno "pamatovalo" nastavení klávesnice. Další změny lze provést editací souboru src/wconfig.h, ale nebývá to obvyklé ani používané.

WM také podporuje poměrně dost obrázkových formátů pro ikony, například jpeg, png, tiff, gif a samozřejmě xpm. Musíte mít ovšem příslušné knihovny. Požadavky zjistíte v souboru INSTALL.

Vlastní kompilaci pak spustí obvyklé:

   $ make

Poznámka k překladu: pokud si stáhnete nejnovější verzi WM, v současné době 0.51.2, budete muset stáhnou knihovnu libPropList zvlášť. Podrobnosti jsou uvedeny dále.

Instalace

Window Maker je tedy přeložen, případně pouze instalován z distribučního balíku. Pokud používáte RPM balík, bude systémová část instalace hotova a budete muset jen provést instalaci pro uživatele.

Systémová instalace

V případě již předkompilované binárky bude instalace v systému provedena. Pokud si kompilujeme Window Maker sami, zadáme příkaz

   $ make install

Uživatelská instalace

Nejlépe asi bude, pokud si každý uživatel provede instalaci sám. Stačí jen zadat příkaz:

   $ wmaker.inst

[ dok ]  
Vlastní WM pak spustíme například ze souboru .xinitrc, například takto:

   exec wmaker

Nastavte si také lokalizační prostředí. Window Maker obsahuje i český katalog a umí se s vámi bavit česky a bylo by škoda toho nevyužít.

Popis

Window Maker tedy emuluje GUI NextStepu. To ale neznamená nějaké omezení na vzhled, neboť Window Maker lze velmi široce konfigurovat, i když ne třeba jako Emacs. Window Maker podporuje na každém desktopu jiné pozadí, umí změny pozadí, změny titulků oken i změny vzhledu ikon. Window Maker podporuje OffiX D&D a od verze 0.50.0 obsahuje i podporu Gnome a KDE podle příslušných požadavků na window manager. WM je poměrně nenáročný na HW a lze ho provozovat téměř na čemkoli.

WM používá specialní sadu grafických přípravků, zvaný WINGs (obdoba Motifu nebo Atheny). Původně byl WINGs psán proto, že nebyly k dispozici žádné jiné přípravky. WINGs (WINGs Is Not GNUstep) byl psán zejména pro WM. V současnosti na WINGsu pracuje několik programátorů a doplňuje chybějící přípravky. Co se týče budoucnosti, je nejasná vzhledem k tomu, že se blíží uvedení GNUstepu, který používá vlastní přípravky.

WindowMaker má po startu na ploše 2 skupiny ikon: Dok a Sponku.

Dok

Dok je sloupec ikon vlevo nebo vpravo na desktopu a může obsahovat ikony, ze kterých se spouští normální aplikace, ale může obsahovat i "aplikace v doku". To jsou aplikace, které obvykle běží v okně 64x64 pixelů a obsahují nejrůznější informace. Příkladem jsou hodiny (ASClock), obrázek otáčející se Země (wmglobe) nebo Měsíce (wmMoonClock). Za zmínku stojí i aplikace zobrazující stav klávesnice (česká/anglická, nonlock). Bližší informace jsou v odstavci "Docks Apps".

[ otevřená sponka ]  

Sponka

Sponka je podobná Doku, její obsah je ale specifický pro každou plochu. Ke Sponce lze přidávat ikony, odebírat ikony. Ikony lze ke Sponce přichytávat automaticky při startu aplikace na příslušné ploše, ikony mohou být zobrazeny pořád nebo mohou být skryty, pokud je ukazatel myši mimo plochu Sponky.

[ uzavřená sponka ]  
Sponka v otevřeném a uzavřeném tvaru je na obrázku.

WM má i další možnosti, jako je zobrazení ikon nebo oken na všech plochách najednou, umí skrýt okno úplně nebo tak, aby z něho byl vidět jen titulek. WM také zobrazuje "balónové tipy". Kde se mají tyto tipy zobrazit se určuje konfigurací.

Copak to asi v minimalizovaném xtermu běží?

[ balónový tip ]

Menu

K menu není asi co dodat. Slouží k nabídce možných akcí nebo programů. Menu je možno konfigurovat editací souboru ~/G/D/WMRootMenu nebo pomocí utility WPrefs.app.

[ menu ]

Ikony

Ikony reprezentují jednotlivá okna, reprezentace ovšem není 1 okno tj. 1 ikona. Ikony se ve WM rozlišují, a to na:

  • ikony oken
  • aplikační ikony

Ikony oken jsou ikony známé z jiných wm, tedy pokud provedu minimalizaci okna, okno se minimalizuje do tohoto druhu ikony. V dalším textu budou označovány jako "miniokna".

Mimo to obsahuje Window Maker také aplikační ikony, což jsou ikony reprezentující aplikaci, a jedna aplikační ikona odpovídá všem oknům jednoho exempláře běžící aplikace. V dalším textu budou aplikační ikony označovány jako "ikony" nebo "aplikační ikony".

Pokud tyto dva druhy ikon někomu vadí, lze volbou při kompilaci aplikační ikony zrušit.

Jakákoli aplikační ikona může být sama o sobě běžící aplikací, příkladem je ASClock, wmglobe apod. Aplikace vhodné k tomuto použití lze nalézt na http://www.bensinclair.com/dockapp/. S takovou aplikací se pak zachází jako s normální aplikační ikonou, lze ji například umístit do Doku.

Plochy

WM může obsluhovat několik pracovních ploch. Každá plocha má své jméno, které může být změněno z menu Sponky. Počínaje verzí 0.50.0 může mít také každá plocha jiné pozadí, chce to ale dost paměti a výkonnější procesor při přepínání ploch.

Konfigurace

WM používá ke své konfiguraci databázi standardů, známou z projektů GNUStepu. Změnou této databáze lze změnit chování Window Makeru. Důležité je, že WM načítá tuto databázi při změně příslušných souborů, takže není třeba nic restartovat. Konfigurace samotná se provádí dvěma základními způsoby:

  • editací příslušných textových souborů
  • pomocí konfigurační programů, jako WPrefs.app nebo wmakerconf

Výhody jednotlivých způsobů jsou zřejmé.

[ WPrefs ]

Používání Window Makeru

Hlavní výhodou WM je, že veškeré operace lze provádět pomocí GUI, při běžné činnosti není třeba editovat žádný soubor. Detaily o operacích lze získat v uživatelské příručce.

Práce s myší

Myš je ve WM používána asi takto:

  • 1. tlačítko provádí aktivní operace: uzavírá okno, provádí minimalizaci. Shift+Mouse1 označí ikonu.
  • 2. tlačítko na ploše zobrazí menu se seznamem oken. Dvojklik na titulku okna (Shift+klik) provede označení okna.
  • 1. nebo 2. tlačítko pohybuje s oknem.
  • 3. tlačítko na ploše zobrazí menu s aplikacemi. Toto menu lze změnit například utilitou WPrefs.app. Na titulku okna zobrazí 3. tlačítko menu s akcemi pro toto okno. Jinak ve WM platí, že menu se objevuje po stisku 3. tlačíka myši, to lze ovšem (i interaktivně) změnit.

Operace s okny

Ve WM lze s okny provádět všechny běžné operace, jako je minimalizace nebo uzavření. Operace poměrně specifické pro WM je ukrytí celého okna nebo ukrytí obsahu okna, kdy je ale ponechán titulek. Okno lze přesunou na jinou plochu, zvětšovat. Příjemná je možnost vybrat několik oken najednou a ta pak všechna přesunout.

Okno lze také konfigurovat pomocí volby "Attributy" z menu, které se objeví po stisku 3. tlačítka myši na titulku okna. Dialog, který se objeví, umožňuje měnit nastavení pro okno[aplikaci], jako je změna ikony, odstranění dekorací okna, zamezení minimalizace okna nebo lze určit, že aplikace bude odstartována jako minimalizovaná.

Operace s menu

Hlavní zvláštností menu je, že je možno "připíchnout" ho na plochu. Pokud ukončíte WM, nastavení bude zachováno a menu bude po příštím startu na stejném místě. Pokud je některé menu připíchnuté, nelze ho již znovu přišpendlit, ale je možno používat jeho jinou kopii.

Druhou zajímavou vlastností je, že pokud je menu příliš dlouhé, lze ho posouvat pohybem myši. Tato vlastnost musí být povolena v konfiguraci, v programu WPrefs je to volba "Posouvat menu při pohybu ...".

Tip: připíchněte menu na plochu a pak ho posuňte na dolní okraj, tak aby přesahovalo mimo obrazovku. Pak nad viditelnou část toto menu najeďte ukazatelem myši.

Operace s ikonami a miniokny

S vlastními miniokny není možno vykonávat mnoho činností. Vlatně jen jednu: miniokno lze zvětšit na celé okno. Kromě toho lze miniokno nebo více minioken označit a provést přesun na jinou plochu.

S aplikačními ikonami je to jiné. Po stisku 3. tlačítka myši se objeví menu, z něhož je možné odkrýt skryté okno aplikace, lze změnit obrázek aplikační ikony, skrýt okno aplikace nebo aplikaci ukončit.

Operace s Dokem

Dok je skupina ikon vlevo nebo vpravo na ploše a obsahuje ikony, které mají být vidět na všech plochách. Aplikační ikonu lze do doku ukotvit přesunutím pomocí myši. Pokud o sobě aplikace nepodává dostatečné informace, systém se na ně při ukotvení zeptá - jedná se o jméno souboru, který obsahuje daný program. Nad ikonou, která je ukotvena v doku lze provést několik operací:

  • lze určit, aby se Dok držel vždy nad ostatními okny
  • lze odstartovat aplikaci, kterou aplikační ikona v doku reprezentuje
  • lze nastavit atributy pro aplikaci
  • ostatní volby odpovídají volbám z menu aplikační ikony (viz. Operace s ikonami)

Nastavením atributů pro aplikaci se myslí zejména ikona, prováděný příkaz a stanovení, má-li být daná aplikace automaticky odstartována při startu WM.

[ atributy aplikace ]

Operace se Sponkou

Sponka je velmi podobná Doku. Rozdílem je, že aplikační ikony přichycené ke Sponce jsou pro každou plochu jiné. (Aplikační) ikony lze ke sponce přichytávat automaticky nebo manuálně, po ukončení aplikace mohou zůstat přichyceny nebo být automaticky odstraněny. Ikony přichycené ke Sponce lze přesunout na jinou plochu a to vše lze provést z menu, které získáme pomocí kliknutí třetím tlačítkem myši na Sponce. Ikony přichycené ke Sponce mohou být viditelné, nebo se mohou ukrýt, pokud myš opustí plochu Sponky. Z menu Sponky se také mění název plochy, Sponka je zkrátka přítelkyní uživatele (či přítelem uživatelky)...

Klávesové zkratky

Klávesové zkratky slouží k rychlému provedení nějaké akce, bez lovení příslušné položky z menu. Lze je samozřejmě definovat interaktivně. Pokud máte klávesnici Windows 95, namapujte si klávesy LWIN a RWIN jako Hyper(Mod4). Pak jsou operace s okny prováděny kombinací Mod4 + něco a nekoliduje to s jinými aplikacemi. Já osobně mám okenní operace na Mod4 + písmeno, například minimalizace na titulek Mod4 + space. Aplikace startuji přes Mod4 + Shift + písmeno, Netscape je tedy Mod4 + Shift + n.

Menu s aplikacemi mám pak na klávese MENU a menu se seznamem oken na Shift + MENU.

Zkratky se definují v záložce "Definice klávesových zkratek" programu WPrefs.

Tvorba menu

Menu je možno definovat editací textového souboru nebo interaktivně pomocí aplikace WPrefs.app.

Dock Apps

Velmi dlouho jsem přemýšlel, jak přeložit název odstavce, ale nic mě nanapadlo. Tak tedy: "Dock Apps" jsou speciálně napsané aplikace, které lze umístit do Doku jako aplikační ikony. Tyto aplikace zobrazují nastavení klávesnice, počasí, kalendář, planetu Zemi, Měsíc, Slunce, slouží jako jednoduchý zápisník (post-it) nebo vytáčí připojení na Internet a sleduje čas připojení a tok dat.

Lokalisace

WindowMaker má poměrně slušně vyřešenou lokalisaci, co zatím zlobí jsou compose klávesy, ale s tím se dá žít. V nejhorším případě budete muset zasáhnout přímo do příslušných textových souborů. Lokalizace menu je v distribuci poměrně stará a uvažuji o jejím stažení. Menu již není od verze 0.18.X lokalizováno, neboť si každý může jednoduchým a interaktivním způsobem vytvořit své vlastní menu.

Témata

Téma je souhrn nastavení, která jsou promítnuta do databáze atributů a definují vzhled pracovní plochy. Z hlediska uživatele jsou témata transparentní a jeho jediná starost je vybrat to správné. Témata je možno získat na serveru http://wm.themes.org/. Ukázka jednoho z témat je na obrázku.

[ téma ]

Budoucnost Window Makeru

WM by se měl stát oficiálním wm projektu GNUStep http://www.gnustep.org. Mnoho ovšem závisí na GNUStepu samotném, současný stav je, že WM je oficiálním wm pro GNUStep. Jak autor sám píše, podpora KDE a Gnome je "feature", prioritní je podpora pro GNUstep. Co se týče budoucnosti WM, autor považuje za hlavní vytvořit verzi 1.0. Odpověď na otázku "Máte nějaké plány pro Window Maker do budoucna ?" (neupraveno):

I want to have version 1.0 released. There are still some stuff left, like R6 style session management, finishing WPrefs and fixing bugs, but not much. 1.0 should not be much too different from what we have at the moment. After 1.0, I dont have any plans. Quite many of the features in wmaker were implemented rigth after I had the idea. For example, I only decided to implement GNOME and KDE support recently. If you asked me about KDE support 2 months ago, I would probably have told you that Id never code that :)

Chtěl bych vytvořit verzi 1.0. Mám do budoucna nějaké plány, jako je správa sezení podle (X Window, poznámka překl.) R6, dokončení programu WPrefs a oprava chyb, ale není toho již mnoho. WM verze 1.0 se nebude mnoho lišit od stávajícího stavu. Po uvolnění verze 1.0 není žádný určitý plán. Mnoho možností WM bylo implementováno ihned po tom, co jsem měl nějakou myšlenku. Například, nedávno jsem měl myšlenku implementovat podporu pro GNOME a KDE. Chyby se někdo ptal na podporu KDE před 2 měsíci, řekl bych, že nikdy nebude napsána...

Při uvolnění verze WM 0.51.0 došlo k poměrně důležité změně, kdy byl Window Maker prohlášen za jeden z projektů GNU. V praxi to znamená, že WM bude podporovat jiné projekty jako GNOME a zároveň bude podporován jinými projekty.

Pro uživatele to znamená, že knihovna libPropList (pro podporu atributů a databáze GNUstepu) byla vyčleněna ze zdrojových textů a bude použita například pro projekt GNOME. Uživatelé si tedy musí stáhnout knihovnu libPropList od verze WM 0.51.0 zvlášť.

On-line podpora článku

České stránky o Window Makeru jsou plánovány na http://web.iol.cz/davids/wm/. Občas zkontrolujte toto URL, snad budu mít čas něco napsat, ale asi až po zkouškovém období...

Závěr

Článek byl napsán pro časopis "Linuxové noviny" se záměrem poněkud usnadnit orientaci v práci s tímto zajímavým wm. Window Maker je wm, který je schopen usnadnit práci s X Window Systemem uživatelům, kteří přešli z jiných, na GUI orientovaných systémů. Také podpora pro KDE a Gnome umožňuje použít WM jako alternativní wm pro tyto systémy. Pokud tedy vás již unavují změny souborů, třebaže WM umožňuje i tento styl konfigurace nebo si chcete vyzkoušet něco jiného než standardní rozhraní unixových systémů typu fvwm, vyzkoušejte si tento wm a možná budete mít (další) zajímavé rozhraní na vašem z polovodičů složeném miláčkovi. *


- předchozí článek - následující článek - obsah - úvodní stránka -