I've created some disabled accounts for the sole purpose of customizing Docky in those accounts. Each account has a set of Docky Items that represents a tool set. This should give you an idea of what I mean by a Docky Tool Set:
- Admin app tool set
- Online user app tool set
- Offline user app tool set
- Office app tool set
- Gamer app tool set, etc.
From these disabled accounts, I want the actual user to enable or disable tool sets through gksudo calls:
xhost + local:dockyAdminUser
gksudo -u dockyAdminUser /usr/bin/docky
I've already set up the accounts, but when I launch Docky this way it complains that it needs DBus and can't find it. How can I make DBus available so Docky can fire up this way?
Note: This same thing happens for Tomboy, it's won't run and complains of a dbus problem.
Note: I'm not looking for a solution that suggests I don't launch Docky as another user. There is more than one reason that I must launch Docky as another user. But I kept those reasons out in order to keep the question clearer.*
DBUS is an IPC system, that means that is a way for different programs to communicate with each other.
In a normal Ubuntu system there is one system dbus instance, and one instance running for each logged user. The process that belong to one user that want to communicate with other processes from the same user don't need to use the system-wide one.
Seems like Docky and Tomboy are trying to use the user dbus. So, at least, you should start a dbus daemon for that user before Docky. You can do it with:
But it's quite likely that you will find another problem. The computer does a lot of things at log-in time, and complex programs like Docky are probably expecting that some of them are done.
You can check /etc/X/Xsession.d for most of the scripts that are run at log-in time. This are the X related scripts, that means that they are executed for all Desktop Enviroments. Anything fancy that Docky needs should be started here, as Docky is DE independent.