I am having this issue for quite some time now. I have Ubuntu 16.04 installed in my Lenovo B-4030 laptop. I have currently installed Mac OS-X theme from here.

But I have upgraded from Ubuntu 14.04 and I faced the same issue in Ubuntu 14.04. The issue is as follows:

When I put my laptop in sleep mode and log in again, the icons and/or mouse pointer does not appear. Although I can interact with the icons and mouse pointer. Not the same icons disappear everytime, it happens to random icons. But when I click on the disappeared icon both the pointer and the icon come alive.

I've tried to search for an answer and found this.

Are both scenarios same? Because in the above link, user is talking about mouse pointer specifically and not about icons.

What could be the possible reason for this strange behaviour?

Has this issue been resolved?

screeshot of missing icons on desktop

  • 1
    Thank you for providing a screenshot and some indicators that kind of stuff helps a lot. – Kristopher Ives Dec 23 '16 at 14:18
  • 1
    Well, Ubuntu community has taught me many good things. :) – Manish Kumar Bisht Dec 23 '16 at 15:10

This is probably caused by a bug in how the textures are loaded in Compiz, the compositor in Ubutnu that runs Unity. Compiz is responsible for loading images and stuff into textures among many things. When your laptop goes into suspend the GPU forgets it's memory (otherwise it would have to keep it powered on or save it to disk)

Compiz probably has a bug with textures being invalidated by video ram getting cleared by some drivers, like that nVidia driver. It won't happen on my Intel system because the GPU and CPU essentially share the same memory that is kept in a low power state (and not lost)

Either way, your solution is probably to restart compiz:

 setsid compiz --replace &

It's important to realize this command has a lot of gotchas:

  • Must be ran with setsid or something else that ensures it doesn't get killed when it's parent goes away. Otherwise compiz will crash after you close you terminal.

  • Must be ran from the desktop with a display. If you switch to another terminal/display and run this command it won't know which X display to use (you would have to prefix it with DISPLAY=:0 or similar

  • If you ommit the & you won't be able to run more commands since compiz will be running in your terminal closing it would probably crash compiz.

| improve this answer | |
  • All right. I will try this (with caution, of course) and then let you know the result. – Manish Kumar Bisht Dec 23 '16 at 14:56
  • I tried this and realised that this is a temporary solution. It only brings back the icons and cursor but I have to perform this task everytime I face the issue. :( I appreciate your help but isn't there a permanent solution to this problem? – Manish Kumar Bisht Dec 23 '16 at 15:18
  • I've faced this problem in Ubuntu 14.04. It means the bug is very old. It should have been taken care of. May be two years were enough to track and fix a bug. :( – Manish Kumar Bisht Dec 23 '16 at 15:23
  • Compiz cant fix it if they don't know about it. It also may be technically a bug in your nVidia driver (maybe its their job to tell Linux the textures are destroyed and it's not) – Kristopher Ives Dec 23 '16 at 17:39
  • 1
    This is the closest I have found to your issue already in the bug system: bugs.launchpad.net/ubuntu/+source/compiz/+bug/1292830 – Kristopher Ives Dec 23 '16 at 17:40

From here

Solution found the problem is an old one form previous versions. The problem is graphic card driver related in particular NVIDIA.

The solution is simple:

In terminal as root:

cd /etc/pm/sleep.d/

$: touch compiz-fix.sh

$: nano compiz-fix.sh

!/bin/bash setsid compiz --replace

exit 0

ctrl+x to save

$: chmod +x compiz-fix.sh

to remove the changes just do as root:

$: rm compiz-fix.sh

Worked as a charm for me!

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.