This article links to various methods to launch scripts or applications automatically when some particular event is taking place.
On bootup / shutdown
Enable the relevant systemd services. If an application does not provide a systemd service, write your own.
On user login / logout
Enable the relevant user unit.
On device plug in / unplug
Use udev rules.
On time events
Periodically at certain times, dates or intervals:
Once at a date and time:
On filesystem events
Use an inotify event watcher:
- inotify-tools, see inotifywait(1)
- systemd can activate units on filesystem events using systemd.path(5) files
On shell login / logout
See Command-line shell#Configuration files.
On Xorg startup
- xinitrc if you are starting Xorg manually with xinit.
- xprofile if you are using a display manager.
On desktop environment startup
Most desktop environments implement XDG Autostart.
If the desktop environments has an article, see its Autostart section.
On window manager startup
Many window managers implement XDG Autostart.
If the window manager has an article, see its Autostart section.