[SHR,FSO] Serenity theme for illume

Joel Newkirk freerunner at newkirk.us
Sun Mar 29 23:13:28 CEST 2009

I know it's been a few weeks since I said I was going to try to get
this out, I apologize.

I've released what is essentially an alpha test for the Serenity
theme, therefore named serenity-0.2.  It's incomplete, and may be broken
in some ways I've not seen yet.  Comments/criticisms/advice on
structural and functional aspects are welcome, those on visual style
should be limited to points of inconsistency with the rest of the theme
or problems like scaling. (specifically, if you don't like the look of
the theme that's fine, but don't bother with comments like "I don't like
dark themes" or what-not - the point is to present the theme to those
interested, and hopefully discuss improvements/fixes, not take a poll
of the appeal)

Note that this is just an Illume/Enlightenment theme, NOT Elementary or
any specific apps.  (like Paroli, Zhone, SHR phonegui-efl)  I'm working
on those as well, however.

I use it currently with SHR-unstable and FSO-MS5.1.  You can download
it from http://newkirk.us/om/serenity-0.2.tar.gz and extract - it opens
to a folder named serenity, which
contains usr/share/enlightenment/data/themes/serenity.edj
and usr/share/enlightenment/data/config/serenity folder holding a few
files. Copy themes/serenity.edj and the config/serenity folder
to /usr/share/enlightement, then you can select it in Illume Settings
under Look->Theme, select 'System' at the top-left to see themes
installed globally. (/usr/share/...)  NOTE: Wallpaper and Theme, at
least, may segfault if you are using Software_16 rendering.

Once I'm satisfied that it doesn't break anything, and all the
main elements are rethemed, I'll release it as an ipk.  (of course, at
any time if someone wants to they can extract the serenity.edj file and
have their way with it - anyone who wants to enhance or alter it
in any way is free to do so, so long as 'simple' alterations like
changing some images files retain a credit that the new theme is "based
on Serenity by Joel Newkirk" - 'major alterations' or extraction of some
portion of Serenity to use in another theme is fine without attribution)

What I'm doing:

Start with Illume and default themes (anything not defined in illume.edj
will 'fall through' to default.edj, like battery and clock) basically
renaming illume as serenity, and merge more groups up from default
(battery, clock, desktop icon, etc) then work to simplify the
structure (graphically and visually - most significantly, making icons
two images instead of about eight images each) and shift toward the
desired visual appearance.  

Ordinary buttons are translucent white, though on the black default
background they appear grey. Selected/pressed buttons are an
'openmoko-orange' tinted rendition of the same translucent button
image. Icons are just icon image at rest, are translucent white when
highlighted by keyboard or mouseover (IE dragging on FR) and
translucent orange when clicked/tapped.

Battery applet is the green one from Illume, but narrower.  Tapping it
displays the battery percentage and time overlay.  GSM applet is the
same as Illume but colorized red/yellow/green based on signal quality,
with carrier name above signal. Clock applet is more heavily
altered, displaying digital time with date below it.  Keyboard has been
visually/structurally simplified - removing two transparent overlays
from each key - resulting in (for me at least) significantly faster
keyboard response.  (and About:Theme is reworked, though you can only
see it if you enable the 'Start' Top Shelf Gadget, then select
Enlightenment->Theme from the menu - the animation there is one I've
used for splash and busy screens as well, but the FR doesn't seem to
have sufficient horsepower to do that without noticeably slowing load
times, so I axed them - eventually I may end up with a 'pretty' and a
'functional' version of the theme)

Still to do: Several components (like keyboard suggestion popup,
tasklist) are still black-text-on-grey-gradient, will be changing to
light-on-black.  Some visual elements (like left-right arrows on top
bar) are still IMHO pretty ugly with software_16, which I hope to fix.

I'm hoping within a couple weeks or so to have finished at least the
structural/composition changes, resulting in a leaner and faster theme
that can easily have any/all images altered to result in a completely
different yet still leaner/faster theme. 

I've also worked on theming Elementary, Zhone, and SHR's telephony
GUIs, (just looked at Paroli so far) but haven't yet seen any way to do
so without overwriting the original files - which of course is a no-no,
being subject to reversion whenever the package owning them is
updated.  (Can anyone tell me a 'right' way to override them?  Does it
require rewritten apps that explicitly support theme selection or

For those unaware, a .edj file is essentially an archive containing one
or more .edc (text) files that define the theme, any number of lossy or
lossless compressed images, fonts, and a script to recreate the .edj
file after extracting and altering it.  So it's possible to extract an
edje file (with edje_decc) and simply replace the image files for, say,
the GSM applet, then recompress the theme and run with it.

In order to get a more responsive 'desktop' it's helpful to:

Set Application, Top Shelf, Keyboard, and Status Animation Off (under
Illume Settings: Display->Animation) - Play with the settings and see
what suits you, I ended up with Top Shelf set to Very Fast and
everything else off.  These animations don't take much processing
power, but the wait while the opening/closing is animated can 'feel'
slow, especially if heavy CPU usage causes it to pull back to only a
couple frames between the two states.

Set Software_16 rendering instead of Software (under Illume Settings:
Advanced->Engine) - As noted many times before, display is faster
and more responsive, but some graphics look blotchy or jagged with
software_16. One of the goals of Serenity is circumventing this, such
as trying to ensure that any imagery (e.g. Top Shelf background) either
stretches only monochrome portions, or doesn't get stretched at all.
Hopefully this will change at some point - Software_16 visual
improvements, Software speed improvements, or maybe upcoming changes to
xglamo support offering compositing.

"killall -HUP enlightenment" - this or some other method (like
move/restore a .desktop file from /usr/share/applications) that forces
enlightenment/illume to refresh the desktop display once after booting
has been documented to reduce E's CPU usage dramatically, such as from
25% to 3%...  Presumably the root cause of this will at some point be
fixed upstream and this will no longer have any effect, nor be needed.
Create a .desktop file with "Exec=killall -HUP enlightenment", mine is
named 'relite' (as is the console script that does the same)


More information about the community mailing list