Comment 0 for bug 148605

Revision history for this message
Bogdan Butnaru (bogdanb) wrote :

Binary package hint: gnome-session

Hello! This is about Ubuntu Gutsy, though it applies to every distro that uses Gnome. I've attached it to gnome-session, though I'm not sure there's where the change must go.

The problem is that Gnome starts all "startup" applications at once after login. I have many applications I use virtually all the time, some of which are relatively heavyweight. This includes, for instance, Skype and Pidgin, though it could very well include Firefox too. There are many applets and tools that are installed by default, too. All of them I'd like started automatically (ie, I'll start them anyway, so why should I have to remember and do this by hand), so they're very much perfect candidates for the auto-start trick.

Of course, I can do that right now using the gnome-session-properties applet.

There's just one problem: Since Gnome starts all of them at once, immediately after log-in, I can't use my desktop for at least a minute after the login. The fact that I need these apps opened all the time _doesn't_ mean that I need them right away. Even if I did need them right away, I couldn't use them until they all start, since the startup thrashes the disk too much.

So I propose adding an option for delayed, low-priority startup. Almost none of the apps are needed right away, so it might actually make sense to use the trick for all of them.

The idea is to have a "slow-start" option. A startup application that has this enabled would (a) be started a little after startup, say 30 seconds later, when the initial disk-thrashing has stopped and the user already started working, and (b) the app would be started niced to a low priority, and raised to the normal priority 30 seconds later. The two approaches can be combined, but any of them would help by itself. Also, the low-priority processes could be staggered by 10 seconds or so, to prevent disturbing the user.

Examples of apps that can take advantage of this, in approximate order they should be started in:
- the network manager
- every communication app, like Pidgin or Skype
- some of the panel applets, like the deskbar and even the task&workspace switchers
- the power manager, print manager, and volume manager
- evolution's and other mail/alarm notifiers
- tracker, beagle and similar things

All of these are needed all the time, but not right away.

I've tried doing this (actually, just part b) by changing the start-up commands to something like 'bash -c "delay 30; pidgin', and it works OK as far as starting up goes. However, the (many) bash processes are kind-of heavy-weight, and they remain active the entire session. This also tends to clog up the process list, and it's a bit confusing. Something done directly in the start-up object would work much better.