filter_evdev creates a virtual input device from a physical input device. It provides anytime configuration of positive, negative, or custom acceleration or sensitivity for each axis, or remapping axes or buttons as requested, e.g. inverting the two main mouse buttons or making the middle button act as the right button. Configuration can be dynamically changed by text commands sent to a UNIX socket. Commands apply to specific axes, buttons, or keys when moved in specified value ranges, and consist of custom arithmetic operations.