in the hope that this might be useful to others I am posting this here.
If you use the newer FrostWire and/or LimeWire versions, chances are that you will have troubles to get them to work. There are many other Java-based applications too --mainly those written with the "swing" and/or "AWT" GUI toolkits for Java-- too that have problems with Beryl / Compiz / AIGLX and/or XGL.
The most common problem is that the program window remains grey, ie. the program only displays a grey empty area, there are no controls, no program elements or whatsoever visibile. This is a bug and a series of currently existing incompatibilities between Java, some libraries, applications such as FrostWire and LimeWire and projects such as Beryl and Compiz. According to some talk I have seen in various message boards installing the new Java 6 SDK from SUN Microsystems will resolve most of those issues, but installing Java 6 is not for the faint of heart ... and I can't cover that here, but if you go to the Ubuntu Forums and Google around you will find good instructions on how to do this.
So aside from installing Java 6, what can you do to fix your Java apps? And still use Beryl / Compiz? Not using Beryl fixes those issues too ... But I for my part insist on using my eye-candy
In most --but not all!!-- cases you can solve the "Java windows remains grey" problem by following the instructions here:
Unfortunately setting export AWT_TOOLKIT=MToolkit does not always help. e.g. in my case the newest versions of LimeWire will crash when I set this option -- and when I don't set it I get an empty window. Bummer. And I insist on using Beryl
After some long searching I found a workaround that might also work with other programs that have this problem:
You can launch a second X server ("X" is the graphical interface on UNIX-like operating systems; check Wikipedia!) and then have your "problematic" application run inside that second X server.
To achieve that you could use e.g. VNC (please Google around; there are good instructions for VNC everywhere!) but this would mean that your application won't be running on your current desktop, instead it will be running on a virtual desktop that you first need to connect to. This is good if you e.g. want to control FrostWire / LimeWire remotely, but maybe it's also overkill if you just want to have it in your current session.
To have it running in your current session I'd suggest to follow this hint I picked up on another message board: use Xnest.
Xnest should already be installed, it's pretty much standard these days and should be part of the X.org packages.
So the procedure is this: We launch Xnest as a window, we define a new $DISPLAY (a system variable that defines on which (virtual) screen we want the next program that will start displayed on!) and then tell LimeWire (or any other problematic app) to show up there, inside the new X server window, outside of Beryl's influence:
Code: Select all
# launch Xnest and export the $DISPLAY
Xnest -ac :1 & export DISPLAY=:1
# Put the name of your problematic app here
# end line with "&" (task gets launched in the background)
Hope that this might be useful to anyone else one day ...