My favorites | Sign in
Project Logo
                
Search
for
Updated Apr 15, 2009 by hannes.janetzek
Stuff  

ecomorph - OpenGL compositing manager

ecomorph consists of a compositing manager based on compiz(renamed to ecomp) and a modified version of e17 that works together with ecomp. note that this currently somewhere between a hack and planning/pre-alpha state. it's pretty stable for me, more stable than xcompmgr. disclaimer: it might reorder your window stacking, burn your house down, kill your cat or do anything in between.. so, you've been warned :)

search youtube on ecomorph for some video footage. there is also a nice debian based live cd with which you can try and even install ecomorph: http://www.elivecd.org/Download/e17-compiz . OpenGEU, a ubuntu based distribution, provides packages for ecomorph too. For openSUSE packages, see: http://en.opensuse.org/Ecomorph

Does Multihead work? yes somehow.. For this and other issues read the Ecomorph FAQ

always update e.git and ecomp.git at the same time. currently there are lots of changes in the way how they communicate. so versions from different dates are NOT expected to work together

Get it

checkout with:

git clone git://github.com/jeffdameth/ecomp.git
git clone git://github.com/jeffdameth/ecomorph-e17.git

update:

git fetch && git merge origin/master (do 'git-reset --hard' in the case that merge does not work)

if you have already a copy of the repo from get-e.org, you can switch the repo to github with:

git remote rm origin
git remote add origin git@github.com:jeffdameth/ecomp.git (in 'ecomp')
git remote add origin git@github.com:jeffdameth/ecomorph-e17.git (in 'e')

install patched e17 + ecomorph module:

cd ecomorph-e17
./autogen.sh && make && sudo make install

or when efl was installed by easy_e17.sh:

PKG_CONFIG_PATH=/opt/e17/lib/pkgconfig ./autogen.sh
PATH=/opt/e17/bin/:$PATH LD_LIBRARY_PATH=/opt/e17/lib:/opt/e17/lib/eina:/opt/e17/lib/evas make
sudo make install

install ecomp - the patched compiz

cd ecomp
./autogen.sh && make && sudo make install

ecomp stores its config in ~/.ecomp the files can be edited by hand (see 'eet --help') or you can use the ecomorph module that comes with e17.

packages needed to build this stuff with debian/ubuntu

- git-core automake intltool libtool xorg-dev libjpeg62-dev libpng12-dev librsvg2-dev libgl1-mesa-dev libglu1-mesa-dev libxml2-dev libxslt1 libxslt1-dev libdbus-1-dev

- xorg-driver-fglrx-dev or nvidia-glx-(new)-dev, when using proprietary drivers

Run it

e.git installs a session file named 'e17 ecomorph' that you can select in gdm, etc on login. Load the 'ecomorph' module in e and restart e. For testing you can start it manually with:

'enlightenment_start -evil' (without 'evil' it should be plain e without hints for the composite manager)

'ecomorph.sh' this works at least for ubuntu, otherwise run 'ecomorph ini'

'emerald' (for dropshadow) ... use a version from 0.7 and above. configure the shadows with emerald-theme-manager to your liking. oh and disable e's dropshadow module in any case ;)

recent updates:

  • Fri Feb 6 20:15:06 CET 2009:
    1. better configuration backend: i.e. the ini and inotify plugin were added again. in ecomorph.sh replace 'ccp' with 'ini' to use it. configuration is done via config files in ~/.ecomp, see my example config in the download section. inotify is used to update the config automatically when the files were changed. So no need to build libcompizconfig and ecsm anymore
  • Thu Jan 8 17:35:57 CET 2009:
    1. updated e from svn
    2. fixed gadman module initialisation
  • Fri Jan 2 20:08:29 CET 2009:
    1. added option for wall plugin to not move desktop and override redirect windows
  • Wed Dec 31 00:24:40 CET 2008:
    1. lots of fixes, check the git log..
    2. wobbly windows now work without an explicit trigger. i.e. just enable 'move' and 'wobbly'.
  • Fri Dec 19 19:32:19 CET 2008:
    1. lock drawing while enlightenment restarts - a lot less disturbing now :)
    2. fixed scale normal-mode: only windows from the current desk are shown
    3. some more fixes
  • Wed Dec 17 20:37:22 CET 2008:
    1. updated e from svn
    2. fixed a segv in e
    3. fixed initial window damage (OpenOffice splash)
    4. set window type of firefox and open office menus to DropdownMenu
  • Sat Dec 13 20:31:53 CET 2008:
    1. back to git!
    2. one can restart e from any desk without messing up the window placement
    3. some more fixes and cleanups
    4. finally renamed all compiz stuff to ecomp
    5. recompile libecompconfig once again
  • Thu Dec 11 02:20:37 CET 2008:
    1. animation plugin minimize stuff works. zoom to bar works with itask-ng again (=
    2. exebuf, winlist, pager popup have the window type Utility.. if you want to have different anims for these
    3. better sync between e's desks and ecomp's viewports
    4. delay animation until client is fully 'damaged' i.e. no more garbled firefox windows
    5. fix cube rotation segv
    6. you'll probably have to recompile libecompconfig after compiz
  • Sun Dec 7 22:58:58 CET 2008:
    1. mouse bindings can be configured in e (you'll need to run e and ecomorph in a dbus session for this. ubuntu 8.10 sets this up correctly by default. gentoo people: check your forums :) ... nah it should also work with "dbus-launch enlightenment_start.sh")
    2. expo moves maximized windows correctly
    3. fix e17 start-script install problem

  • Fri Dec 5 19:47:50 CET 2008:
    1. e17 now installs a session script to start enlightenement with ecomorph (edit /usr/local/bin/enlightenment_start.sh to your preferences)
    2. expo prev/next keybindings are finally working... one of the most important changes to me :)
    3. scale left/right now cycles through the window (i.e. switches to next row at the end) next/prev is also bound to 'a','s' i would recommend to bind initiate(-all) to alt-shift-a/s
    4. the video plugin now works (somehow) with a patched mplayer

  • Tue Dec 2 01:03:43 CET 2008:
    1. new version, some fixes. switched to making snapshots. see the download section. compilation still should be done as written below.
  • So 13. Apr 22:59:42 CEST 2008:
    1. .git, compiz.git, fixed a bug with sticky/maximized windows, updated to current e - you might have to make a clean checkout of the above and rebuild libecompconfig

PLEASE USE THE ISSUE TRACKER FOR REPORTING PROBLEMS

(if you post here I wont be notified by an email, and so it could take some months until I look on this page and see your comments.. anyway if you got it working(or not) and it's not a bug just post it below, but dont expect me to see it ;) )


Comment by vkojouharov, Jan 27, 2009

hannes, what type of changes do you have in your modified version of E, and why are they not in E svn? Do you happen to have a diff file with all the changed between your repository and the main svn one?

Comment by hannes.janetzek, Jan 27, 2009

there are quite a lot of changes in e_border especially for mapping compiz viewports to e's desktops. When I find the time to investigate in which places hooks would be needed to make a module of my modifications, then i'll discuss if these hooks could be added to e. for now you could check out e svn and diff the src dirs. the modified e is at the current svn revision.

Comment by vkojouharov, Feb 02, 2009

I'm looking at the diff, and there's some files which you might want to fetch from svn, since they only produce noise:

e_manager.c - only indentation changes e_zone.c - one lone printf e_gadcon.c - one whitespace change

btw, what differences do the changes in e_gadcon_popup.c introduce? they don't seem related to ecomorph, so you might want to think about pushing them to svn. same for e_bindings.c

in e_border.c, you've removed the return value of e_border_shutdown, perhaps by mistake. And why did you move e_border_raise_stack_get to the begining of the file, but comment out the same function later on?

also, you might want to sed through the files and change the 'evil' variable to something else, so as not to clash with the bridge library for windows.

Comment by hannes.janetzek, Feb 02, 2009

vkojouharov, hi. thanks for looking through it :) concerning e_border: really good questions. i dont know how this went in or what drove me to it back then. e had the evil option before the library of evil existed. i think there are no chances to confuse someone as e wont run on windows. someday when this might be not a collection of evil hacks anymore i'll reconsider the naming :)

maybe i should state on this site that this e is also a playground for me to try things out. the changes in e_gadcon_popup should cause the popup to be placed at the position where it will be when the shelf is completely visible, so that the gcc cannot be hidden below the popup (e.g. the battery popup shows up for a hidden shelf, then one cant click the gcc to make it disappear) i didnt test if it works with more than one zone yet. but i'll commit it to svn later. e_bindings is a workaround: if one makes a mousebinding with 'any' context it is triggered twice when clicking on the desktop, one time for zone an one time for container.

Comment by wvaladez, Feb 17, 2009

Just recompiled all this stuff for the first time since you started updating in december, and MAN is it a lot smoother. ini plugin format seems to make a big difference in plugin speed.

One thing I can't get to work: skydome. I have cube rotation working just great but no matter what I do it won't seem to set my skydome image. Has anyone else gotten a skydome image working at all? If so, do you have any special tricks you did?

Comment by ppurka, Feb 27, 2009

Just a suggestion,- you can simplify the calls to nvidia-settings in ecomorph.sh. Most nvidia-settings calls can be appended with the -t (--terse) argument which gives only the value you want. Example: ~> nvidia-settings -t -q VideoRam? 524288

Comment by ppurka, Mar 08, 2009

Can you let us know where is the eet config stored at present? I can't seem to locate it on my hard drive. I logged out and on next login it was back to defaults. I tried looking in ~/.e/e/config/<profile>/e.cfg but came up with nothing (FYI, I used eet -d e.cfg config e.config). Thanks, for the new config dialog :D

Comment by ppurka, Mar 08, 2009

I should qualify what I said above: I am able to find the ecomp.eet file in /usr. It contains some default settings. However, I am unable to find a corresponding file in my home directory; in particular I am not able to determine if my custom settings made in the ecomorph settings panel are being saved. Even if they are getting saved anywhere, they are not being read the next time I log in.

Comment by felipegarcia92, Mar 09, 2009

I installed a .deb package which I found on the internet

here: http://www.esdebian.org/foro/26204/ecomorph-fluxbox

and I'm using Fluxbox, what I want to do is run Ecomorph with Fluxbox, and when I use ecomorph ini, or ecomorph --replace says:

ecomorph (core) - Error: Another window manager is already running on screen: 0 ecomorph (core) - Fatal: No manageable screens found on display :0.0

any help?

Comment by hannes.janetzek, Mar 09, 2009

cool i havent heard of the project to make ecomorph run with fluxbox. unfortunately i dont speak spanish so i dont know what written there or what the state of ecomorph-fluxbox is. all i can say is that i'm currently cleaning up the interface between ecomp and wm so it might be easier in future to support other window managers

Comment by hannes.janetzek, Mar 09, 2009

ah and btw why dont use e17 instead of fluxbox? (=

Comment by felipegarcia92, Mar 09, 2009

Thanks a lot for answering...

Well, you misunderstood me... my mistake. There it says that who posted those link thinks/have heard that it should work with Fluxbox... but as I read you, there's no support yet.

The fluxbox/openbox community will be amazed if you reach the goal!!!! And there are lots of users.

Honestly I didn't know e17 until now, and what I saw, I didn't like it, in addition, I'm testing fluxbox and I decided to keep it as my standard window manager, because its simply great, but the only thing is that I'd love to have the compiz effects, and here you are... trying to bring them to us.

So really really thanks, and I'll be following your progress :) !!!!

Comment by felipegarcia92, Mar 09, 2009

(OH, really sorry because of my impatience)

but... do you have any estimated time to release (that) newer version??

Thanks a lot ;) Cheers from Uruguay !!

Comment by hannes.janetzek, Mar 09, 2009

sorry to have to deceive you. ecomorph is in the first place intended to become a compositing manager for e17.there are quite a lot of modification needed in e17 to make it work with ecomp. (the combination of both is what i've named ecomorph) i am currently reworking it so that it can use hooks provided by e17 to make all the communication code between wm and cm a module (which is loaded into e17). atm i provide a modified version of e on github. i think fluxbox does not provide the needed hooks so a lot of modification will be needed in fluxbox to make it work with ecomp. it will probably take a year or so until i finish the protocol between cm and wm to write it down so that other wm developers could write an implementation to use ecomp with their wm. or they could just dig through the code now. in any case it will be quite a lot of work to add support to another wm.. and i wont do that as long as e17 is my wm :)

Comment by felipegarcia92, Mar 10, 2009

Oh, its a pity ! Anyways, keep working! ;)

Comment by wvaladez, Mar 10, 2009

I'm wondering if there is a way to turn the previous ~/.ecomp/options/.conf files into a ~/.ecomp/ecomp.eet file. I have all my settings just so in my old conf files and the graphical interface always thinks ecomorph isn't loaded (or isn't loaded with dbus, even though it is). Is this even possible?

Comment by hannes.janetzek, Mar 11, 2009

yup. e and ecomp had to run in the same dbus session. i'm currently reworking the config dialog to use the eet file directly. so then there will be no more trouble with dbus :) i tought about renaming ini plugin too 'eet' then one could run ini and eet the same time to convert config

Comment by wvaladez, Mar 11, 2009

So the only way to configure ecomp is via the GUI now? There are more options supported with raw config files from what I understad, is there any way to have it use the regular conf files, or to convert the conf files into ecomp.eet?

Comment by hannes.janetzek, Mar 11, 2009

'eet -l ~/.ecomp/ecomp.eet' gives you the list of config groups. 'eet -d file group outfile' converts to textfile. 'eet -e file group infile 0' encode the textfile back into eet ;)

Comment by wvaladez, Mar 12, 2009

So I can take the regular ~/.ecomp/options/.conf files and convert them all directly like that? Sounds like exactly what I want, I'll have to try it. Thanks.

Comment by wvaladez, Mar 12, 2009

oh no, I see. So I have to convert the previous conf files into a format that eet understands, ok. pokes at it some more

Comment by wvaladez, Mar 12, 2009

After reading up on eet and the file structure, I'm still kind of confused as to what the meaning of the entries are. Looking at expo-allscreens for example I see the structure for what used to be "ground_color2=#00000000" in my .conf file, but in eet it looks like:

group "options" hash {
key "ground_color2"; group "option" struct {
value "type" int: 4; value "int" int: 0; value "double" double: 0.0000000000000000000000000; value "string" string: "#00000000";
}
}

Clearly the string part is what I need to modify, but if I want to create an entirely new config option, I'm unsure of where to put the actual value. I think I can just use int for boolean values, but I'm confused as to the type option. Looking at the files I think type 1 means use the int value, type 2 means use the double value, and type 4 means use the string value. Is type 0 off/disabled? And what about type 3? I understand if you don't want to spend the time explaining how the eet files work, just trying to get my config back like it was.

Comment by hannes.janetzek, Mar 12, 2009

hello, type is not for eets internal use. infact it is unused programatically by the config atm. type is only set by ini module when it saves options. it is just set to CompOptionType?. boolean is saved as int in the eet file 1 == on. though it might be easier reading ecomp/metadata/.xml.in for valid options and types

CompOptionType?:

typedef enum {
CompOptionTypeBool?, CompOptionTypeInt?, CompOptionTypeFloat?, CompOptionTypeString?, CompOptionTypeColor?, CompOptionTypeMatch?, CompOptionTypeList?
} CompOptionType?;

Comment by wvaladez, Mar 12, 2009

Oh ok, so it's easier than I was making it. I need to do some trial and error but I think that's exactly what I needed. Thanks again for all your help.

Comment by lisovszki, Mar 21, 2009

Hi..

I try to install it, (ecomorph-e17) but int the configure process, he say:

No package 'ecore-input' found

But in the ecore, I not found this lib (recompiled) but nothing.....where can I found that lib?

Thx: liso

Comment by lounabelle, Mar 21, 2009

@lisovszki You need to update e lib. I had the same problem ;-)

Comment by ppurka, Mar 21, 2009

Is everyone getting the animations to work? Open/Close animations just don't seem to work on mine. This has been the case for several weeks now. ecomorph is running since the wall plugin works.

Comment by thorstenmika, Mar 23, 2009

Has been a long time since I did an update, but unfortunately things worsened for me :-) (which seems to prove the attitude "never change a running system").

Actually everything runs fine, but I don't have the slightest idea where to change the keybindings for expo and the screen corners for scale. Tried to fiddle aroun with the xml-files in /usr/share/ecomp, but no effect. Trie the eet thing as well, but no idea what to change.

Any hint? BTW, setting keyboard shortcuts in the E settings menu doesn't have any effect, though ecomorph is being launched by "dbus-launch ecomorph ini" from within an xterm in E.

Thx in advance,

t.
Comment by hannes.janetzek, Mar 24, 2009

all bindings are now to be configured with the standard e dialogs. open/close animation needs the animation plugin to be loaded. works for me (tm) :)

no need to do stuff in eet. most things are in 'ecomorph' configure module in settings now. oh forgot to mention on this site that ecomorph module must be loaded

Comment by hannes.janetzek, Mar 24, 2009

no more need for dbus at all btw

Comment by ppurka, Mar 25, 2009

I tried with clean configs (removed ~/.e) every time. It never worked. Today, I tried launching it like this (providing all modules on command line)

ecomorph --indirect-rendering --loose-bindings animation text thumbnail <and other plugins &

And it worked. But, I am unable to change the animations themselves. Changing settings via the eco module dialog has no effect on any module. It is clear that the data is being written to ~/.ecomp/ecomp.eet (the timestamp is updated).

Comment by thorstenmika, Mar 25, 2009

hi hannes,

setting the keybindings does work, I was too dumb :-/ But still, I don't have any idea where I could set the screen corners/edges?

Thx,

t.
Comment by hannes.janetzek, Mar 25, 2009

theres a new conf module for screen edges in vanilla e. you might need to load that module

Comment by hannes.janetzek, Mar 25, 2009

@ppurka, is the inotify plugin loaded? it is needed by ecomp to get informed when the config file changed. if not then it should at least load the new config when restarting ecomp

Comment by thorstenmika, Mar 25, 2009

awesome, works :-)

Thanks again,

t.
Comment by ppurka, Mar 25, 2009

@hannes. Actually no. It doesn't seem to read the ~/.ecomp/ecomp.eet file. For example, right now I did "Stop ecomorph" and "Start ecomorph" from within the config dialog. As you can see in this screenshot, the modules loaded and the modules I have enabled are completely different. http://omploader.org/vMWZxYw

In fact, in the screenshot you can see that ecomorph was started by the config dialog without the animation plugin mentioned (it seems ecomorph.sh has those as the default). So, animations do not work and checking "animation" in the config and clicking "Apply" has no effect. The general problem is that the ecomp.eet is being updated but not being read.

BTW, I can see that you inching towards an almost module-like implementation of ecomorph. I must thank you for your time and effort! :D

Comment by hannes.janetzek, Mar 26, 2009

ppurka, what a bout the ini plugin? .. i should mention in the dialog that ini and inotify are needed for configuration. when loadin on the commandline it should also suffice to load these two plugins. when you delete ~/.ecomp/ecomp.eet the default config will be copied there on the next start of ini.

Comment by ppurka, Mar 26, 2009

Aaah! I always get error that the ini plugin could not be loaded. Maybe that is why this is happening. I used to think that this was normal since we don't have those text files anymore. I will need to investigate this further.

Comment by lounabelle, Apr 19, 2009

Since the last update, 4 days ago, I can't load fileman module. I have the following message: /usr/local/lib/enlightenment/modules/fileman/linux-gnu-i686/module.so: undefined symbol: e_fm2_all_sel

then I tried with the "official" e, fileman working fine. Any help ?

Comment by asdfghjklzxcvbnmqwertyuiopazsx, Apr 21, 2009

resizing is painfully slow on my ati card

see http://www.phoronix.com/forums/showthread.php?t=15163 for more info on the problem

is there a way to change the resize mode in ecomorph to strech

Comment by craig07000, May 15, 2009

is there any documentation to get this to compile on freebsd ? (7.2)

Comment by Kaz2057, May 29, 2009

if i installed e17 on a debian dist using alphagemini repo, how may install ecomorph or directly ecomp on my linux? tnks


Sign in to add a comment
Hosted by Google Code