Where are startup commands stored?

When you go to "Startup Applications", you see a list of commands that are executed at startup and you can add your own.

I would like to know where this list is stored. Is it in gconf somewhere?

There are two reasons I want to know this:

  • add commands programmatically
  • disable some commands (in Oneiric, the default ones are not shown anymore)

Solution 1:

As per the Desktop Application Autostart Specification, which Ubuntu and all major desktop environments like Gnome, LXDE, XFCE follow, the Startup Applications are .desktop files stored per-user in

~/.config/autostart

And also globally, for all users, in

/etc/xdg/autostart

(this is a simplification, the real directories are determined by XDG Base Directory Specification)

The enable/disable feature is provided by this attribute in each .desktop file:

X-GNOME-Autostart-enabled=true (or false)

If a user toggles enable/disable status of a given application (without deleting it) that was in the system folder, it is copied to the user directory and then the attribute X-GNOME-Autostart-enabled is changed. If a user deletes a given application from the list, the .desktop is copied to user folder with the Hidden=true attribute (or the file is simply deleted if it was present just in the user directory)

Files in both user and system folder does not need to be marked as executable. Default permission is 644 (rw-r--r--). Executable permission for .desktop files are only useful for launchers in your desktop area (the workspace), so they show their icon and allow double-click to start the application. For Dash, Launcher, Autostart and menus in general the executable bit is irrelevant.

Solution 2:

I use xfce and what I have found is most of system related autostart commands such as

power-managers, gnome-keyring, ubuntuone, blueman etc

are stored in /etc/xdg/autostart while most of user specific autostart are located at

$HOME/.config/autostart You may have a look at those 2 places.

To disable something to autostart, set Hidden=false under [Desktop Entry] section in the respective file under $HOME. You may have to create the file.

Solution 3:

In KDE it's in

~/.kde/Autostart

This has been depreciated, KDE Plasma now follows the XDG spec. System wide startup dir is found in /etc/xdg/autostart and user specific ones in ~/.config/autostart

I have a script there which starts Krusader:

 #!/bin/bash
 krusader &

Don't forget to make the scripts You'll put in Autostart - to be executable.