Personal musings: Enlightenment DR17

Posted on Sep 12, 2005

I won’t bother with a full review of my own; there are a couple ( 1, 2) that I’ve already read online that already say most of what I would have anyway.  So this is just the things that I’ve noticed with my own installation.

Anyway, the important links first:

Now, on with the show.  I’ll obviously be modifying this post with cool screenshots of my own system once I get home (I’m at work right now), but for now I’ll start with a timeline of my Enlightenment experience.

Backstory:  I don’t know if it’s in this weblog, or if it was in my old CMS system, but a while back I wrote about switching from Gnome 2.4 to KDE 3.1.  I’ve kept up with KDE (whatever was in Debian Sid) since then; comes to about the last 2 years, I think.  Before that, I used Gnome from about when Gnome 1.2 came out (probably a good 2-3 years).  And I’ve found really old screenshots from between 4 and 7 years ago that are of me running Enlightenment and DR16 (and having screenshots of Raster’s old E website, I think I may have even used E 0.01; I at least remember configuring those slideouts).  So I really am an “old-school” enlightenment user; I just became dissatisfied with the slow development progress (evidence that it’s been about 3 years since a major release) and lack of features that I regarded as critical (like panels and more convenient configuration of themes, launchers, and desktop wallpapers).  Gnome (and later KDE) both had those features and more at their respective times, so I’d switched to them.  Then I got a Mac (last October/November; an early birthday present for myself).  And its easy-to-use, minimalist (in comparison) desktop has really grown on me over the last almost-year; pretty much to the point that when I’m at my Linux workstation, I don’t really use 90% of the advanced features that KDE offers me.  All I really want is a desktop environment that does what I want, when I want it to, and cause me the least number of headaches.  Enlightenment now does all of that (well, almost all of it; when DR17 is released, I suspect that “almost” will disappear).

Keep in mind that I did just say “when DR17 is released”.  DR17 is currently what I’d call either an “experimental release” or “alpha software”, depending on the user-level of the person I’m talking to.  I’ve already had a few segfaults that brought down my entire X session, and I had some problems compiling the stuff (still have, with Evidence).

So.  On friday afternoon, I downloaded elive 0.3.  I was going to boot the ISO in my copy of VMWare, and play around with it in a virtual machine.  But I’d apparently upgraded my GCC installation since the last time I compiled my kernel, and the VMWare kernel modules hadn’t been pre-compiled for 2.6.12.2.  I forged ahead anyway, compiling with the wrong version of GCC, and promptly screwed up my system in a major way.  Everything I tried to run with sudo would freeze, network operations became slower to respond, and I got a general feeling that I should drop to init 1, then back to multi-user, to fix the problem.  Then I got to thinking, maybe I should just upgrade my kernel; I’d kill two birds with one stone:  I’d have a new kernel, compiled with the same version of GCC that I was using to compile the VMWare modules, and I’d also have to reboot to start running it, which would clear up the pesky sudo problems I was having.  So I started the make oldconfig.  Then I realized that since I was going to reboot anyway, and since I’d already moved my mail server and web server to my other box, there was no reason not to try elive out on my actual box instead of inside vmware.  It was a Live CD anyway, so it’s not like I was risking my machine’s stability or my data by testing it out.  So I burned elive 0.3 to CD, and left it in the drive.  I also finished compiling that kernel image, and installed it in my Grub configuration (implementation left to the student; see manpage for make_kpkg).

A quick reboot (and BIOS reconfiguration) later, and I was using Enlightenment DR17 off of the elive CD.  Well, sort of.  It was running on my machine, but that Radeon 9200 that I have is a tricky beast, and configuring X to span the screens isn’t an easy task.  Luckily, I already had a copy of my xorg.conf (well, XF86Config) on my “production” partition, so I copied it over and did a bit of tweaking.  There were a few things that needed to be done in order to make it work (like installing xserver-xorg; XFree86 has languished since the fork and is now missing many features that I find essential), but about an hour later I had E17 spanning both screens (at an effective 2560x1024), and it was sweet.  Snappy application response, excellent window placement, graphics to die for (thanks, Raster!), and the best part:  even though it was experimental, alpha-grade software, it seemed (for the most part) to “just work”.  That’s right; the same “it just works” that MacOS has.  Granted, this was nowhere near as much “it just works” as MacOS has; this is just the desktop environment.  Things like server manipulation, network configuration, printing, etc. still needed to be configured “the hard way”.  But the part that was important to me, the actual desktop shell, was Good.  So I decided to switch from KDE.

Reboot, choose the new kernel (linux 2.6.12.2-devlogic-20050910), and find the e sources.  There’s a link to get-e.org from the elivecd.org website; page 2.1 of the User Guide was essential to my successful completion of this task.  I tried the Debian packages first, because that would’ve been the easiest, but some things didn’t quite work right.  I don’t really remember what they were, but it was enough that I decided to compile everything from CVS instead.  That “page 2.1 of the User Guide” has the correct order to compile the E Foundation LIbraries; follow it to the letter and you shouldn’t have any problems.

Of course, “shouldn’t” and “won’t” are different, and I did have some problems.  I didn’t figure it out myself until Saturday night (although I guess technically it was Sunday morning; 1AM can be ambiguous at times). So here’s what I did wrong, in case it helps anyone with a similar problem.  When I tried to run some programs, like e17setroot, I got an error referencing libebits.so.0 being missing.  ldd confirmed the link and missing lib.  But libEbits isn’t part of E17 any more, ever since the edje libraries were rolled in (I found this out through various Google searches).  And I couldn’t find libebits.so.0 anywhere on my system, or any reference to them in any source files in my CVS checkouts.  I thought I was at a dead end.  Then, and I forget why, I was looking through /usr/local/lib, and came across libewl.  “That’s strange”, I thought.  “I’ve been installing everything in /opt/e17, not /usr/local.“  Then I remembered that I’d tried (and failed) to install an earlier version of E17 several months ago.  Apparently I hadn’t remembered to remove all of the old libraries, include files, and apps associated with that failed attempt.  And libewl.so.0 (or maybe libecore.so.0; I can’t remember) was linked against libebits.so.0, even though that particular lib was no longer on my system.  So a few judicious “sudo rm -rf libe*"’s later (and be sure to figure out what that does on your system before you do it), and I was recompiling everything in the EFL and e17/apps directories again.  But once I finished, everything that I’d noticed being broken before was then working.

Which leads me to where I am now, a happy user of E17.  There are obviously still some bugs; it’s experimental, alpha-level software.  But the bugs that I’ve found have all already been mentioned in various bug reports or mailing list posts, which (I assume) means they’re being worked on or at least considered.  Heck, if I knew C++, I’d probably try to help smash some of the bugs myself.  Suffice to say that this is. for my needs, a much better experience than KDE or Gnome has ever provided to me, and I give all of the encouragement I have to the E developers; this is already looking to be an excellent desktop shell.

Now if I can just get Evidence to compile.  Apparently the makefiles aren’t paying attention to the various *_CFLAGS lines they contain, so I’m having to manually specify “-I/opt/e17/include”.  I’m sure it’ll be fixed some time in the next few checkins.  That, or I just need to upgrade my automake tools.

Ah, well.  Such is life on the bleeding edge.