What's new? | Help | Directory | Sign in
Google
itask-module
taskbar module for enlightenment DR17
  
  
  
  
    
Search
for
Updated Apr 13, 2008 by hannes.janetzek
Stuff  

ecomorph - OpenGL compositing manager

(compiz compositing for e17)

note this a hack or planning/pre-alpha state. it's pretty stable for me though, more stable than xcompmgr and the rest. anyway it might reorder your window stacking, burn your house down or kill your cat. you have been warned. good luck :)

If you want to help get this project forward take a look at the TODO file from the compiz checkout below. just contact me via mail or in #e on freenode.net if you have questions.

video footage video footage2

Get it

btw the git package for debian is 'git-core', not 'git'

last update: So 13. Apr 22:59:42 CEST 2008: e.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

git clone git://staff.get-e.org/users/jeffdameth/e.git
cd e && git checkout --track -b ecomorph origin/ecomorph
./autogen.sh
make
sudo make install
cd ..

git clone git://staff.get-e.org/users/jeffdameth/compiz.git
cd compiz && git checkout --track -b ecomorph origin/ecomorph
./autogen.sh
make
sudo make install
cp -r ecomp ~/.config/
cd ..

git clone git://staff.get-e.org/users/jeffdameth/libecompconfig.git
cd libecompconfig
./configure
make 
sudo make install
cd ..

the config file is installed to ~/.config/ecomp/ecompconfig/Default.ini, you can edit it by hand or install the following two packages for a config gui. ecsm needs to be installed to/usr here or i get weird backtraces

git clone git://staff.get-e.org/users/jeffdameth/ecompconfig-python.git
cd ecompconfig-python
./configure
make 
sudo make install
cd ..

git clone git://staff.get-e.org/users/jeffdameth/ecsm.git
cd ecsm 
./setup.py build
sudo ./setup.py install --prefix=/usr

note:keep the sources, so that you can later do make uninstall if you dont want this stuff anymore

update

in compiz dir do

git pull git://staff.get-e.org/users/jeffdameth/compiz.git ecomorph

update e

git pull git://staff.get-e.org/users/jeffdameth/e.git ecomorph

for the others use git fetch

packages needed to build this stuff with debian/ubuntu (when using prebuilt packages for e17)

- automake

- libtool

- xorg-dev

- libgl1-mesa-dev

- libglu1-mesa-dev

- xorg-driver-fglrx-dev or nvidia-glx-(new)-dev

- libxslt1 und libxslt1-dev

- python-dev, pyrex (for ecompconfig-python)

- .... tell which packages you needed

Set things up

if you have an ati card with free driver:

export LIBGL_ALWAYS_INDIRECT=1

if you have an ati card with non-free driver you need xgl afaik. how to set this up is left as exercise for the reader

for intel cards this seems to work:

export LIBGL_ALWAYS_INDIRECT=1
export INTEL_BATCH=1

for prop nvidia cards put this in your gfx driver section:

Option          "AddARGBVisuals"        "True"
Option          "AddARGBGLXVisuals"     "True"

dont use gnome- or xfce-terminal to run it !!! -> use xterm instead

logout and start a failsave session or something, so that you only have X and a terminal, or you can test things in xgl

ignore this if you didnt undefine KEYBINDING in ecomp.h

if you comment out #define KEYBINDING in ecomp.h you can use the keybindings configured in e's keybinding dialog. then run dbus-launch --exit-with-session bash (for keybindings to work you need this to start ecomorph and e in one dbus-session, do this only if you dont start enlightenment with dbus-lauch, or have a dbus session bus set up correctly differently, please let me know if you know a good way to do this so that i could add it here)

Run it

if you have ubuntu run ./ecomorph.sh & (in the compiz directory)

others run ecomorph ccp &

run /usr/local/bin/enlightenment -evil (without evil you have vanilla e)

run ecsm for plugin configuration

please read through compiz/TODO before reporting bugs

Testing in Xgl

in ubuntu change to the compiz dir, then run

Xgl -ac :1 &
export DISPLAY=:1
./ecomorph.sh &
/usr/local/bin/enlightenment -evil 

others do

Xgl -ac :1 &
export DISPLAY=:1
export LD_PRELOAD='/path to your libgl/libGL.so.1.2' 
ecomorph ccp &
/usr/local/bin/enlightenment -evil 

Troubles

alot proally. but let me know anyway. i'll put them on this list :)

emerald doesnt work

-> checkout rev 0.5.2, nvidia on hardy seems to be buggy with aiglx

black screen w/ cursor

-> ecomorph prints a bunch of debug messages which seems to make some terminals hang. redirect the output to /dev/null circumvents this problem i.e. use ecomorph.sh > /dev/null or > log.txt. (if anyone knows how to fix this let me know)

setting of keybindings in ecsm doesnt work

-> check if the keybindings are already defined in e in that case you have to remove them . it seems that one has to restart ecomorph then. it is also possible to use keybindings defined in e: comment out #define KEYBINDINGS 1 in compiz/includes/ecomp.h for this and run e and ecomorph in one dbus session.

Windows are placed on the wrong desk after restarting e

-> restart e on desk 1 for now

No Multi-Head/Xinerama support.

-> donate a monitor :p

...

Tested Plugins

decoration

needed for dropshadows: load the decoration plugin and start emerald. configure the shadow to your liking with emerald-theme-manager.

scale

works with keybindings and on edge/corner events, no selection with key though. btw right click brings the selected window to the current desk

expo

really nice pager, works with keybindings and on edge/corner events

minimize

works together with the current itask-ng svn. i.e. it zooms the window out from the bar and back into the bar.


Comment by iggy.mf, Feb 21, 2008

hello!

what a nice projekt! oh man, i want expose in e17! ;) actually i'm using xcompmgr and you're saying that ecomorph is more stable than xcompmgr. so installed it and i can start it, but i don't know how to use all the plugins. the only that works is the expo plugin (right top corner).

please help me to get it to work. i would also create pkgs for archlinux if i can use it without problems.

mfg iggy

Comment by hannes.janetzek, Feb 27, 2008

probably the default config doesnt work anymore for scale. in ~/.config/ecomp/ecompconfig/Default.ini change [scale] s0_window_match to s0_window_match = Toolbar | Utility | Dialog | Normal | Unknown | Fullscreen. and btw you can configure keybindings with ecsm. i wouldnt recommend make packages in the current state, but make a big disclaimer if you do :) (might burn your house down/kill your cat/etc)

Comment by bob.billy123, Feb 27, 2008

checking for ECOMP... configure: error: Package requirements ("ecomp") were not met:

No package 'ecomp' found

I get this error after doing ./configure in the 3rd part of the installation (the 3rd part is: git clone git://staff.get-e.org/users/jeffdameth/libecompconfig.git)

Comment by hannes.janetzek, Feb 27, 2008

ecomp is the compiz-part of ecomorph. ecomorph consists of both the hacked e and compiz(i know the naming might be a bit confusing... will fix that soon). so you have probably installed 'compiz' to a non standard prefix and have to pass this as PKG_CONFIG_PATH to configure. or maybe you didnt changed to the ecomorph branch of compiz, this is the case if you dont see ecomorph.sh in the compiz dir

Comment by bob.billy123, Feb 28, 2008

Cool! I installed the package 'libglu1-mesa-dev' (I have an Intel card) and it fixed the problem! I guess this package is somehow necessary on some systems (like mine).

Comment by achernok, Feb 28, 2008

are you planning to integrate your changes into main e17 source tree

Comment by hannes.janetzek, Mar 01, 2008

@achernok: as stated above this is still in planning phase. if it turns out that it is possible to make a module of ecomorph with only some hooks added to e which are not specialised to ecomorph one could think about including them in e. for now it's easy to keep the ecomorph branch easy up to date via git... so i'm not in a hurry to work on these things

Comment by a...@northisup.com, Mar 01, 2008

Amazing! Excellent work. I am curious what the expected output would be on a dual monitor set up under Nvidia TwinView?. I have two Dell 2007wfps at 1650x1080. The left monitor works fine, and I get a /very/ large black bar on the right hand side of the right monitor. The effect being about a 1800x1080 viewable screen, and the rest being black, but functional. i.e. windows can be placed under the black section and interacted with, you just can't see what is going on. If you think this is a bug I can get you more detailed logs and submit it in the issue tracker.

Comment by hannes.janetzek, Mar 01, 2008

i didnt test multi-head stuff and wont expect it to work since e handles multihead pretty differently than compiz

Comment by hannes.janetzek, Mar 02, 2008

@all: please use the issue tracker above or email me if you have specific problems with compiling or running the program. I dont see when comments are added here

Comment by malpy.cacahuetux, Mar 06, 2008

HI!!! Great work! I am trting to compile ecomorph, for the moment i had to install "libembryo-dev" and "autopoint" in Ubuntu Gutsy. Sorry for my english but i am spanish. Bye ;)

Comment by malpy.cacahuetux, Mar 06, 2008

Hi again! I compile it, but i have a little question. With an ATI card with the non-free driver, can i use it with AIGLX? When i do "ecomorph ccp" he say me: addDisplay (null) ecomorph (core) - Fatal: GLX_EXT_texture_from_pixmap is missing ecomorph (core) - Error: Failed to manage screen: 0 ecomorph (core) - Fatal: No manageable screens found on display :0.0

Is for the non-free driver, right?

Comment by hannes.janetzek, Mar 07, 2008

that is exactly the problem with fglrx and aiglx. afaik there is no other solution than using xgl. same with compiz

Comment by malpy.cacahuetux, Mar 07, 2008

OK, thanks. I'll try with the free driver.

Comment by ffomnislash, Mar 08, 2008

On my gentoo 64bit I use AIGLX+fglrx and I use this command:

LIBGL_ALWAYS_INDIRECT=1 LD_PRELOAD=/usr/lib64/opengl/ati/lib/libGL.so.1.2 ecomorph --replace ccp >> NULL

Performance are bad but ecormorph is still a pre-alpha-beta and fglrx is a crappy driver.

Comment by hannes.janetzek, Mar 09, 2008

@ffomnislash: the aiglx performance of fglrx is pretty bad afaik. with xgl it should be fast

Comment by molom123, Mar 21, 2008

Does this mean you can use Avant Window Navigator (AWN) on e17 and fluxbox? Thank you for helping e17. The Maryan Linux team appreciates it (www.maryanlinux.wordpress.com).

Comment by hannes.janetzek, Mar 23, 2008

@molom123: sure awn can be used with any compositing manager. if you use e17 you might want to try itask-ng.. i'm currently working on adding gadget support to it

Comment by molom123, Mar 23, 2008

I heard itask is very buggy and unstable, but I'm unsure of whether the person was talking about itask-ng.

Do you need graphics card drivers to make ecomorph work?

Comment by hannes.janetzek, Mar 24, 2008

molon: you mean opengl? sure. if compiz works for you ecomorph will too. since it's just a stripped down compiz (for now)

Comment by molom123, Mar 27, 2008

@hannes I could never get compiz working on Linux Mint. I have a nvidia 8300gt and when I use envy to install it to get 3d acceleration, I have to reconfigure xorg back to the basic vesa drivers. I guess I will never be able to run ecomorph. Compiz did work by default when I used my old ATI card.

Comment by wvaladez, Apr 04, 2008

Am wondering if there is a way to make the compiz-extra-plugins work with ecomorph. I've tried building them separately against compiz and copying them to the ecomp directory, which didn't work, as well as building with the references to compiz sed'd to be ecomp, still nothing works.

Also, any chance that you could get mouse bindings to work? Would be nice to alt-drag the transparent windows with the wobble effect, as well as be able to adjust individual window transparency.

Also, for the record this stuff is totally sweet. Reminds me of when I saw e for the first time back in like 96. Thanks bunches for your effort here.

Comment by pietro.albano, Apr 08, 2008

hi all when i try to compile libecompconfig it return this error:

checking for pkg-config... /usr/bin/pkg-config checking pkg-config is at least version 0.9.0... yes checking for ECOMP... configure: error: Package requirements ("ecomp") were not met:

No package 'ecomp' found

Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix.

Alternatively, you may set the environment variables ECOMP_CFLAGS and ECOMP_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details.

Can u help me pls? My distro is Gentoo

Comment by wvaladez, Apr 09, 2008

pietro try doing configure like this:

PKG_CONFIG_PATH="/usr/bin/pkg-config" ./configure

or do which pkg-config to find out it's path if it's not in /usr/bin

there's a long thread about this on the gentoo forums @

http://forums.gentoo.org/viewtopic-t-643655-highlight-compiz.html

Comment by wvaladez, Apr 09, 2008

left something out. Do configure like this:

PKG_CONFIG_PATH="/usr/bin/pkg-config" ./configure --prefix=/usr

Comment by mi...@stardatecomputer.com, Apr 16, 2008

This is the most awesome idea ever. Any idea when the changes you need to make to e will be accepted into mainline so ecomorph will no longer have to have its own version?


Sign in to add a comment