Ubuntu 16.04 unity desktop environment doesn't load after fresh install

After doing a fresh install of Ubuntu 16.04, I log in, but the unity desktop environment does not load. All I get is the desktop background, and occasionally an information window about an error with compiz shows up.

I had this before also with the final Beta, and could not find a solution.

When I try to restart unity from the Ctrl + Alt + F1 console, with:

DISPLAY=:0 unity

I get:

compiz (core) - Info: Loading plugin: core
... many more instructions here
compiz (core) - Info: Unity is not supported by your hardware. Enabling software rendering instead (slow). 
... many more instructions again
compiz (core) - Info: Starting plugin: switcher
Illegal instruction (core dumped)

I have the Nvidia gtx980 graphics card, and according to Ubuntu, the (open-source) Nvidia driver has been installed correctly, so, imo, Unity should be fully supported, but for some reason when Ubuntu tries to start Unity, it fails with the only information being Illegal instruction.

Please advise on any way I can fix this or debug it


Solution 1:

I solved the problem following these steps:

  1. Activated the proprietary Nvidia graphics driver instead of the nouveau open-source one.
  2. Unfortunately this made my Ubuntu fail to boot, so I had to follow these steps to get it to work: https://askubuntu.com/a/391608/281857
  3. At this point Ubuntu was booting but there was still no launcher, top bar, etc. However I could right-click on the desktop to open a Terminal, and ran Fix 5 detailed by this answer: https://askubuntu.com/a/481620/281857

Solution 2:

Usually the answer to this is by resetting dconf entries for unity:

dconf reset -f /org/compiz/
setsid compiz

This seems to be due to bug #1569357 on launchpad. Usually they also give a few remediations for the bug in the launchpad entry, and it only seems to happen with sddm (the simple desktop display manager) - it does not happen with lightdm.

Using dconf reset -f /org/compiz/ did not work with me (sudo or no sudo). setsid compiz also didn't.

I also found that if you have logged in and have no launched and no panel, a quick way to make them start if you have a command line is:

nohup /usr/bin/unity > /dev/null 2>&1 &
nohup /usr/lib/x86_64-linux-gnu/unity/unity-panel-service > /dev/null 2>&1 &

This is just for the session you are in though. It won't make the launched and panel start the next time you log in.