Enlightenment

ArticleCategory:

Applications

AuthorImage:

[Photo of the Author]

TranslationInfo:

original in en Geoffrey W. Corey

en to nl Tom Uijldert

AboutTheAuthor:

Computers zijn mijn werk en mijn hobby. M'n gezin is echter mijn leven. Ik ben de trotse vader van Joshua, een zoon van vier en van de tweeling Aaron en Ryan, 10 maanden oud. Mijn vrouw Jennifer is de beste en steunt mij in mijn vreemde loopbaan in computers. Ik werk thans bij een klein outsourcing-bureau ClientLink en specialiseer me daar in grote databases en objectgeoriënteerd ontwerp en analyse.

Abstract:

Enlightenment is een zeer flexibele Window Manager voor Linux. In dit artikel gaan we in op de mogelijkheden van het pakket en het installeren en configureren ervan. De huidige versie van Enlightenment is nog steeds een ontwikkelversie. De lezer van dit artikel dient bekend te zijn met het ontwikkelen en compileren van programma's op Linux.

ArticleIllustration:

[Illustratie]

ArticleBody:

Inleiding

Enlightenment is een window manager die intensief gebruik maakt van de grafische mogelijkheden van het systeem. De ontwikkelaars hebben van Enlightenment een zeer flexibele window manager gemaakt waarvan zowat ieder grafisch aspect naar smaak kan worden ingesteld. Voorbij zijn de dagen van hoekige vensters die zovele operating systemen "sieren". Enlightenment maakt het werken met computers weer leuk. Wanneer je je collegae jaloers wilt maken op het werk, installeer dan het thema van Enlightenment dat wordt meegeleverd. Wil je ze uit hun dak zien gaan, haal dan het thema "Aliens" van het net of het "Neuromancer" thema. Dit zijn slechts twee van de ongeveer 20 thema's die je ter beschikking staan. Al deze thema's kun je ophalen bij e.themes.org. Op themes.org kan je trouwens ook themes vinden voor andere window managers.

Let wel: je moet wel beschikken over een behoorlijk krachtige processor en dito grafische kaart om alles uit de kast te halen bij deze window manager. Ik gebruik Enlightenment thuis op een Pentium 90 met een Vision 864 S3 grafische kaart en daarop 2 Megabyte intern geheugen. Dit is toch wel het minimum wat je nodig hebt. Er zijn echter wel thema's verkrijgbaar voor lagere resoluties zoals het Executive thema.

Hieronder een postzegel afdruk van het standaard thema wat met Enlightenment wordt meegeleverd.
Rechtsboven zie je de bureaublad-iconen. Een muisklik hierop start applicaties zoals xterm, Netscape, gimp en anderen. Op één van de laatste drie iconen klikken opent een lade met daarin postzegel afdrukken van achtergronden die je kunt kiezen voor je bureaublad.

Linksonder zie je een representatie van de diverse bureaubladen. Met het klikken hierop spring je naar één van deze bladen. De afdrukken op een dergelijke representatie laat de vensters zien die je open hebt op ieder van de bureaubladen. Je kunt deze zelfs aanklikken en zo naar een ander bureaublad slepen.

Rechtsboven zie je verder een venster met iconen. Wanneer je een X-window (venster) tijdelijk wegklikt (minimaliseert) dan wordt het icoon in dit venster geplaatst. Je kunt door dit venster bladeren als je hem hebt opgevuld met behulp van knoppen aan de rechter- en onderkant van het scherm. Iconen kunnen weer worden geëxpandeerd naar hun normale grootte door ze naar het bureaublad te slepen.

In het midden zie je een menuvenster wat opduikt als je op één van de muisknoppen klikt terwijl deze op je bureaublad staat.

Het standaard thema
Enlightenment Screenshot
Het Obsidian thema
Obsidian Theme
Er zijn vele leuke toevoegingen aan Enlightenment te verkrijgen. Zie onder andere www.enlightenment.org, Eterm en Eplus. Eterm geeft je een luxe versie van (de terminal) rxvt en Eplus heeft luxe toevoegingen voor zowat al het andere! Eplus bestaat uit een Cd-speler, e-mail notificatie, prestatie-monitor en een hoop nutteloze knipperlichten om je collegae mee te imponeren. Het uiterlijk van Eplus kun je net zo flexibel instellen als Enlightenment. En er is meer te verkrijgen met dezelfde filosofie als Enlightenment, bijvoorbeeld Emusic om muziek te spelen (alhoewel ik het niet meer vindt). Er is een sectie bij freshmeat.net die andere coole E applets bevat, namelijk freshmeat.net/appindex/x11/enlightenment%20applets.html.

Hier een postzegel-afbeelding van het Obsidian thema. Je ziet hoe deze compleet verschilt van het standaard thema. De onderkant van het scherm representeert je bureaubladen. De tweede rij bevat de menuiconen, iconenbalk en Eplus.

De creativiteit is niet dood dankzij de individualisten die Linux springlevend houden!

Installatie

Installatie kan wat problematisch zijn als je niet zo bekend bent met Makefiles en zoekpaden voor bibliotheken. Merk op dat Enlightenment nog steeds in het ontwikkelstadium verkeert. Het is mij gelukt om Enlightenment te installeren op zowel Debian 1.3.1 als RedHat 5.0. Op Debian was het relatief eenvoudig omdat deze distributie reeds jpeg, png, tiff alsook z bibliotheken bevat. Enlightenment maakt gebruik van de Imlib bibliotheek die op zijn beurt deze bibliotheken nodig heeft. Het was wat moeilijker onder RedHat omdat deze nieuwe C-bibliotheken bevat dus ik zal hier de RedHat installatie bespreken. Meer details kun je vinden op de website van Enlightenment. Volg de instructies aldaar om zeker te zijn dat je de juiste bibliotheken hebt voordat je Enlightenment gaat compileren en installeren. Ik zal kort uitleggen hoe ik de installatie heb gedaan en daarbij ingaan op een aantal problemen die ik op heb moeten lossen.

Om te beginnen heb je de laatste versies nodig van de Imlib bibliotheek. Te krijgen op ftp://ftp.enlightenment.org/enlightenment/enlightenment/libs/. De meeste problemen kun je verwachten als je nieuwe versies installeert terwijl je nog oude versies op je systeem hebt staan. Er zijn RPM-versies verkrijgbaar voor alle bibliotheken. Controleer /usr/lib op dubbele bibliotheken voor z, tiff, jpeg, png en Imlib. Verwijder deze voordat je de nieuwe installeert.

Er zijn ook RPM paketten voor Enlightenment. Je kunt proberen of dit werkt door het te installeren. Vóór het starten van Enlightenment moet je nog de volgende regel aan je bestand .xinitrc in je eigen directory toevoegen.

exec /usr/local/enlightenment/bin/enlightenment
Geef nu het volgende commando (let wel, de grafische eigenschappen van Enlightenment zijn spectaculair en kun je dus het best bekijken met de hoogst mogelijke resolutie; 16-bit kleuren is eigenlijk het minimum):
$ startx -- -bpp 16
Indien dit niet werkt zou de reden hiervan moeten zijn te vinden aan het eind van de X window startup info. Je kunt proberen achter het probleem te komen of proberen de broncode zelf te compileren.

Het compileren van de broncode

Na het uitpakken van het tar-bestand hoef je alleen het bestand INSTALL te lezen over het compileren. Kort en goed:
1) $ xmkmf -a
2) $ make install
Als het linken fout gaat omdat commando's als png, jpeg of tiff niet gevonden konden worden, pas dan Makefile aan en vergewis je ervan dat LOCAL_LIBRARIES er als volgt uit ziet:
LOCAL_LIBRARIES = -lImlib -ltiff -lgif -ljpeg -lpng -lz
Draai wederom een $ make install en alles zou moeten werken. Zo niet, controleer dan of je geen dubbele bibliotheken hebt in /usr/lib en of Makefile ze wel kan vinden.

Instellen van Enlightenment

Een nieuw thema toevoegen

Ok, je hebt een thema van e.themes.org afgehaald..., en nu? Welnu, kopieer het bestand naar /usr/local/enlightenment/themes. Verander je .xinitrc bestand om hiermee op te starten door het toevoegen van de naam van je thema op de commandoregel. We hebben bijvoorbeeld het thema Neuromancer opgehaald. Voeg de -theme optie, tezamen met de naam van het thema toe aan de commandoregel. In dit voorbeeld staat nu dus in je .xinitrc bestand het volgende commando:
exec /usr/local/enlightenment/bin/enlightenment -theme Neuromancer
Start wederom X in 16-bit modus:
$ startx -- -bpp 16
Enlightenment zal vervolgens op zoek gaan naar een bestand of directory met de naam Neuromancer in het pad /usr/local/enlightenment/themes. Zoals je kunt zien is ieder thema uniek en heeft de maker ervan flink wat mogelijkheden om zijn creativiteit bot te vieren. Dus wat is nu eigenlijk een thema? Wel, het themabestand dat je hebt opgehaald is een gecomprimeerd tar bestand (.tgz). De extensie wordt meestal niet aan het bestand meegegeven maar je kunt hem nog steeds expanderen en uitpakken. We zullen dit dus doen en vervolgens proberen menu's en knoppen aan te passen.

Een thema aanpassen

Er is een hulpmiddel Econfig, gebaseerd op TCL/TK, die je in staat stelt de configuratiebestanden van een thema aan te passen. We gaan hier echter nog wat dieper op in en zullen gebruik maken van ouwe trouwe 'vi'. Om het default (standaard) thema aan te pakken moet dus het volgende worden gedaan:
$ cd /usr/local/enlightenment/themes
$ mv DEFAULT DEFAULT.tgz
$ tar zxvf DEFAULT
$ cd DEFAULT
$ ls
-rw-r--r--   1 1000     bin         2929 Jul 25  1997 MAIN
-rw-r--r--   1 1000     bin         7015 Jul 31  1997 buttons
-rw-r--r--   1 1000     bin         952 Aug 29  1997 control
-rw-r--r--   1 1000     bin         843 Aug 12  1997 cursors
-rw-r--r--   1 1000     bin         2885 Jul 29  1997 desktops
-rw-r--r--   1 1000     bin         510 Nov 18 17:12 exec
-rw-r--r--   1 1000     bin         567 Jul 25  1997 fx
-rw-r--r--   1 1000     bin         3239 Jul 25  1997 icons
-rw-r--r--   1 1000     bin         1074 Jul 25  1997 infobox
-rw-r--r--   1 1000     bin         6392 Jul 30  1997 keys
-rw-r--r--   1 1000     bin         41382 Aug  6  1997 menus
drwxr-xr-x     4 1000      bin         2048 Jul 26  1997 pix
-rw-r--r--   1 1000     bin         452 Jul 25  1997 root
-rw-r--r--   1 1000     bin         1658 Aug  8  1997 status
-rw-r--r--   1 1000     bin         530 Jul 25  1997 text
-rw-r--r--   1 1000     bin         13222 Aug 12  1997 windowstyles
Het bestand MAIN wordt door Enlightenment als eerste gelezen. Als je deze bekijkt dan zie je dat deze andere bestanden aanroept voor het opzetten van diverse onderdelen van Enlightenment. De meeste andere thema's handhaven dezelfde standaard voor benamingen als bij DEFAULT.

Bestandsnaam Beschrijving
MAIN Dit bestand wordt bij opstarten ingeladen. Het bestand kan andere bestanden bevatten voor het aanpassen van menu's, knoppen, bureaubladen, cursors, iconen enz.
buttons Bepaalt de positie en het gedrag van knoppen op het bureaublad en tevens hoe ze er uit zien. Voor het thema DEFAULT is dit de knoppenrij linksboven op je bureaublad.
control Bepaalt het gedrag van de window manager. Onder andere of een venster bovenop wordt geplaatst als deze voor een bepaalde periode de "focus" (wanneer de muispijl op een bepaald object rust) heeft gehad. Verander dit bestand maar en aanschouw de resultaten. Het bevat uitstekend commentaar over de mogelijkheden.
cursors Bepaalt hoe de cursor (muispijl) er uit ziet.
desktops Bepaalt de positie van de diverse bureaubladen en hoe deze er uit zien. Voor het thema DEFAULT zijn dit de plaatjes linksonder op het bureaublad.
exec Geeft programma's die automatisch starten als Enlightenment wordt gestart.
fx Definieert de "special effects" die Enlightenment aankan. Dit is een leuk bestand. Verander bijvoorbeeld eens drop-shadows van off naar on.
icons Definieert het venster waarin iconified programma's worden gezet. Dit zijn iconen die worden getoond wanneer een programma/venster wordt weggeklikt (zonder het af te sluiten). Voor het DEFAULT thema staat dit venster rechtsboven.
infobox Bepaalt het plaatje tijdens opstart. Dit is het logo wat je ziet als Enlightenment wordt opgestart en configuratiebestanden gaat inladen.
keys Definieert sneltoetsen en hun gedrag. Deze kun je bijvoorbeeld aanpassen zodat functietoets F5 het programma gimp opstart als je wilt.
menus Bepaalt het gedrag van aan te roepen menu's en hoe deze er uit zien. Dit zijn de menu's die je krijgt als je één van de muisknoppen indrukt op het bureaublad. We gaan later in op het aanpassen van menu's.
pix Dit is de directory waar alle grafische plaatjes staan.
root Definieert het plaatje op de achtergrond.
status Dit zijn de televisieschermen die je ziet opduiken tijdens het opstarten als Enlightenment de configuratiebestanden aan het inladen is.
text Geeft het lettertype wat gebruikt wordt voor tekst.
windowstyles Bepaalt de omtrek en stijl van alle X-vensters, hun knoppen en gedrag

Aanpassen van menu's

De plaats voor het aanpassen van menu's is het bestand 'menus'. Je kunt bijvoorbeeld de tekst en bijbehorende actie van een bestaande menukeuze veranderen. Behoorlijk wat keuzes uit het menu heb ik niet op mijn machine en deze zou ik dus mooi kunnen hergebruiken voor iets anders. Uiteindelijk wil je iets veranderen. Je wilt hier bijvoorbeeld een rekenmachine hebben.

Let op: Voordat je iets veranderd is het aan te bevelen om een back-up van de originele configuratiebestanden te maken!

Om een menukeuze toe te voegen kun je een bestaande keuze kopiëren (vanaf begin tot end). Zoek bijvoorbeeld op 'Random'. Dit is de keuze Random Garbage die verschijnt als je op de rechtermuisknop drukt terwijl deze op het bureaublad staat. Zoek nu op 'Xsnow' die je naar het einde van de Random Garbage lijst brengt. Kopieer het begin van deze menukeuze tot aan de eerste end (net achter 'action exec xsnow') en voeg deze in vlak voor de laatste 'end'. Verander nu Xsnow in Fonts en verander 'action exec xsnow' in 'action exec xfontsel'. Het moeilijke gedeelte zit 'm in de plaatsing. Je ziet dat Xsnow 0 312 is en de grootte 253 24. Maak je geen zorgen over het eerste getal, echter, wanneer je 312 deelt door 24 krijg je 13. Dit is omdat Xsnow de veertiende keuze in het menu is (de eerste keuze is 0). Voor de keuze Fonts moeten we dus 24 bij 312 optellen. Verander 312 dus in 336. We moeten ook het totaal aantal keuzes uitbreiden van 14 naar 15 (staat twee regels boven de tekst 'Random Garbage') en de dimensies van het menu met 24. Verander dus 'dimensions 253 336' in 'dimensions 253 360'.

Uiteraard heb je hier het alternatief om Econfig te gebruiken en de verandering via een venster te doen. Ik heb Econfig zelf nog niet uitgeprobeerd maar het lijkt erop dat dit de volgende procedure behoorlijk vergemakkelijkt.

Een stukje uit de het originele menus

------- overgeslagen tekst -------
begin menu
  name root3
  type custom
  dimensions 253 336
  popupdist 126 12
  items 14
  begin menuitem
    text Random Garbage
------- overgeslagen tekst -------
 begin menuitem
    text Xsnow
    type element
    location 0 312
    size 253 24
    text_location 5 5
    text_size 243 14
    image unselected pix/menu_plain_1.ppm  shapemodeon 255 0 255
    image selected   pix/menu_plain_2.ppm shapemode on 255 0 255
    action exec xsnow
  end
end
-------- overgeslagen tekst -------

stukje uit de aangepaste menus

-------- overgeslagen tekst -------
begin menu
  name root3
  type custom
  dimensions 253 360
  popupdist 126 12
  items 15
  begin menuitem
    text Random Garbage
-------- overgeslagen tekst -------
  begin menuitem
    text Xsnow
    type element
    location 0 312
    size 253 24
    text_location 5 5
    text_size 243 14
    image unselected pix/menu_plain_1.ppm  shapemodeon 255 0 255
    image selected   pix/menu_plain_2.ppm shapemode on 255 0 255
    action exec xsnow
  end
  begin menuitem
    text Fonts
    type element
    location 0 312
    size 253 24
    text_location 5 5
    text_size 243 14
    image unselected pix/menu_plain_1.ppm  shapemodeon 255 0 255
    image selected   pix/menu_plain_2.ppm shapemode on 255 0 255
    action exec xfontsel
  end
end
------- overgeslagen tekst ------
Ok, klik nu met de linkermuisknop, kies 'Exit Options' en vervolgens 'Restart' om het resultaat te bewonderen. Enlightenment zal de configuratiebestanden opnieuw inlezen en herstarten. Tijdens het herstarten worden alle sessies in stand gehouden en dus gaat er geen werk verloren. Na de herstart kun je met de rechtermuisknop op het bureaublad klikken en de extra menukeuze zou in het menu moeten verschijnen. Probeer het maar!

Het aanpassen van knoppen gaat op dezelfde manier. Ga je gang en snuffel eens in de configuratiebestanden. Vergeet echter niet een back-up te maken van je originele bestanden!

De toekomst van Enlightenment

Enlightenment zal in de toekomst volledig samenwerken met GNOME. De makers, Mandrake en Rasterman, zijn op dit moment Enlightenment volledig aan het herschrijven voor DR0.14. Rasterman heeft hier al werk voor verricht omdat hij tegenwoordig aan het Gnome project werkt bij Red Hat labs. Een demonstratieversie van Developer Release 0.14 is nu uit maar is nog niet te configureren. Deze versie was puur ter demonstratie van de nieuwe gelikte mogelijkheden van DR0.14. Gedurende het schrijven van dit artikel moet, als alles goed is gegaan, echter DR0.14 uit zijn gebracht.