I’ve been waiting for ages for a new nvidia driver to work with suspend so I felt it was time to look for something that works now. I had been killing compiz and emerald manually and then running hibernate, which worked fine, but I really wanted to be able to shut the lid on my laptop and have it suspend and also just hit a button to hibernate. After a diversion into using Ubuntu’s acpi-support utility I found I could do it all with a simple addition to my existing hibernation config.
In /etc/hibernate/common.conf I added:
OnSuspend 20 killall compiz emerald &
OnResume 25 DISPLAY=:0.0 sudo -H -b -u username compiz –replace –sm-disable –ignore-desktop-hints ccp &
I also needed to fix sudo to let me use the DISPLAY but now, at last, it works like a charm!
EDIT: I spoke too soon .. now hibernation seems to often get stuck, bumping up the logging doesn’t reveal anything, nor am I getting any interesting messages in /var/log/messages. I also can’t seem to roll back the changes, I’m wishing I hadn’t touched it now 😦