unity-control-center not working in i3wm on Ubuntu 16.04

I am using i3wm desktop environment on Ubuntu 16.04 LTS. Everything was fine on Ubuntu 14.04 LTS. Now when I use unity-control-center I see only the following settings:

  1. Personal > Language Support
  2. Hardware > Printers
  3. System > Software & Updates

Where are the rest of the controls? I tried using the gnome-control-center. Still nothing better.

But if I use the Unity desktop environment everything works. I suppose, I need to run something before calling unity-control-center. What am I missing?

Please explain why this is happening.


Solution 1:

For Gnome Ubuntu:

Set $XDG_CURRENT_DESKTOP to GNOME and you're good to go:

XDG_CURRENT_DESKTOP=GNOME gnome-control-center

For Unity Ubuntu:

Set $XDG_CURRENT_DESKTOP to Unity and you're good to go:

XDG_CURRENT_DESKTOP=Unity unity-control-center

Solution 2:

I'll complement the answers above with an explanation to why this happens when you're using i3wm.

When you install and use i3 as your windows manager, i3 automatically sets the current desktop variable to i3. You can check it by doing:

echo $XDG_CURRENT_DESKTOP

Which returns i3

Ubuntu native programs do not work well if this environmental variable is set to a different value than Unity or Gnome depending on your Ubuntu distro.

To fix it you can simply set XDG_CURRENT_DESKTOP to your desktop environment.

On Gnome:

XDG_CURRENT_DESKTOP=GNOME; gnome-control-center

On Unity:

XDG_CURRENT_DESKTOP=Unity; unity-control-center