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.
uhat is a tool that listens to joystick events and converts hat switch axis events into the joystick button events X-Plane needs. Some joysticks have hat switches that are represented to the OS as two axes, even though mechanically they're just four 0/1 switches. These hat switches are often used for looking around through the cockpit in X-Plane.