Window Maker

David Šauer
<davids@penguin.cz>

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 za komerčními účely šířený manažer. Window Maker ovšem takový není. Jedná se o wm (window manager), který vsází na osvědčené grafické rozhraní, převzaté ze systému NextStep. Jako takový má své zvláštnosti a nemusí tedy padnou 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 nevyhovovaly mu složitost změn konfigurace, vznikl WindowMaker.
Pro angličtiny znalé přikládám odpověď A.K.K 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ány číslem 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".

Získání Window Makeru

WindowMaker si lze samozřejmě stáhnout z internetu a to z http://windowmaker.org. Kromě toho je také dostupný v různých distribucí Linuxu, například Redhatu. WindowMaker 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.

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.0, bude muset stáhnou knihovnu libPropList zvlášť. Podrobnosti jsou uvedeny dále.

Instalace

Window Maker je tedy zkompilován, 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ředkopilované 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

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ť WindowMaker lze velmi široce konfigurovat, i když ne třeba jako Emacs. WindowMaker podporuje na každém desktopu jiné pozadí, umí změny pozadí, změny titulků oken i změny vzhledu ikon. WindowMaker 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 po startu 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".

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.
Sponka v otevřeném tvaru: Sponka v uzavřeném tvaru:

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í.
Balónové tipy:
Copak to asi v minimalizovaném xtermu běží ?

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 -> 1 ikona. Ikony se ve WM rozlišují, a to na:

Ikony oken jsou ikonu 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 WindowMaker 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á 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: Výhody jednotlivých způsobů jsou zřejmé.

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, odkaz je na http://www.windowmaker.org/.

Práce s myší

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

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 ty pak všechny 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, ktrerý 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žnou 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.app 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í:

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

Operace se Sponkou

Sponka je velmi podobná Doku. Rozdílem je, že ke 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í kliku 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žku z menu. Lze je samozřejmě definovat interaktivně. Pokud máte klávesnici Wir95, namapujte si klávesy LWIN a RWIN jako Hyper(Mod4). Pak jsou operace s okny prováděny kombinací Mod4 + a nekoliduje to s jinými aplikacemi. Já osobně mám okenní operace na Mod4 + , například minimalizace na titulek = Mod4+space. Aplikace startuji přes Mod4+Shift+, 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. Nějaké aplikace lze najít na http://www.bensinclair.com/dockapp/.

Lokalizace

WindowMaker má poměrně slušně vyřešenou lokalizaci, co zatím zlobí jsou compose klávesy, ale s tím se nechá ží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ítnuty 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 URL: http://wm.themes.org/. Ukázka jednoho z témat následuje:

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í...

Odkazy

Hlavní stan Window Makeru
Témata
Dock Apps
Patch na WindowMaker, který upravuje přepínání oken ve stylu Windoze. Je možné, že tento patch bude brzy integrován do WM.

Závěr

Článek byl napsán pro časopis "Linuxové noviny" se záměrem poněkud usnadnit orientaci v prácí s tímto zajímavým wm. Window Maker je wm, který je schopen usnadnit práci se systému s X-window 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.