I have been trying to get all of this to work together and play nicely for quite a while now. I am pleased to be able to say:
IT WORKS! (Imagine that I am running into a room full of people shouting this.)
I have no idea how to create a port for this, as there is a bit of hand editing involved, so here is a short tutorial on how to make your e17 compositing dreams a reality.
Firstly, some prerequisites. You will need to install shells/bash, devel/git, and devel/subversion.
Step one:
The x11-wm/enlightenment from ports will not work for this. You will need to install e17 from svn. There is already a more than adequate tutorial on this at http://www.bendug.org/howto:build_e17_from_source_on_freebsd_8, so I will not repeat it here, however, there are some adjustments which need to be made. The first adjustment is the revision number. There are a few issues with the most current revision (at least there were when I downloaded it today. It might be fixed in a week.) The revision that we need to work with is 67785, your mileage may vary on this, but it is working for me at the moment. So checkout this revision by using the revision short option for all of the items that you download.
[cmd=]svn co -r 67785[/cmd]
After checking out the 67785 revision for ALL of the libraries, e, and any extra modules that you want. Start compilation in the order specified in the linked tutorial. Before you compile e the window manager proper, you need to set an extra environment variable. For some reason libgcrypt does not get automatically linked. I am not really sure why this is, but setting the LIBS environment variable will fix it. I use bash so,
[cmd=]export LIBS=-lgcrypt[/cmd]
Once you have compiled e and any extras that you want, it is time to acquire ecomp and ecomorph.
Compile ecomorph first using gmake and gmake install. You have to use gnuMAKE for this, another design decision that I was not thrilled with, but I guess I can complain when I start writing code for the project...
Anyhow, navigate to the directory you cloned ecomp into, (for most people this will be ecomp/, unless you named it something different.) There are some changes that need to be made here. Run autogen.sh with the following flags:
[cmd=]$./autgen.sh --disable-inotify[/cmd]
Note that if you installed e into a non-standard prefix, you will need to define that also as outlined in the linked tutorial on installing e. After speaking with some of the people on the itask wiki, I was told that inotify was not necessary for ecomp to work, it is used to update the config without restarting the module, so this functionality is lost. DO NOT start compiling after the autogen.sh command completes. There are two files that need to be edited first.
The first is the Makefile located in the current directory under src/Makefile. The last three characters of line number 259 are -ldl. Remove this. This links against libdl which is an extra library whose functionality is already present in libc on FreeBSD. The second file that needs to be edited is located in the current directory under bcop/src/bcop.in. You will need to edit the first line to point to bash. On my system the line now looks like this:
If you do not change this, ecomp will not compile. After editing these files, you can complete compilation again using gmake.
After successful completion of these steps you should have a working installation of enlightenment with the ecomp/ecomorph compositing module installed. Before you start the window manager, be sure that you have enabled AIGLX in your xorg.conf file, mine looks like this:
Once you have done that and restarted X, start enlightenment. According to the discussion that I had on the itask wiki ecomorph needs to be started with the ecomorph ini command. This runs the binary directly, and should be done this way because we compiled ecomorph without inotify enabled. Before you do this you need to set the LIBGL_ALWAYS_INDIRECT environment variable to true.
[cmd=]$ export LIBGL_ALWAYS_INDIRECT=true[/cmd]
I suggest adding this to your profile, as it just makes life a little more convenient. You should see ecomorph listed in Module Settings under System, enable this module. If everything worked out, you can now run
[cmd=]$ ecomorph ini[/cmd]
in a terminal, and compositing should be working. The last step is configuring ecomorph to do what you want through the ecomorph configuration screen. This can be accessed by left clicking on the desktop and highlighting "settings" from the menu.
I think that about sums it up. I hope that this was helpful to you. I have had a few conversations about this on other threads, and decided that since I had worked it out, perhaps a tutorial was called for. This is the first one that I have written, so I apologize if it is a little disconnected, (I also wanted to get this documented before I forgot any steps.)
Attached is a screenshot.
And finally, it would appear that automounting works with e. I have not configured my HAL policies, but I am getting error messages when attaching devices letting me know that I don't have permission to mount the device, so it looks promising. Also, I am not an e developer. I will help where I can but my knowledge here is not all inclusive, so there will be a limit to the amount of assistance that I can give here.
IT WORKS! (Imagine that I am running into a room full of people shouting this.)
I have no idea how to create a port for this, as there is a bit of hand editing involved, so here is a short tutorial on how to make your e17 compositing dreams a reality.
Firstly, some prerequisites. You will need to install shells/bash, devel/git, and devel/subversion.
Step one:
The x11-wm/enlightenment from ports will not work for this. You will need to install e17 from svn. There is already a more than adequate tutorial on this at http://www.bendug.org/howto:build_e17_from_source_on_freebsd_8, so I will not repeat it here, however, there are some adjustments which need to be made. The first adjustment is the revision number. There are a few issues with the most current revision (at least there were when I downloaded it today. It might be fixed in a week.) The revision that we need to work with is 67785, your mileage may vary on this, but it is working for me at the moment. So checkout this revision by using the revision short option for all of the items that you download.
[cmd=]svn co -r 67785[/cmd]
After checking out the 67785 revision for ALL of the libraries, e, and any extra modules that you want. Start compilation in the order specified in the linked tutorial. Before you compile e the window manager proper, you need to set an extra environment variable. For some reason libgcrypt does not get automatically linked. I am not really sure why this is, but setting the LIBS environment variable will fix it. I use bash so,
[cmd=]export LIBS=-lgcrypt[/cmd]
Once you have compiled e and any extras that you want, it is time to acquire ecomp and ecomorph.
Code:
$ git clone git://github.com/jeffdameth/ecomp.git
$ git clone git://github.com/jeffdameth/ecomorph.git
Anyhow, navigate to the directory you cloned ecomp into, (for most people this will be ecomp/, unless you named it something different.) There are some changes that need to be made here. Run autogen.sh with the following flags:
[cmd=]$./autgen.sh --disable-inotify[/cmd]
Note that if you installed e into a non-standard prefix, you will need to define that also as outlined in the linked tutorial on installing e. After speaking with some of the people on the itask wiki, I was told that inotify was not necessary for ecomp to work, it is used to update the config without restarting the module, so this functionality is lost. DO NOT start compiling after the autogen.sh command completes. There are two files that need to be edited first.
The first is the Makefile located in the current directory under src/Makefile. The last three characters of line number 259 are -ldl. Remove this. This links against libdl which is an extra library whose functionality is already present in libc on FreeBSD. The second file that needs to be edited is located in the current directory under bcop/src/bcop.in. You will need to edit the first line to point to bash. On my system the line now looks like this:
Code:
#!/usr/local/bin/bash
After successful completion of these steps you should have a working installation of enlightenment with the ecomp/ecomorph compositing module installed. Before you start the window manager, be sure that you have enabled AIGLX in your xorg.conf file, mine looks like this:
Code:
Section "ServerLayout"
Identifier "X.org Configured"
Screen 0 "Screen0" 0 0
InputDevice "Mouse0" "CorePointer"
InputDevice "Keyboard0" "CoreKeyboard"
Option "AIGLX" "True"
EndSection
[cmd=]$ export LIBGL_ALWAYS_INDIRECT=true[/cmd]
I suggest adding this to your profile, as it just makes life a little more convenient. You should see ecomorph listed in Module Settings under System, enable this module. If everything worked out, you can now run
[cmd=]$ ecomorph ini[/cmd]
in a terminal, and compositing should be working. The last step is configuring ecomorph to do what you want through the ecomorph configuration screen. This can be accessed by left clicking on the desktop and highlighting "settings" from the menu.
I think that about sums it up. I hope that this was helpful to you. I have had a few conversations about this on other threads, and decided that since I had worked it out, perhaps a tutorial was called for. This is the first one that I have written, so I apologize if it is a little disconnected, (I also wanted to get this documented before I forgot any steps.)
Attached is a screenshot.
And finally, it would appear that automounting works with e. I have not configured my HAL policies, but I am getting error messages when attaching devices letting me know that I don't have permission to mount the device, so it looks promising. Also, I am not an e developer. I will help where I can but my knowledge here is not all inclusive, so there will be a limit to the amount of assistance that I can give here.