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:anonymous@cvs.sourceforge.net:/cvsroot/enlightenment login cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/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:anonymous@cvs.sourceforge.net:/cvsroot/enlightenment login cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/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:anonymous@cvs.sourceforge.net:/cvsroot/enlightenment login cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/enlightenment co misc/engage or if you'd wish to download Entice you would need to: cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/enlightenment login cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/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 (vapier@gentoo.org). 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 | -t | --tile Tile the suppied image. -c | --center Center the supplied image. -s | --scale Scale the supplied image to the screen. -n | --noload Create .edj 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 .edj 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.edj 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 .edj 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.edj. 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.edj This should create a file called background.edj, 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.edj 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.edj. You can load it with a normal enlightenment_remote -bg-set /path/to/file.edj. 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.edj (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.edj. 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.edj or digital.edj 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.edj cp $THEME.edj "~/" echo done fi That's it :) Now run build_theme.sh and gant_engage.edj 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.edj, default.edj, taillights.edj and darkrock.edj. 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 (.edj) 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.edj, default.edj and white.edj. These files are located in /usr/share/erss (depending on where you installed it) Here's a config file as an example: /usr/share/erss/config/osnews.cfg /usr/share/erss/white.edj /usr/bin/firefox 0.5 1 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:
Freshmeat
download.freshmeat.net /backend/fm.rdf item title link 1800 1 8 1 0 347
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).