GNOME Bugzilla – Bug 527444
Newly created account / empty people stock
Last modified: 2008-04-16 17:46:42 UTC
If I log in to the Online Desktop and create a new account, I'll get a lonely empty People stock with no obvious way to add more people. The slick behavior would be: - Log in to Online Desktop launches Pidgin if you already have accounts configured. - If you don't, then Pidgin isn't launched, but, if there is nobody in your People stock it shows "Configure IM Accounts" Which launches Pidgin. (Extend/switch to Empathy when we add Empathy support)
Taking it.
I see two possible approaches: 1 * Patch pidgin to provide a --silent (or something to that effect) command line option, so that the buddy list and the account manager are not displayed on startup. * Add "pidgin --silent" to autostart * Bigboard communicates with pidgin over dbus to check the accounts state and display the account manager when necessary. 2 * Bigboard watches ~/.purple/accounts.xml. If the file exists it launches pidgin, otherwise it displays "Configure IM Accounts". * Add a little hack to our pidgin dbus plugin or create a separate plugin to reset /pidgin/blist/list_visible to False on startup. I think 1 is cleaner but I'm inclined to do 2 for now to avoid patching pidgin.
I agree with going with 2. I'd like to get Colin's input on the details since he created the setup for launching stuff on startup. In particular, do we want bigboard to launch pidgin, or we should we hvae some separate script that does the launch if accounts.xml exists in the od-session autostart directory?
I like the idea of using autostartup and a wrapper script. What do you think about the plugin? Is it worth to create a separate one or we just stuff it in the dbus one for now?
Hmm, logically toggling the value of the blist/list_visible would seem to live in: online-desktop/presession/ online-desktop/od-reset But since pidgin doesn't use gconf, it would likely be difficult. Doing it in a plugin doesn't really make sense to me, since plugins will be loaded in other desktop sessions as well unless we could in the plugin get the effect: If OD_SESSION is in the environment, don't show the toplevel. Otherwise show the toplevel according to the config setting What we can't do is have it so that when the online-desktop packages get installed, launching pidgin from the menus in other sessions starts differently.
Here is a patch for pidgin to not show the blist on startup: https://bugzilla.redhat.com/show_bug.cgi?id=297021 But I think even outside of the online desktop, Pidgin is still broken; the experience I want is that if I launch it once and set it up, it should automatically re-launch from then on. This is how GTalk behaves on Windows, and how many other IM clients work as I understand it. I made a proposal for that here: http://live.gnome.org/SessionManagement/DesktopServiceAutostart
Colin, that's pretty much what I had in mind with approach 1. Since we are likely switching to empathy after Fedora 9, I'm not sure it's worth to try to get that upstream though. What I'm proposing instead (revised on the base of Owen feedback): * Autostart a script which checks ~/.purple/accounts.xml and launches pidgin if it exists. * Bigboard watches ~/.purple/accounts.xml and displays "Configure IM Accounts" if it doesn't exist. (Clicking on it launches pidgin). * Our dbus pidgin plugin reset /pidgin/blist/list_visible to False on start if OD_SESSION is defined in the env. What do you think?
Created attachment 109346 [details] [review] bigboard patch as per comment #7
Created attachment 109347 [details] [review] od patch as per comment #7
Patches look good to me.
Checked in.