# ginput : Gnome input devices configuration tool Manage the settings of your keyboard, mouse, ... with a simple GUI. This is for the internal settings of your devices, not for the OS settings. For example, you can change the mouse DPI, polling rate, rgb, ... ## Driver interface Drivers **must** expose the following symbols: ```c void driver_init(); // Initialization uint32_t driver_getkey(); // Calls to this function must return USB keys that this driver registers, until 0 device_type_t driver_get_capacity(); // Returns device capacity (see below) char* driver_get_name(void* handle); // Returns peripheral name char* driver_get_image(void* handle); // Returns peripheral image /* * Mouse drivers * * - DPI Levels: max levels, level info (dpi + led), level count, current level * - Debounce time : possible values, current value * - Motion sync * - Lift off distance : possible values, current value * - Angle snap * - Polling rate : possible values, current value * - LED (color/effect/status) */ struct MOUSE_DPI_LEVELS { unsigned int max_level_count; unsigned int level_count; unsigned int level_current; bool led_available; bool xy_available; struct MOUSE_DPI_LEVEL { unsigned int dpi_x; unsigned int dpi_y; unsigned char r; unsigned char g; unsigned char b; } level[]; }; struct MOUSE_DPI_LEVELS driver_mouse_dpi_get(void* handle); /* * Wireless driver * - Battery (state + amount) * - Connection type (usb 2.4/bluetooth/wired) */ ```