Intone (0.24) Elementary based mplayer frontend

Thomas Seiler thseiler at
Tue Apr 14 20:15:29 CEST 2009


c_c wrote:
>Mirko Lindner wrote:
>>The elm theme we install sets the text color in elm-entries to white rather than black.
> Ah! That explains it. Hmmm - Well, it looks like I'll have to see if I can change over
> my entry's (there's only 1) background to black.
> But there must be a better way - we surely can't have changes applied system-wide
> based on the theme used for one App.

I think there is some infrastructure already there, working on the
edje group level...

Please check the Elementary wiki page:

Quoting the section about elementary envionment variables...

> ELM_THEME - This sets the theme(s) to be used in order from most
> preferential, to least, just with the theme name (minus the .edj extension)
> with a : character delimiting the name. A simple personal theme would be
> mytheme. If you wish to primarily use your personal theme, and then fall
> back to another, you can do: mytheme:fallback.
> This allows as many levels as you like. It is always assumed that the final
> fallback theme is the default theme. A complex example would be:
> mytheme:fallback:systemfallback:othersystem. Remember theme names
> like "mytheme" mean it assumes a mytheme.edj is in $HOME/.elementary/themes
> OR if not found here first, it is in $ELM_DATA_DIR/themes under the same
> name.
> Themes in your users theme dir always take precedence. A Theme name can
> ALSO be a relative or full path to a file. In this case the fill filename
> including extensions needs to be given. i.e. /path/to/file.edj:mytheme:fallback:
> ../../relative/path/file.edj:./dir/file.edj. With full or relative paths searching in order
> still happens. Note that there is a convenience shortcut for the users home
> directory of ~/. So if a theme element is ~/dir/file.edj then ~/ is expanded to
> the the value of $HOME (the users home directory).

The way I understand this is that for every edje groud that is needed
to render a
 widget, elementary will check the *.edjes in the order they are listed in the
ELM_THEME env variable. If a group is not found, it will check the next *.edj

Digging deeper, there are two undocumented API calls in Elementary.h:

EAPI void         elm_theme_overlay_add(const char *item);
EAPI void         elm_theme_extension_add(const char *item);

I think these allow the application to add their own themes app dependent *.edj,

either _before_ ELM_THEME (that would be elm_theme_overlay_add() )
or _after_ ELM_THEME (that would be elm_theme_extension_add() )

The relevant code is at:

I have not tested this, but the code looks as if it would be in working shape.
Hope this is usefull nevertheless...


Excercise 17:
If the human brain was simple enough for us to understand we'd be so
simple we couldn't understand.
Prove this by induction.

More information about the community mailing list