Ivman is an extremely flexible desktop independent frontend to HAL, the userspace Hardware Abstraction Layer for Linux. It can be used to execute arbitrary commands when devices are added to or removed from your system, when device properties change, or when devices emit conditions. Any properties of the new or changed device can be included within the executed command.