If installed from a package, joystickwake launches automatically when a user logs in to any modern linux desktop environment. It can also be run manually, without formal installation, since the executable is self-contained. While running, it monitors udev to find devices with the ID_INPUT_JOYSTICK property (including devices that are plugged in later) and reacts to activity from any of them. The screen is kept awake by periodically running a heartbeat-like wake command: an external tool provided by the system. Most desktop environments and screen savers include such a command, and joystickwake knows how to use the common ones, so there is normally no need for a user to install or configure one. This design keeps joystickwake compatible with just about every screensaver and power management system there is. OPTIONAL DEPENDENCIES python3-dbus-fast: if installed joystickwake will also try to inhibit the desktop environment's screen idle state for a short while after detecting activity, using the org.freedesktop.ScreenSaver interface. This helps with certain environments whose heartbeat-style wake interfaces are missing or broken. python3-xlib: if installed joystickwake will quit when the X11 desktop session ends. Otherwise, it will quit when its parent process exits. (This keeps old instances from persisting after the user logs out, on both X and Wayland.)