Hey all,
First of all, I'd like to greet everyone here - this is my first post
on this mailing list. I've been been writing and maintaining the
lude.net/edocs guide with Tom Kuther for quite a while already.
Recently we were asked by Benr if we wanted to write some users
documentation for E17. So here it is - it's not the final version, but
most of the text itself is done. It's based on the edocs text but
modified quite heavily to look and feel more professional. This is
just the text itself though, it will obviously need to be turned into
a more eye-friendly page with perhaps some screenshots and so on.
The point of this guide is to provide user-level documentation for the
E17 windowmanager and the most popular EFL based applications. We're
fully aware that everything is going to change and so on, the point is
to have a guide that would evolve (maintained with the new CMS system)
alongside everything in CVS. This doesn't mean E17 should be supported
or anything similar (there's a pretty clear disclaimer of the current
situation). This guide is intended to help the early-adaptors/testers
with getting started with E17, it's not meant as a final users guide
of course.
Me and Tom aren't coders, I'm sure you can see that by reading the
guide, so there may be some inaccurate stuff there right now. So what
I'm asking is if you could read through the guide and perhaps provide
some feedback on what needs to be improved and changed. I'm including
the current version of the raw text as an attachment. You can also
find us on IRC, my nick is vrln and Tom is gimpel - we're both on
freenode IRC pretty often and hang around at #edevelop.
cheers,
Valtteri
Enlightenment DR 17 Users Guide
pre-release version 0.9
1. Getting started
a.) Disclaimer
b.) Credits
c.) Current status
2. Installation
a.) Building order and CVS notes
b.) Distribution specific information
3. Configuration and usage
a.) Introduction
b.) Modules
c.) Icons
d.) Background
e.) Themes
f.) Frequently asked questions
4. Other EFL programs
a.) Engage
b.) Entice
c.) Entrance
d.) eRSS
e.) Evidence
1. Getting started
a.) Disclaimer
Enlightenment DR 17 and most of the applications based on the Enlightenment
Foundation Libraries (EFL) have not been officially released. The current CVS
versions do not represent the final releases and are far from being feature
complete and stable versions. Everything is still under heavy development and
E17 and the applications based on EFL aren't supported yet. Some applications
and libraries can be broken sometimes. In other words, don't be suprised if and
when you encounter bugs or if something doesn't work correctly yet. This guide
is also under development and we are trying to keep it up to date to reflect
the current E17 and the various EFL programs in CVS. The authors of this guide
or the E17 developers are not are responsible for any damages caused by
following
this guide or by the programs/libraries themselves. E17 and EFL applications are
meant for developers only at the moment, but everyone is welcome to play around
with them of course. We have tried to write this guide as error-free as
possible,
but if you notice anything that should be changed, please let us know.
Eventhough
it's a bit early for documentation as E17 (and other EFL based programs and even
the libraries themselves) will change before release, the early adaptors and
testers might find this guide useful :-)
b.) Credits
This guide has been written by:
Valtteri Vainikka (vrln)
Tom Kuther (gimpel)
If you have any comments, suggestions or perhaps notice that some section of
the guide is out of date, please don't hesitate to contact us. Thanks to
DebMat for providing us the EFL dependencies for Debian.
c.) Current status
This site has last been updated 10.3.2005. It's currently actively maintained
and everything should be up to date. E17 is in a mini-freeze right now so no
new features are added until all lose ends and known bugs are fixed.
2. Installation
a.) Building order and CVS notes
As already said, E17 hasn't been released yet and thus you'll either need to
get a current development version from CVS or use the snapshots available at
http://enlightenment.freedesktop.org. Note that the E17 isn't feature complete
yet - things will change alot and the current version does not represent the
final release.
Enlightenment DR 17 is based on the Enlightenment Foundation Libraries (EFL).
In order to be able to build the E17 windowmanager and other EFL programs,
you'll need to install certain (depending on which applications you are going
to install), EFL libraries. For build requirements and dependency information,
check http://www.rasterman.com/files/efl.png and
http://enlightenment.freedesktop.org.
You'll need to follow the EFL diagram to see the dependencies and build orders
for the various libraries. If you wish to install all EFL and thus be able to
build all EFL based programs, you can use the following build order:
1. e17/libs/imlib2
2. e17/libs/edb
3. e17/libs/eet
4. e17/libs/evas
5. e17/libs/ecore
6. e17/libs/epeg
7. e17/libs/epsilon
8. e17/libs/embryo
9. e17/libs/edje
10. e17/libs/esmart
11. e17/libs/emotion
12. e17/libs/etox
13. e17/libs/ewl
The number specified is the order you need to install the libraries in.
As already said, this order is simply for those who wish to compile all EFL
and thus be able to build all EFL apps. The dependencies of individual EFL
apps vary.
The following apps for example should build with the above libraries:
* e17/apps/entice (image viewer)
* e17/apps/entrance (login manager)
* e17/apps/elicit (image tool)
* e17/apps/e (E17 windowmanager)
* misc/engage (dockbar and E17 module)
* e17/apps/erss (RSS feed application)
* e17/apps/e_utils (user-friendly utilities for the E17 WM)
These aren't all EFL based applications, just some of the most popular ones.
Now let's download a fresh copy of the E17 CVS tree. If you don't want to use
CVS, you can find snapshots of E17/EFL at http://enlightenment.freedesktop.org
Start with getting the entire E17 CVS tree with the following commands:
cvs -d:pserver:[EMAIL PROTECTED]:/cvsroot/enlightenment login
cvs -z3 -d:pserver:[EMAIL PROTECTED]:/cvsroot/enlightenment co e17
or if you only want a certain library or program, use the following syntax:
This for example will download the E17 windowmanager.
cvs -d:pserver:[EMAIL PROTECTED]:/cvsroot/enlightenment login
cvs -z3 -d:pserver:[EMAIL PROTECTED]:/cvsroot/enlightenment co e17/apps/e
First you will need to install all EFL in the correct order. After this you
can start installing the E17 windowmanager, which is e17/apps/e in the CVS
tree. This is the basic thing your propably already familiar with:
$ ./autogen.sh
$ ./configure --help
# See if there are any configure options you'd like to set, for example if you
# want to install it to somewhere else than /usr/local, you'll need to run
# configure with the right switch.
$ make
# and finally as root:
$ make install
If you don't set any special configure options, the EFL and the E17 Wm will be
installed to /usr/local. If you already have E16 installed, it's recommended
to install E17 to a different path to avoid conflicts.
Also make sure you have the right paths configured in /etc/ld.so.conf. For
example if you install the EFL to /usr/local you should also add that
directory to /etc/ld.so.conf and run ldconfig as root to create the necessary
links and cache to to the most recent shared libraries found in the
directories specified in the config file.
Now that you have installed the Enlightenment Foundation Libraries and the E17
windowmanager itself, you probably also want to also install some E17 components
which aren't included with the windowmanager itself.
If you haven't downloaded the entire E17 source tree, you will need to
download the programs you wish to install now.
The CVS tree directories for the applications covered in this guide are:
e17/apps/entice
e17/apps/entrance
e17/apps/elicit
misc/erss
misc/engage
To download Engage for example, you would have to use the following commands:
cvs -d:pserver:[EMAIL PROTECTED]:/cvsroot/enlightenment login
cvs -z3 -d:pserver:[EMAIL PROTECTED]:/cvsroot/enlightenment co misc/engage
or if you'd wish to download Entice you would need to:
cvs -d:pserver:[EMAIL PROTECTED]:/cvsroot/enlightenment login
cvs -z3 -d:pserver:[EMAIL PROTECTED]:/cvsroot/enlightenment co e17/apps/entice
In order to install the program, you'll need to do the standard:
# as a user account
./autogen.sh
./configure --help
# see this for compile options you might want and set them by running
# configure with the switch you want.
make
# and finally as root
make install
Also make sure that your /etc/ld.so.conf has the correct directories.
b.) Distribution specific information
Debian:
There is an unofficial frequently updated E17 package repository maintained by
shadoi (E17 developer) for Debian Sid (unstable). See
http://shadoi.soulmachine.net
for more details.
$ apt-get install autoconf automake1.7 gettext libtool libfreetype6-dev
libjpeg62-dev libpng3-dev libtiff4-dev libungif4-dev libbz2-dev libltdl3-dev
pkg-config libxine-dev libgtk1.2-dev build-essential flex bison byacc
Gentoo:
There are ebuilds in Portage for all EFL and most programs that use them. In
addition to snapshots that are updated every few weeks, there are also live
CVS ebuilds available. All CVS ebuilds have sudo as a dependency, so it will
also be installed if you use the CVS ebuilds. It can be considered to be a
security risk. The default sudo config file should not allow much though, so
unless you edit it to allow insecure stuff it shouldn't be a problem on normal
non mission-critical desktop systems. This is of course a question of opinion
so you'll have to decide for yourself if you consider it a risk. Another thing
you should know is that the CVS ebuilds obviously don't check md5sums. The CVS
ebuilds will also use root for all steps of the installation and may not
always work, depending on the current CVS situation. The snapshot ebuilds are
only updated if nothing is seriously broken.
The CVS ebuilds are marked with the -* keyword while the snapshots are marked
~arch. Obviously neither the snapshots or the CVS ebuilds are marked stable.
These ebuilds are maintained by Mike Frysinger ([EMAIL PROTECTED]).
If your whole system is set to ACCEPT_KEYWORDS="~arch", you won't have to make
a /etc/portage/package.keywords file if you wish to use the snapshots. Just
emerge them in the correct order.
Please read the official Gentoo Portage documentation for more precise
information on Gentoos package manager and especially the keyword system. Here
is an example /etc/portage/package.keywords configuration file, which includes
CVS keywords for the EFL and most applications based on them:
x11-wm/e -*
x11-misc/engage -*
x11-libs/ewl -*
x11-libs/evas -*
media-libs/imlib2 -*
dev-libs/eet -*
dev-db/edb -*
x11-libs/ecore -*
media-libs/etox -*
media-libs/edje -*
dev-libs/embryo -*
x11-libs/esmart -*
media-libs/epsilon -*
media-libs/epeg -*
app-misc/examine -*
net-news/erss -*
x11-misc/entrance -*
app-misc/evidence -*
media-libs/emotion -*
media-gfx/elicit -*
media-gfx/entice -*
dev-util/e_utils -*
dev-libs/engrave -*
If you wish to use the snapshots instead, and are running a stable (arch)
system, replace the -* with ~arch. For most people (those using Intel
compatible x86 processors) this means ~x86.
3. Configuration and usage
a.) Introduction
Enlightenment DR 17 is a next generation window manager based on the
Enlightenment Foundation Libraries. It's going to combine features of a window
manager and a file manager, but it isn't going to be a desktop environment
either. This is what the E17 development team calls a desktop shell.
You can start E17 with your favourite login manager or by starting it directly
by using an ".xinitrc" and startx. Here's an example of an ~/.xinitrc file that
will start E17, assuming that you installed it to /usr/local that is.
exec /usr/local/bin/enlightenment
Once you start Enlightenment, the first thing you should see is the rotating
Enlightenment logo animation. It's also a small showcase of what's possible
with the EFL. This startup sequence is artificially slowed down. If you wish
to skip it or perhaps don't want to see the popup window that is shown after
it, you can add this to your ~/.xinitrc:
# this removes the intro animation
NOSPLASH=1
export NOSPLASH
# and this removes the welcome popup window
NOWELCOME=1
export NOWELCOME
By default only be 1 window is used - you can add more virtual desktops from the
menu. Keybindings aren't implemented yet, so you'll have to use your mouse for
the time being. E17 uses binary config files. They have very little read/write
overhead, so there is no no CPU wastage on parsing etc. User-friendly tools
for dealing with these files are included in the e_utils package, which is not
currently included with E17. Also note that fake transparency (for example
Eterm/Aterm/Gkrellm use it) is not supported in E17, but it is possible to
force it by setting a background with Esetroot (included with Eterm, which is
not included in E17) or e17setroot (included in e_utils, requires Esetroot in
order to be able to force fake transparency). When you force fake transparancy
usage with one of these tools, the background in E17 will not change - only
the programs that use fake transparency will see it.
Here's how E17 works:
mouse1 button --> Opens the main E17 menu
mouse2 button --> Opens your favourite applications menu
mouse3 button --> Shows currently open applications. You can also bring back
minimized applications or focus on an application by
clicking the corresponding icon here. For most systems the
mouse3 button is pressing the mousewheel.
alt + mouse1 + drag a window --> This will drag and raise the window
alt + mouse2 + drag a window --> Open the window status menu
alt + mouse3 + drag a window --> Resize window
Focus will automatically follow the mouse pointer. It's currently not possible
to change this behaviour. Let's now take a closer look at the main E17 menu.
It has the following entries:
[insert E17 menu picture here]
Favourite Applications
This is your standard application menu. You will need to create and add icons
to it. It's also possible to add directories and subdirectories to this menu.
Please check the icons section for precise information.
Modules
E17 can be as light or as heavy as you want it to be. Modules are E17
components that can add certain abilities to the desktop shell. By default the
following modules are enabled: dropshadow, iBar, pager, temperature, battery,
clock. These modules can be disabled or completely unloaded if you wish to
minimized memory usage.
Desktops
This is where you can configure the amount of virtual desktops. You can create
new rows or colums of virtual desktops.
Windows
This is the same screen that you see when you press the mouse3 button on the
desktop. Here you can either raise minimized windows or swift focus to a
certain window.
Gadgets
Here you can can control modules. Once you select "Edit Mode", the iBar,
clock, Engage and the pager will start to display a graphical border. You can
either drag the modules across the screen or resize them by dragging the golden
handles that have the animated arrow effect. Once you've moved and resized the
modules, select "Edit Mode" again and the changes will be saved and you'll no
longer be able to control the modules until you start "Edit Mode" again.
About Enlightenment
Restart Enlightenment
Exit Enlightenment
Now let's take a look at the the window borders. You can drag the window by
dragging the borders. On the top-right corner you'll find the standard
minimize, maximize and close buttons. If you have created an icon for the
application that you are running, it should display in the top-left corner of
the window. If not, it'll just be an empty space. If you click it, you'll be
presented with a window status configuration menu. From here you can set a
window to sticky mode and so on. Note the "Create Icon" option if you don't
have an icon for the application yet (or "Edit Icon" if you already have one).
>From here you can open e_utils_eapp_edit, which is a graphical tool for
creating or editing the binary icon files E17 uses. See the "Icons and the
menu" section for more precise information.
b.) Modules
E17 can be as light or as heavy as you want it to be. This is configured via
modules that can be loaded or unloaded in real time without having to restart
the window manager. Modules can add all kinds of functionality and features.
By default the following modules are loaded: iBar, dropshadow, clock,
temperature and battery. There are two modules included with E17 that are
included, but aren't loaded by default: snow and flame. Engage also has a module
version, but it isn't included with E17 - you'll have to install the Engage
package from the CVS tree. If you have E17 installed, it will build the Engage
module in addition to the standard standalone version which can run in any
window manager.
You can load, unload, enable and disable modules with the enlightenment_remote
tool. Note that if you keep a module loaded but not enabled, it will still use
memory, so if you wish to minimize memory usage, unload the modules you don't
need.
OPTIONS:
-module-load OPT1 - Load module OPT1 into memory
-module-unload OPT1 - Unload (and disable) module OPT1 from memory
-module-enable OPT1 - Enable module OPT1 if not enabled
-module-disable OPT1 - Disable module OPT1 if not disabled
-module-list - List all loaded modules and their states
-bg-set OPT1 - Set the background edje file to be OPT1
To see what modules are currently loaded, issue the following command:
enlightenment_remote -module-list
It will display something like:
WARNING: not a utf8 locale!
REPLY: BEGIN
REPLY: MODULE NAME="ibar" ENABLED=0
REPLY: MODULE NAME="dropshadow" ENABLED=1
REPLY: MODULE NAME="clock" ENABLED=1
REPLY: MODULE NAME="pager" ENABLED=1
Now in order to load or unload a module, issue one of these commands:
enlightenment_remote -module-load modulename
enlightenment_remote -module-unload modulename
You may want to check out the snow and the flame module to see some nice
eye-candy. I'm sure you can quess that they do :)
c.) Icons and the menu
E17 uses binary EAPP format files for icons. The same files are used for iBar,
the menu and Engage. These files need to be moved to ~/.e/e/applications/all.
There are several ways to create these files. The most user-friendly way is to
use the utilities included in the e_utils package. Not that it's not included
in E17. If you wish to use e_utils, you'll also need to install its
dependencies examine and engrave (a library needed for editing binary EAPP
files)
from CVS. E_utils includes the following tools:
e17setroot - A wallpaper setting tool. This will be replaced in the future.
e_util_eapp_edit - A graphical EAPP editor/creator
emblem - A graphical background selecting tool
In this section we'll be dealing with e_util_eapp_edit. Once you first start
E17, you should notice a few default icons in the menu and in the iBar. Open a
terminal and begin starting applications you want to use from it. Once you've
opened an application you want to make an icon for, click the top left corner
(but not the border!) with the left mouse button and select "Create Icon".
This starts e_util_eapp_edit, so you'll have to have it and all its
dependencies installed in order for it to work. Add all the information you
need, but ignore the "Window name" section. That needs to be left empty. Then
select an icon file. It can be of any size - it will be resized with Imlib2.
The bigger the file, the more memory it uses. The EFL GUI for selecting icons
is a bit unstable currently, so you may occasionally segfault. If it segfaults
too often, try moving the icon files to ~/ while you create the icons. After
the icon is made the original icon picture isn't needed anymore for the icon
to work. It will be included in the EAPP file that is created and automatically
moved to ~/.e/e/applications/all.
Now you will need to make a simple text file with the name ".order" in a
certain location. The directories are as follows:
E17 menu --> ~/.e/e/applications/favourite
iBar --> ~/.e/e/applications/bar
Engage --> ~/.e/e/applications/engage
The file itself is a normal text file with the EAPP filenames in the order in
which you want them to be displayed. Here is an example:
firefox.eapp
mozilla.eapp
xmms.eapp
bmp.eapp
evidence.eapp
entice.eapp
This would add the above icons in the order specified. For the menu, you may
also create submenus. To do this you need to create directories within
~/.e/e/applications/favourite and then create ".order" files in the
directories. It follows the same logic except that you can also add
directories. For example if you made a directory called
~/.e/e/applications/favourite/multimedia you could have a ".order" file in
~/.e/e/applicatins/favourite that looks like this:
firefox.eapp
mozilla.eapp
irc.eapp
multimedia
This would create a menu with the 3 above icons and a submenu called
multimedia. To specify what icons are displayed in the submenu, you'll need to
create a ".order" file there too. It's also possible to create submenus within
submenus. For more examples, download a tarball of HandyAndE's (E17 dev/Engage
author) ~/.e/e/applications/ directory from
http://aje.codewordt.co.uk/Files_files/applications.tar.gz.
It's also possible to create icons without using e_utils. This is more time
consuming and a bit more difficult though. Extract icon_example.tar.gz from
/usr/share/enlightenment/data/other (depending on where you installed E17) and
go to the directory it creates. You will see three files: build.sh, icon.edc
and icon.png.
Edit icon.edc and change the "max:" value to something you want. If your icons
are 128x128 PNG files, "128 128" would obviously be a good choice. Next, copy an
icon .png file over the default icon.png that came with the
icon_example.tar.gz. Note that your icon needs to be named icon.png. If you
wish to use a different name, you can edit icon.edc and build.sh and change
app lines that mention icon.png.
Now edit build.sh. You need to set these values:
-set-name "Name of the program" \
-set-generic "Generic name of the program" \
-set-comment "Comment for the program" \
-set-exe "The path to the executable" \
-set-win-name "The window name" \
-set-win-class "The window class"
Note that you should _not_ set the window name. The window class needs to be
correct or otherwise the icon won't be displayed in the top-left corner of the
window border. You can find out the window class by issuing the following
command in a terminal: xprop WM_CLASS|cut -d \, -f 2 and clicking a window.
This doesn't work in E17 yet though, you'll have to use another window manager
and write down the window classes. Alternatively if you have e_utils
installed, you can easily find it out by opening e_util_eapp_edit by clicking
"Create Icon" in the menu that is displayed when you left-click the top-left
corner of the window decoration menu. E_util_eapp_edit should show the correct
window class by default.
Here is an example of a build.sh file:
#!/bin/sh
# actually compile a edje file with all the gfx etc.
edje_cc $@ -id . -fd . icon.edc icon.eapp
# add eapp properties to the file - they are ALL optional EXCEPT name$
# and exe is optional for directory .eapp files
enlightenment_eapp \
icon.eapp \
-set-name "Firefox" \
-set-generic "Firefox" \
-set-comment "My favourite web browser" \
-set-exe "/usr/bin/firefox" \
-set-win-name "" \
-set-win-class "Firefox-bin"
Now all you need to do is run build.sh and it should create a file called
icon.eapp in the same directory. Rename it to whatever you want and move it to
~/.e/e/applications/all.
d.) Background
E17 uses binary EET format files for backgrounds. These can be either created
with the tools included in e_utils or manually using only the tools included
with E17 itself. The user-friendly way is to use e_utils - e17setroot and
emblem in particular. Please note that e17setroot isn't here to stay, it's
just an application that can be used until there's a proper replacement.
Here's how it works:
You can switch the background with the e17setroot program.
Usage: e17setroot <imagename> | <eet>
-t | --tile <imagename> Tile the suppied image.
-c | --center <imagename> Center the supplied image.
-s | --scale <imagename> Scale the supplied image to the screen.
-n | --noload <imagename> Create .eet without setting it.
-g | --get Get current E17 background.
-h Show this help screen.
Example:
$e17setroot -s /home/username/picture.png
This will create a EET background binary file and load it. The background
should instantly change. The background .eet file which the program created is
also copied to ~/.e/e/backgrounds so you won't have to compile the file again.
The filename will be the same as the background picture. In this case
picture.eet for example.
You can also load EET files with e17setroot - then it won't have to
compile the image into a EET file so it'll work quicker. Once you have made
many .eet files this way, there is another e17 background tool in e_utils
which is very useful: emblem. It is a graphical program that displays all the
compiled EET background files in ~/.e/e/backgrounds. You just need to double
click the image in order to change the background to it. Emblem will likely
replace e17setroot once it's more functional.
If you already have EET background files and don't want to use e17setroot (or
don't have e_utils installed), you can also load background files with
enlightenment_remote -bg-set /path/to/background.eet.
It's also possible to create background EET files manually with edje_cc. For
more
information regarding Edje, check http://enlightenment.org/index.php?id=24.
In order to compile a background EET with edje_cc, you'll need to create a
directory
where you place two files: background.edc and an image file.
Use the following example for background.edc and edit it to suit your needs:
images{
image, "image.jpg" LOSSY 95;// make whatever choice you want here
}
collections
{
// Customize away ;)
group{
name, "desktop/background";
parts {
part {
name, "background_image";
mouse_events, 0;
description {
state, "default" 0.0;
rel1 {
relative, 0.0 0.0;
offset, 0 0;
}
rel2 {
relative, 1.0 1.0;
offset, -1 -1;
}
image {
normal, "image.jpg";
}
fill {
origin {
relative, 0.0 0.0;
offset, 0 0;
}
size {
relative, 1.0 1.0;
offset, 0 0;
}
}
}
}
}
}
Then make sure the image filename matches the name in background.edc and run:
edje_cc -id ./ -fd ./ background.edc background.eet
This should create a file called background.eet, which you'll probably want to
rename and move to ~/.e/e/backgrounds.
e.) Themes
E17 doesn't have a system to switch themes yet and the theme format is not
final. This is why there aren't many themes out and some of them don't work
correctly if they haven't been updated lately. It is possible to change the
theme though, albeit with a very ugly way. Shut down E17 and take a backup of
/usr/share/enlightenment/data/themes/default.eet and then overwrite it with
the theme you want to use. The next time you start E17, the theme should be
used. Note that you shouldn't do this while E17 is running - it will get
completely messed up. There will eventually be a system to switch themes while
E17 is running.
You may have seen E17 themes on the internet already - most of these are for
the old E17 that has since that been rewritten. These old themes aren't
compatible with the current E17. You can find some themes here:
http://vandango.toenda.com/index.php?&id=3&select=salt
Currently there's an updated version of Rephorm's (E17 dev) Winter theme and
theme based on the Slate theme for Gnome. The winter theme isn't fully working
and contains some bugs.
f.) Frequently asked questions
Q: I'm trying to use Eterm, gkrellm, torsmo or another application that uses
fake transparency and it isn't working. What's wrong?
E17 doesn't support fake transparency. Real transparency is used by E17
modules instead. It is possible to force fake transparency usage by setting a
root window background with Esetroot (included with Eterm) or e17setroot
(included with e_utils, needs Esetroot to be able to force fake transparency).
Note that the background you set with Esetroot will now show up in E17, only
the applications that use fake transparency will see it.
Q: Why use binary config files?
Binary config files have very little read/write overhead, so there is no no
CPU wastage on parsing etc. For more information:
http://www.enlightenment.org/index.php?id=20&select=ePortal
http://www.enlightenment.org/index.php?id=24
http://www.enlightenment.org/index.php?id=18&select=ePortal
Q: What are all these different binary formats?
They are binary mini-libraries. All icon files are in EAPP format. EET files
are used for themes, backgrounds, introduction animations and other things.
Some EFL apps that haven't been updated for a long time still use the EDB
format - this is a format that isn't going to be used in the future as all EFL
apps will move to EET/EAPP. For more precise information please read:
http://www.enlightenment.org/index.php?id=24
http://www.enlightenment.org/index.php?id=18&select=ePortal
http://www.enlightenment.org/index.php?id=23
Q: I don't want to create icons. Where can I find a tarball of someones icon
directory?
Download HandyAndE:s (E17 dev/Engage author) ~/.e/e/applications/ here:
http://aje.codewordt.co.uk/Files_files/applications.tar.gz
Q: I have E16 installed. Do I need to uninstall it so I can install E17?
No you don't. They can co-exist. They don't conflict as long as you have the
other one installed in /usr/local and the other in /usr. You'll just have
the specify the full path to the binary (for example in .xinitrc if you use
one) if they use the same name. The config files use different directories.
If your using the CVS version of E16, it should also have a different binary
name than E17. This may depend on your distribution though, Gentoos E17
binary is called enlightenment-0.17 for example.
Q: I've seen this nice video on rasterman.com which has an animated
background. Where can I get it?
It's http://www.rasterman.com/files/e17_bg_layered_sky.eet. You can load it
with a normal enlightenment_remote -bg-set /path/to/file.eet. It's very CPU
hungry though, it's probably not something you want to use all the time. The
default background is /usr/share/enlightenment/data/themes/default.eet
(assuming you installed E17 to /usr) in case you want to switch back to the
default background.
Q: I've seen some nice flame and snow effects in various E17
videos/screenshots. I can't seem to find them?
You'll need to load the snow and the temperature module. They aren't loaded
by default. Please read the "modules" section for details.
Q: I've used E17 for a long time, but after I updated it today some things are
behaving oddly. Any ideas?
It's a good idea to delete ~/.e (or at least ~/.e/e/config) every now and
then to make sure everything uses current config files - you might
have an old one which doesn't have some things the new E17 requires. Just
remember to back up your files first!
Q: Where can I find out more about the development?
Here you can find some e CVS stats: http://cia.navi.cx/stats/project/e/ The
best way to be informed is to follow the development on the mailing lists:
http://www.enlightenment.org/index.php?id=3&select=ePortal
Q: Is there some kind of graphics benchmarks/tests included with E17?
Yes, here are some binary names you might find interesting:
evas_software_x11_test
evas_gl_x11_test
ecore_evas_test
You should have them installed if you've installed the EFL.
4. Other EFL programs
a.) Engage - dockbar
Engage is a dockbar based on the EFL, but it's more than just a dockbar.
It provides OSX like icon zooming, themeability and is fully configurable.
Its features include:
- an application launcher
- a systray
- taskbar functionality
- sysicons (for example a clock)
Some sites you might find interesting:
http://andy.elcock.org/Software/Engage/FAQs.html
http://edevelop.org/errand/index-themes.html (themes for the standlone version)
http://www.enlightenment.org/index.php?&id=15&select=ePortal
Engage is available as a standalone version, and as a module for E17. If you
have E17 installed while you build it, it'll also compile the module in
addition to the standalone version. The module version currently doesn't support
all features yet. It currently as an app-launcher and taskbar. Future
development
is focused on the module version.
Note that the E17 dependency is optional - if you have it installed the module
will be built in addition to the standalone version. You'll need to have the
following in order to build Engage: evas, edje, ecore, ewl, imlib2, esmart,
examine and E17 (you'll need some additional libraries in order to be able to
build E17). The easy way would be to install all EFL libraries in the order
specified in the installation section of this guide.
Engage requires EAPP icon files in ~/.e/e/applications/all. You can find
some EAPP icons here if you don't want to compile them yourself:
http://aje.codewordt.co.uk/Files_files/applications.tar.gz. You can also edit
those with e_util_eapp_edit if you have e_utils installed. Please see the
icons section of this guide for more in-depth information. After you've made
enough EAPP files to ~/.e/e/applications/all, you'll need to create a ".order"
text file in ~/.e/e/applications/engage. This directory doesn't exist by
default and isn't created by default - you'll have it make it. The ".order"
file is simply a list of EAPP files in the order you want them to show up in
the bar. Check the "Icons and the menu" section for examples.
You'll need to specify the full path to the module.so file when you load the
Engage module. Currently the module is not loaded by default when starting
E17. Depending on your installation path, the module is
/usr/lib/engage/module/module.so. To load the module use the command:
enlightenment_remote -module-load /usr/lib/engage/module/module.so
Standlone Engage specific information:
The standalone Engage will work in any window manager and is not meant to be
used in E17. There are two ways to configure the standalone Engage: using
commandline arguments or with the included EFL configuration GUI.
Usage
Usage: engage [OPTION] ...
-h, --help Print this text
-I, --ignore-iconified [bool] Ignore iconified windows
-i, --ignore-running [bool] Ignore running apps
-T, --tray [bool] Enable system tray
-D, --appear-time [flt] Time taken (in seconds) for new icons to
appear
-b, --bg-main-color [rgb] Background main color
-B, --bg-outline-color [rgb] Background outline color
-d, --zoom-time [flt] Time taken (in seconds) for icons to zoom
-Z, --zoom-factor [flt] Zoom factor of the icons - 1.0 == 100% ==
nozoom
-z, --zoom [bool] Should we zoom icons?
-S, --spacing [int] Space in pixels between each icon
-s, --size [int] Size of icons in default state
-A, --auto-hide [bool] Auto hide the engage bar
-G, --grab-app [bool] Capture the icons of all running applications
-g, --grab-min [bool] Capture the icons of minimised applications
-R, --reserve [int] The amount of space reserved at the bottom
of the screen
-m, --mode [int] The display mode, 0 = ontop + shaped, 1 =
below + transp.
-e, --engine [str] The X11 engine to use - either software or gl
-t, --theme [str] The theme name to use (minus path and
extension)
-H, --height [int] The overall height of the application area
-W, --width [int] The overall width of the application area
Note that the standlone Engage version does NOT save the settings you set via
commandline arguments! Any changes made with the EFL gui (right click on Engage
and select configure) will be saved. The config file used by the standalone
Engage is ~/.e/apps/engage/config.eet. If you wish to start with the default
config after saving something you don't like, just delete it and restart Engage.
Here is an example commandline for the standalone Engage:
$ engage -W 1280 -T 0 -I 1 -i 1 -e software -H 80 -s 28 -Z 1.9
Note that the openGL mode, while available, is still in development and too
unstable to be used. For most systems the software mode will even perform better
right now.
This is how everything works:
left click - launch app (for launch icons) restore app (iconified icons)
left hold - raise/unminimize window ("hold" definition is broken in the
default
theme it will create another instance of the app you wish to unminimize.)
middle click - iconify apps
right click - config menu (for this to work you need to have examine
installed. It's in
e17/apps/examine in cvs)
FAQ regarding the standlone Engage:
Q: How can I make the standalone Engage completely transparent?
Use this -b and -B value: #00000000.
For example:
$ engage -b "#00000000" -B "#00000000"
Please don't forget the "" or it won't work. If you want to go back to the
default look, the values are: #7f000000 (-b) and #7fffffff (-B).
Q: I don't want to use E17, why can't I just use it in other WM:s without
having to learn E17?
You can use the standalone Engage in other windowmanagers. You'll also need to
learn using E17 tools in order to be able to configure it, at least if you
want to make icons or customize them.
Q: I'm using the standalone version - where should I move my theme files?
By default, Engage looks for themes in the following directories:
~/.e/apps/engage/themes
/usr/share/engage/themes
Q: I've heard that the standalone Engage can have a clock?
It can hold various applets like clocks etc. If you want to add a nice clock,
you need to get either expedition.eet or digital.eet from
http://cvs.sourceforge.net/viewcvs.py/enlightenment/misc/engage/ and copy it
to ~/.e/apps/engage/sysicons/
Expedition is a classic analog clock and digital is of course a digital one :)
Q: I've seen videos of the standalone Engage and the icons bounced. Howcome
mine don't? I'm also annoyed at the fact that I can't really use it to control
minimized apps because it starts another instance of an application when I
hold the mouse button to bring back a minimized app.
This is because the default none theme doesn't have bouncing icons and it's a
big buggy. All this can be fixed by making a custom theme. Here is a small
walkthrough on editing a popular Engage theme that has these problems
(keybindings/icons bounce) fixed.
goal: Engage theme that looks just like the none theme (the default one) but
has some important changes:
- Icons bounce
- It's possible to use Engage to handle iconified windows WITHOUT having to
have extra icons on the right side of Engage for them.
- You can still use your own icons that you have created with e_util_eapp_edit
and not the ones supplied by the theme.
Luckily enough, the Gant theme has the behaviour related problems fixed, but it
also uses a different font and different icons.
First grab the Gant theme source from:
http://www.edevelop.org/errand/themes/gant/apps/engage.html
Untar it with tar -xvzf and go to the gant_engage-0.0.6/fonts directory.
Delete everything in here and download VeraBd.ttf from:
http://cvs.sourceforge.net/viewcvs.py/enlightenment/misc/engage/data/themes/none/fonts/
Leave VeraBd.ttf to the fonts directory and go and edit gant_engage.edc. You
need to find the section that defines fonts. It's right in the beginning of
the file. Switch the original font settings to:
original settings:
fonts {
font, "zeroes.ttf" "Edje.zeroes";
}
delete that and set this instead:
fonts {
font, "VeraBd.ttf" "Edje.VeraBold";
}
Then scroll to the end of the file and delete ALL lines that start with
GENERIC_ICON_MAPPING
Now go edit /parts/name.edc and find these lines:
color, 255 255 255 255;
color2, 43 156 212 96;
text {
text, "";
font, "Edje.zeroes";
size, 11;
fit, 0 0;
align, 0.5 1.0;
}
}
And change it to:
color, 255 255 255 255;
color2, 0 0 0 255;
text {
text, "";
font, "Edje.VeraBold";
size, 12;
fit, 0 0;
align, 0.5 1.0;
}
}
Now the only thing left is to delete all signs of the Gant icon set so that it
will use only your icons. First, go to edit /hashes/icon_mappings.edc and
delete everything in the file. Then go to /images/ and first delete all PNG
files EXCEPT arrow.png (tip: if you are using a dark backround and run Engage
with -b -B values that are totally transparent, you might want to switch the
black arrow to a white one so it will be clearer to see). Edit images.edc
and delete everything except one line, which is this:
image, "arrow.png" LOSSY 95%;
Now the only thing left to do (this part is completely optional) is to edit
build_theme.sh. It uses sudo to copy the theme, so here is a version that
doesn't need root and places the file to a different directory.
Here is an example:
#!/bin/sh -e
THEME="gant_engage"
edje_cc -v -id ./images -fd ./fonts $THEME.edc $THEME.eet
cp $THEME.eet "~/"
echo done
fi
That's it :) Now run build_theme.sh and gant_engage.eet appears in the
directory you chose in the script (in this case ~/). Then copy it to
~/.e/apps/engage/themes and start engage with the gant theme:
$ engage -t gant_engage
And it works :) Icons bounce just like in the real thing (mac os x dockbar)
and it's possible to bring back iconified apps that have been started with
Engage by holding the mouse button on the icon (note: and this time it doesn't
start another instance of the app!)
b.) Entice - image viewer
Entice is a good showcase of the EFL abilities. All the menus are dynamic.
In other words they move and change shape depending on your actions.
When you don't have the mouse cursor over the buttons, the buttons will
disappear alltogether, which fits an image viewing program very well. To use
it, just open a directory with entice /path/to/directory/* to have it load all
picturess in the directory, or open a picture directly with
entice /path/to/picture.png. Check http://atmos.org/docs/entice/index.html for
more in-depth information regarding Entice.
Like all other EFL apps, Entice is fully themeable. In the current cvs version
there are two themes included, the default one and one from http://cored.org
called artifakt, which is a clean and simple one. It doesn't support all
features yet, but has some interesting effects. In order to change the theme,
you need to use one of the tools for editing binary EDB files. The most
user-friendly one would be the editor that uses GTK. There are text based
editors too and GTK is not a dependency of the EFL
edb_gtk_ed ~/.e/apps/entice/config.db
c.) Entrance - login manager
Currently known problems: Entrance starts X without -nolisten tcp. In other
words, it will have the port 6000 wide open, which is a security threat. Of
course you can firewall it, but in case the firewall is bypassed or doesn't
work you might be in trouble. It is possible to change this behaviour by
editing the source code before installing and compiling Entrance. Here's a
quick howto:
Edit /e17/apps/entrance/src/daemon/Entranced.h from the source directory. The
line you need to edit is right in the beginning of the file:
#define X_SERVER "/usr/bin/X11/X -quiet"
Just add -nolisten tcp there so it will look like this:
#define X_SERVER "/usr/bin/X11/X -quiet -nolisten tcp"
Now compile and install Entrance as usual. You'll need to have at least these
libraries installed in to correct order in order to be able to compile
Entrance: eet, evas, ecore, embryo, imlib2, edje, epeg, epsilon, esmart, edb.
If you followed the guide on how to add "-nolisten tcp" as the default X
argument, port 6000 should be closed by default. If you check your processes
with the "ps aux" command, X should then have -nolisten tcp listed.
Sites you might find interesting:
http://xcomputerman.com/pages/entrance.html
http://www.atmos.org/docs/entrance/index.html
http://www.atmos.org/edje/
Entrance is by far the most beautiful login manager. It can display
animations, all kinds of nice effects and is fully themeable.
Usage: entrance [OPTION]...
-c, --config=CONFIG Specify a custom config file
-d, --display=DISPLAY Specify which display Entrance should use
-h, --help Display this help message
-g, --geometry=WIDTHxHEIGHT Specify the size of the Entrance window.
Use of this option disables fullscreen mode.
-t, --theme=THEME Specify the theme to load. You may specify
either the name of an installed theme, or an
arbitrary path to an eet file (use ./ for
the current directory).
-T, --test Enable testing mode. This will cause xterm
to be executed instead of the selected
session upon authentication, and uses a
geometry of 800x600 (-g overrides this)
Entrance uses the config file in /etc/entrance_config.db. You need to use
an EDB tool for editing it. If you have GTK installed, edb_gtk_ed is functional
and easy to use. There are also text-based tools and GTK isn't a dependency of
EDB.
The openGL mode is unstable and isn't recommended to be used at this point.
Entrance comes with 4 themes: Nebulous.eet, default.eet, taillights.eet
and darkrock.eet. All Entrance themes are in /usr/share/entrance/themes
(depending
on where you installed Entrace to of course).
d.) eRSS - RSS feed application
eRSS is an EFL based program that displays RSS feeds on your desktop and can
also launch browsers. It does not work correctly in E17. There will be an RSS
E17 module later on.
Sites you might find interesting:
http://www.enlightenment.org/index.php?session=460c7fd92c&id=16&select=ePortal
Usage: erss [OPTION] ...
-c CONFIG specify a config file (required)
-l list avaliable config files
-t THEME specify an edje theme file (.eet)
else the default will be used.
-h display this help and exit
-v display erss version
By default, eRSS will use the following config file: ~/.erssrc. eRSS comes
with 3 themes: darkgrey.eet, default.eet and white.eet. These files are
located in /usr/share/erss (depending on where you installed it)
Here's a config file as an example:
<?xml version="1.0"?>
<erss>
<!-- Path to default config file -->
<config>/usr/share/erss/config/osnews.cfg</config>
<!-- Path to default theme -->
<theme>/usr/share/erss/white.eet</theme>
<!-- Path to browser for launching urls -->
<browser>/usr/bin/firefox</browser>
<!-- Number of seconds before tooltip is displayed -->
<tooltip_delay>0.5</tooltip_delay>
<!-- Set your proxy server. Leave blank if none! -->
<proxy></proxy>
<proxy_port></proxy_port>
<!-- override site-specific clock-setting.
-1 use setting in site-specific config-file
0 disable
1 enable
-->
<clock>1</clock>
</erss>
Also check erss -l. For example if you want a Slashdot RSS feed on your desktop
you would use the following command:
erss -c /usr/share/erss/config/slashdot.cfg
It is also possible to create own CFG files. The syntax is very simple. The
following is an example of a functional freshmeat.cfg:
<?xml version="1.0"?>
<erss>
<header>Freshmeat</header>
<hostname>download.freshmeat.net</hostname>
<url>/backend/fm.rdf</url>
<item_start>item</item_start>
<item_title>title</item_title>
<item_url>link</item_url>
<update_rate>1800</update_rate>
<clock>1</clock>
<stories>8</stories>
<borderless>1</borderless>
<x>0</x>
<y>347</y>
</erss>
e.) Evidence - file manager
Sites you might find interesting:
http://evidence.sourceforge.net/
Evidence is an enlightened file manager which integrates with several EFL
applications like Entice for example. Please use common sense while using
Evidence - it's a file manager which is still under heavy development so
you may not want to use it to manage important files :)
Usage: evidence [option(s)] [directory]
Supported Options:
-e, --efm Look like efm
-h, --help Print this help text
-V, --version Prints version information and exits
-D, --debug=dl Set verbosity to level [dl] (-1..4)
-v, --verbose Increase verbosity
-q, --quiet Decrease verbosity
-g, --geometry 1x2+3+4 make window 1 wide and 2 high, place at 3,4
-M, --desktop Start with a fullscreen "desktop" (maximized)
-T, --theme=theme uses that theme
-P, --icon-set=is Select icon-set (name or path)
-i, --icons Start in icon-view
-t, --tree Start in tree-view
-b, --browser Start in browser
-a, --about Start with credits
-n, --without-notebook Do not show a "notebook" ("tabs")
-s, --without-shelf Do not create a "shelf" area (-S)
-f, --without-border Do not "decorate" window (-F)
-w, --without-tooltips when mouse rests on a file-icon, don't open info box --
wait for a click of the middle mouse-button
-E set evas rendering engine (software_x11, gl_x11, ...)
-x Don't create thumbnails for icon-view
-y Don't create thumbnails for shelf
-Z, --select open a view on the directory that contains this
item. select the item. may be given multiple
times if all items reside in the same directory.
-d, --dir=dir Start in directory [dir] (efm compatibility)
Evidence comes with several themes. You can find them in
/usr/share/evidence/themes
(depending on where you installed it).