You have to upgrade it, due to a development in the
RPM format itself. If this is the cause you will get an
error message along the lines of Data type 09 not supported. Download the latest from Redhat
according to the updates directory for your particular version and you will receive a warm glow and
easy streets from then on.
You should go to the Redhat site and specifically upgrade all of your existing graphic libraries. There was apparently a problem with the shipping Redhat 5.1 at the beginning where all the libraries that were based from a single version have to be rebuilt with the correct one as a base or replaced. You might already have a "corrected" CD but it doesn't hurt to save yourself some time with a simple check.
Enlightenment has been installed and works on both of these architectures, and while the distributions haven't caught on to the speed of Enlightenment development in the past, there are now maintainers for the various higher level packages. Please go to the Redhat or Debian sites and download or use your favourite net-based variations on your update utilities (dselect or rpm). For others using distributions with a similar library basis to these (ie, DEB or RPM files make up your base libraries), you can make use of these sites as well.
As far as I know there are no .tar.gz versions of a recent (E14+) Enlightenment binaries available for Linux-based "alternative" architectures, nor ones for Solaris (Sparc or Intel), Digital UNIX, or HPUX. I would be overjoyed to hear otherwise and pointers as to where to find them.
For those where these choices offer only partial solvency of your difficulties, the best we can do is point you towards:
(Although I would fill in this area with the information for Alpha processor Enlightenemnt binary RPMs, I can't, because my mail client apparently ate a wad of mail, including one with the address.)
Yes, there are. There is one major structural change in Enlightenment as of the E15 CVS snapshots: the internal portion of it that controls theme parsing has diverged into a full library called StringList. You must get this, a snapshot of both Imlib and Fnlib that hopefully match as closely as possible the same date, and the latest Freetype TrueType engine (available from from Freetype site at www.freetype.org. Additionally, you will need an up-to-date autoconf, automake, and libtool and a compiler from the GCC family.
Why would you want to try these versions out? Even without a penchant for bug-hunting, you might end up finding more features, the self-same bugs gone, and a number of other subtly changing things to brighten your mornings. They are provided because of growing community support and desire in the latest hot-off-the-presses development cycle. You must have the new (v. 1.1) version of Freetype as the previous (v. 1.0) version will not work.
Freetype: v. 1.1.0 [ PPC RPM ] [ TAR ]
And yes, the snapshot really is 5MB now, as Raster has included copious dribbling TrueType fonts to show Enlightenment off with. And yes, Fnlib is still used and has not been abandoned by any means; contrawise, more choices have been added for more people.
New features include a prototypical iconisation and truetype fonts for use by Enlightenment. More can be found in the New Features question or by reading Themes.Org's Daily ChangeLog, which is updated daily for your viewing pleasure.
First, you must have CVS software in order to make use of it; this is included with most Linux distributions and vendor packages. Second, you must log in and check out the packages you want out of the CVS tree. Third, you will most likely want to keep updated.
There are many, many ways to do the second. My personal preference is to keep my CVS trees
separated from each other by making an executable script file that I call that has its own personal environment
space that is temporary. Note that everything can be written on the command line in whole or in part,
and/or placed where your normal environmental variables are generated as well. If you choose to define
this for your user, put it in your ~/.bash_profile if you use BASH, /etc/profile if you do not care where you put it,
or in your favourite shell's hiding place for profiles.
These profiles will be in your home directory and can be found by typing :
ls -lArd .*|less -- yes, I kid you not, lArd.
This is what I use for updating. If you are using the information to place in your profile, ignore the second line
and use it on the command line later. My /usr/local/bin/dognome file looks like this:
export CVSROOT=":pserver:anonymous@anoncvs.gnome.org:/cvs/gnome"
cd /usr/local/src/cvs; cvs -z3 update -d
First, no matter what form you choose to use for updating, you must create a directory for your CVS
(I call mine /usr/local/src/cvs), and check out the files you want by typing:
cd /usr/local/src/cvs; cvs checkout imlib e fnlib stringlist glib gtk -d
This will create a number of subdirectories and place your initial selections there for later updating. I simplify this
process by putting the above script in /usr/local/bin/dognome and typing chmod +x /usr/local/bin/dognome.
Then all I have to do thereafter, is type dognome for GNOME stuff, and transparently use other scripts for
other CVS repositories. For those who don't like loose scripts lying around, you can achieve the same ends by simply typing:
cd /usr/local/src/cvs; cvs -z3 update -d.
When all is said and done, compile and install it using the instructions.
There are two general ways: either edit a configuration file that controls or defines your X sessions yourself, or
run Enlightenment from your current window manager by typing enlightenment. In either case,
Enlightenment will be the window manager that gets invoked on your next X session.
Please note that simply typing enlightenment without concurrently running an X server
will not work in the same manner; for most users, this means that if you want this ease-of-use feature, you
must type it from within an already-running window manager session.
What Enlightenment tries to do at this point is find the startup script for you and add itself
in just as you would, by looking for calls to other known window managers. as a deciding factor.
You do not get much control from using it in this manner, and you will still have
to learn how to edit your X startup script or wrapper if you want to use another window manager again, either
because you like variety or if E does not suit your needs of the moment. It does not, however check every
file on your system for window manager calls, but rather limits itself to your
.xsession, .xinitrc, or .Xclients files. You need not worry about using this method
as it will not destroy your current setup in your startup scripts, but rather "disable" them by commenting
them out by prepending a "#" on each line. To return the functionality of booting other window managers
with your scripts, you merely need to remove these "#" characters, and add them to the lines that
call your Enlightenment-related portions. This normally amounts to commenting out
"esd" and "enlightenment" in a standard configuration.
Specifying an initial theme other than the default one is not accomplished by using the default installation
method. If you felt so inclined to maintain a more advanced setup, you may simply add
enlightenment -theme theme-path-or-tarball-name in an appropriate place in the startup
scripts you use to bring X up.
There are usually two ways of calling X: by using xdm or startx. Most people
generally type their initial startup script's name and know which system to deal with. For those
that boot up to X without an intermediary command line console, you are using xdm.
There are a number of places that each of these will look in order to execute a window
manager upon starting up X, and in fact, if you switch from one method to the other,
you could potentially have two different Enlightenment setups. You will no doubt see the overlap
in system-wide configuration files. In the event you do not see a current window manager reference
in the file(s) you edit, you will most likely see them in other files; these are listed in probably order
of usage. This means that the first file (.Xclients for startx, .xsession for
xdm) will be called first, and the other window manager references in the other files never executed.
If these files do not currently exist on your system, create them unless you have previously used the
first enlightenment installation
method,
in which case you should try to find the file that Enlightenment is called from. It is recommended
to change the settings within the scope of a single user via their personal configuration files as opposed
to the system wide ones, especially with regard to the xdm ones, as there are some implications
that might not be apparent. For system-wide definitions, if these are your preference, preface a command
with exec; with personal directory script includes, these are added by the main startup scripts.
If you use startx, you should probably edit either the .Xclients file in your personal
directory, or the system-wide one if this is what you prefer, in /etc/X11/xinit/Xclients on most
systems. For older XFree systems, the startup script might also locate and use .xinitrc first;
this practice has apparently been discontinued in newer versions.
If you use xdm, you should edit either .xsession or .Xclients in your personal directory,
or for the system-wide startup script, /etc/X11/xinit/Xclients or /etc/X11/xdm/Xsession.
You add them to the startup scripts just like any other application you would add. The only trick to it is to make sure that you add the programme calls before Enlightenment.
For a demonstrative example in case you've never done this before:
wmapp1 &
wxapp2 &
enlightenment
Notice that programmes that you want to run in the background are always suffixed with an ampersand (&). If
this is not added, you will have a startup script that stops until the called programme is finished its completion
or is stopped (with Ctrl-Z) and made into a background process (most likely bg 1). Since this goes
against the intention of adding it to an automatic startup script, I suggest you place the ampersands in where they
should go. ;)
ESD itself is not added to your startup scripts by the previous method. You can do this by
finding out
which startup scripts you use, and adding the call "esd &" before the one to
"enlightenment". This is important, because ESD must initialise itself before Enlightenment
asks it to play sounds. Indeed, if called after Enlightenment, you will only notice sound the next time
you log back in using xdm, but probably never notice it if using startx to beckon X
hither as it is not re-entrant.
xdm?
Your xdm configuration files, scripts, and programmes are located in either /etc/X11/xdm or in
/usr/X11R6/lib/xdm. There is one difference between setting up ESD for multiple users and one user,
and that is the problem of xdm re-entrance and ownership of the sound device. This may seem ridiculous
as the second part of the difference is why ESD was created in the first place, but hear me out. If you call
ESD multiple amounts of times, it's going to complain about ownership of an existing programme, and this will
happen if you run Enlightenment, because it boots ESD. ESD then does not die when Enlightenment leaves upon
logout, and it remains there stopping any xdm sound effects you might like, as it depends greatly
on who then has ownership of ESD who has ownership of the sound device, as xdm's pseudo-user
runs all programmes within userspace for the user while logging in through xdm.
Are you with me so far? Good. The reason why this happens is really simple. You can set ESD to
accept claims of ownership from anybody, but that might not be such a hot idea as it first sounds,
on a machine with any access to any persons who you don't want to have access to a daemon. This
means it has to be choosey about who owns it. While this can be controlled with esdctl
lock and esdctl unlock, this still leaves you open some of the time, and you
still have to edit something to cause this to happen. You could do this, and then
grant ownership to the pseudo-user xdm generates, but then how do you get it back
efficiently without killing it again and re-executing it under a different user each time you need
to? Very, very messy, and very, very confusing.
The short of it is that there isn't any perfect solution to controlling what is yours on a networked (or "open") machine. This juggernaut of a problem can be reduced to a set of instructions that should work for everybody while maintaining some fairly good protection in the bargain:
TakeConsole by adding:killall -HUP esd; # reset ownershipsu $user_logging_in -c esdctl lock # mine!su $user_logging_in -c esdplay /path/to/known/welcome/file.wav # change me
Xsession by adding:if fuser `which esd`|grep -c [0123456789]; \then echo ESD already loaded; else esd; fi;What this should do is run ESD but once, from the moment that you start your X window session
manager. The TakeConsole affair should readily make sure that the user logging in
is the one in control of the daemon, and no other entity with userspace access can snatch it
away from them and use it as a trojan for further activity, or a denial-of-service attack.
The above example also plays an initial sound file using esdplay, which is available
if you compile ESD with the optional audio file library. Using Emusic or Replay as a substitute should
work as well. If you insist on using a non-ESD conformant player for login sounds or music, you
will probably have to scratch this setup, as you will need to use some trigger sequence in order
to find out when to esdctl resume before logging in as a user while the other sound programme
is hogging the sound device.
If you wish to add whatever special mood music only during a login session, you can implant your
music commands into Xsetup_0, in the same directory as everything else. Yes, it will
seamlessly mix with anything you also have as an introductory splash sound.
Of course, this isn't your only recourse, by any means whatsoever. The above method is not bullet proof,
as somebody could theoretically start up ESD before you do on the first bootup if you
have a networked machine, or request services from ESD if you choose to use esdctl resume, which
is a current vulnerability (but which might be addressed in the future).
Alternatively, Ricdude, the author of ESD, recommends that you simply put the initial bootstrapping of ESD
in your system's boot scripts as opposed to its X startup scripts. Most systems locate their boot scripts
in the /etc/sysconfig; it is beyond the scope of this document to help you define where to put it.
This should be adequately documented by your distribution or vendor. There are also front ends
reportedly available for some systems to save you some time. The task of what to put in your
startup scripts is exactly the same; in fact, the conditionality of the above Xsession file
can ensure that you can switch between these setups, with only modification of the system's boot
scripts being necessary. Just add a call to esd.
If you have a slower machine, the chances are high that the time Enlightenment waits for ESD to initialise itself is not long enough. You can diagnose this by its common symptoms:
The solution to this is to set a large enough time delay in your startup script placed so that ESD has enough time to properly initialise itself before Enlightenment is executed. A suitably simplified example of what I'm referring to follows. Please note that you can change the value of 5 to some lower number if you get consistently long enough wait results for ESD to initialise; this numerical value is measured in seconds. If your startup scripts involve loading a number of other clients, you can also judicially place them between the calls to ESD and Enlightenment instead, to better use your machine's idle processor cycles.
esd &
sleep 5
enlightenment
ESD's purpose is to play sounds using a consistent interface to the sound device, in this case, either
/dev/dsp or /dev/audio. All other programmes need to do the same, and this brings about
the problem of who controls it and when. ESD will seamlessly mix sounds together and act as an intermediary
to your sound device. In order to do this, it must control the device in question at all times, which would
otherwise be the natural method for each programme, only centralised and not as chaotic.
There exist only two solutions if you still wish to using that sound programme you want to use:
either pipe it through ESD itself using esdcat, or to temporarily turn off ESD's
ownership of the sound device, and possibly re-enable it at a later time. It is obviously
preferable to keep the mixing ability of ESD, especially considering the fact that Enlightenment
can use it for its desktop sounds without the temporary loss of use of your other sound programmes, as would
normally happen when two or more programmes want ownership of the sound device at the same time.
There is, however, one invisible disadvantage that might become noticeable on some systems when using pipes to bypass a favourite programme's inability to detect and use ESD: there might be a slowdown due to the nature of data being pushed along the data bus by the pipe. On most systems, this might only be apparent when you push your system in other ways at the same time; on others, the situation might be altogether different.
As it happens, both of these functions, and more, are easy:
esdctl standby or esdctl offesdctl resume or esdctl onesdcat < soundfile.wavprogramme soundfile.au|esdcatgraphic-eq-programme
Yes. Natively supporting ESD applications naturally promote a better supported and more stable system. While other <@@ref>esd_othersolutions exist, it is still not substitute for programmes that completely understand each other's system of behaviour and possible idiosyncracies, the most obvious of which are MPEG players that don't realize that they don't need an "unbusy" sound device in order to correctly.
Emusic and Replay are both ESD-compatible sound players, and as feature rich as the well known x11amp, and can handle several different audio formats you would normally use. They preclude the necessity of having to use the other non-compatible sound players, and this singular ability gives you the freedom of a seamless mixable device without the mess of pipes or conflicting sound players vying for control of your hardware.
Another alternative is to get the sound library that ESD suggests when compiling it, and thereby getting another programme that works from the command line called "esdplay". Note that ESD will not compile this programme without the required sound library, althrough it will tell you where to get it if it isn't present on your system at compilation.
These are programmes that use ESD (the Enlightened Sound Daemon) as part of their sound device support. Other (more unaware) programmes can be used with pipes connected to ESD and these are unlimited in scope. Although there are few programmes that directly use ESD, you will find almost all bases that you would use sound for are covered.
Right now, many of the hardware interfaces are experimental, untested, or both. However, stereo sound cards using a standard Linux kernel driver work. While it aims at being as cross-platform compatible as possible, many architectures seem to be severely under-represented as a userbase in sending in bug reports and development support. There is a known problem with big endian ESD servers and 16 bit sound bites being cached, which can lead to some interesting spontaneous remixes. Current architectures that are under development are:
GTK themes have absolutely nothing in common with Enlightenment themes. While Imlib has a requirement for GTK, this is incidental to Enlightenment's usage of Imlib and is only part of the Imlib package so that it may also be integrated into the GTK widget set. Enlightenment does not make use of GTK, or GTK themes. ConfigEdit, however, is included as part of the Enlightenment package, and does as it is at heart, a GTK application for theme modification. In short, you do not need GTK themes to use Enlightenment.
If you like the look of the screenshots that show a thematic touch with GTK widgets, then go get them, install them, and have fun. Strictly speaking, they have nothing to do with Enlightenment and is not supported by its developers as part of the Enlightenment package. For an example of what GTK themes really look like, Technoir's "Hand of God" theme from the screenshots section will show you.