Ecomorph

From openSUSE

ecomorph - OpenGL compositing manager

ecomorph consists of a compositing manager based on compiz(renamed to ecomp) and a module for Enlightenment-DR17 Desktop Shell that works together with ecomp. currently it's considered as a beta or even RC. it's pretty stable for me though, more stable than xcompmgr (which was the initial reason to start this whole thing). disclaimer: it might reorder your window stacking, burn your house down, kill your cat or do anything in between.. so, you've been warned :)

Project homepage:

This software require some skills and a bit of system knowledge to use it. The author of this article has no issues with it using NVIDIA proprietary drivers. The text below should guide you through some basic steps of the configuration. If something doesn't work for you - please post the questions here:

Enlightenment thread in openSUSE forums

Please read Enlightenment for openSUSE to get more info about Enlightenment-DR17 Desktop Shell.

Installation

Take a look at the Root Enlightenment Repository for openSUSE, choose your version and proceed accordingly (just change the version used in example to the one installed on your PC):

openSUSE-11.0:

sudo zypper ar "http://download.opensuse.org/repositories/home:/dmitry_serpokryl:/Enlightenment-cvs-core-metapackage/openSUSE_11.0/" Enlightenment
sudo zypper ref
sudo zypper in ecomorph ecomp

Allow to install all required dependencies. Before you make "logout" there're several VERY important steps you must proceed to get things up and running.

  • the ".desktop" session file for "Entrance" (gdm/kdm/xdm/etc.) already installed properly in /usr/share/xsessions/ but you may wish to adjust the file below if auto-configuration routine fail to launch "Ecomorph" properly:
sudo vim /usr/bin/ecomorph.sh

I'll show you the example which works for my NVIDIA GPU and proprietary drivers installed from official NVIDIA sources (DON'T USE PRECOMPILED PACKAGES! They can be the reason of some specific bugs like "White screen" or other well-known "compiz" bugs). All you need is to edit/review several lines in the head of this file:

#ECOMP_BIN_PATH="/usr/local/bin/"       # For window decorators and ecomp, OLD VALUE!
ECOMP_BIN_PATH="/usr/bin/"     # NEW REQUIRED VALUE!
PLUGIN_PATH="/usr/lib/ecomp/"  # NEW REQUIRED VALUE!
GLXINFO="/usr/bin/glxinfo"
#KWIN="/usr/bin/kwin"
#METACITY="/usr/bin/metacity"
ECOMP_NAME="ecomorph" # Final name for ecomp (ecomp.real) 

# For Xgl LD_PRELOAD
#LIBGL_NVIDIA="/usr/lib/nvidia/libGL.so.1.2.xlibmesa"  # old one, commented.
LIBGL_NVIDIA="/usr/lib/libGL.so"      # NEW REQUIRED VALUE if drivers are build from *run.sh
#LIBGL_NVIDIA="/usr/X11R6/lib/libGL.so"   # NEW REQUIRED VALUE if drivers are installed from *.rpm
LIBGL_FGLRX="/usr/X11R6/lib/libGL.so"  # NEW REQUIRED VALUE if drivers are installed from *.rpm

# Minimum amount of memory (in kilo bytes) that nVidia cards need
# to be allowed to start
# Set to 262144 to require 256MB
#NVIDIA_MEMORY="65536" # 64MB
NVIDIA_MEMORY="131072" # 128M, just FYI.
NVIDIA_SETTINGS="nvidia-settings" # Assume it's in the path by default

That's it. It works!

The "/usr/bin/ecomorph.sh" contain some templates for ATI/NVIDIA cards. For Intel ones it seems that you should add the lines shown below to the head of it:

#For Intel cards:
export LIBGL_ALWAYS_INDIRECT=1
export INTEL_BATCH=1


  • the final stop of out "journey" is a "/usr/bin/ecomorph.sh" file. Above we saw a MUST modifications to adopt the software to Your video card and installed drivers.

All "ecomp" configurations are stored in "~/.ecomp" by default. The only plugin you really need to work with "Ecomorph" is "ini" located in PLUGIN_PATH="/usr/lib/ecomp/" (we adjusted this variable before, right?). To enable or disable the default plugins on start-up you need to modify "/usr/bin/ecomorph.sh" or you can do it in GUI if only "ini" is selected. Find ECOMP_PLUGINS variable and adjust the value. Please note that this variable appears twice. First is in the header of the file (around string no. 70) - and it's a useless for our exercise. The one we really need located in the bottom of the file (around string no. 342). We can set the desired plugins to begin with:

ECOMP_PLUGINS="ini"

Troubleshooting

It may happen (some time ago, now it's fixed. you just shouldn't load/list the "dbus" ECOMP_PLUGIN) that login freezes. Go to the any available "tty" (press Ctl+F1 for example), login as "root" and observe the output of a command below:

# pstree -p

├─enlightenment(29780)─┬─ecomorph.sh(29983)───ecomorph(30030)
                       ├─enlightenment_f(29819)

There should be no "dbus" (or any other) process with an "ecomorph parent". If "ecomorph" (PID 30030 above) starts any other process/pid - just kill that process by:

# kill -9 PID_TO_KILL

All keyboard/mouse shortcuts should be set via Enlightenment Settings Panel -> Input tools.

Please leave your feedback in case of any issues/suggestions.

Thanks.


P.S. please note, that earlier the "ecomp" and "ecomorph" packages were installed in /opt/ecomorph to preserve the existing "E17" along with the "Compiz" libs! Now the "/usr/bin/ecomorph.sh" file is adjusted for SuSE/SLE* and contain the auto-configuration scripts for proper equipment/drivers setup.