|
|
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.
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.
Sign in to add a comment

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
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)
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)
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
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).
are you planning to integrate your changes into main e17 source tree
@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
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.
i didnt test multi-head stuff and wont expect it to work since e handles multihead pretty differently than compiz
@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
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 ;)
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?
that is exactly the problem with fglrx and aiglx. afaik there is no other solution than using xgl. same with compiz
OK, thanks. I'll try with the free driver.
On my gentoo 64bit I use AIGLX+fglrx and I use this command:
Performance are bad but ecormorph is still a pre-alpha-beta and fglrx is a crappy driver.
@ffomnislash: the aiglx performance of fglrx is pretty bad afaik. with xgl it should be fast
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).
@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
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?
molon: you mean opengl? sure. if compiz works for you ecomorph will too. since it's just a stripped down compiz (for now)
@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.
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.
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
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
left something out. Do configure like this:
PKG_CONFIG_PATH="/usr/bin/pkg-config" ./configure --prefix=/usr
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?