Gnome input devices manager
Go to file
2023-09-28 18:10:08 +02:00
drivers graphical dpi show improvements 2023-09-28 18:10:08 +02:00
src graphical dpi show improvements 2023-09-28 18:10:08 +02:00
ui graphical dpi show improvements 2023-09-28 18:10:08 +02:00
.clang-format Initial commit 2023-07-20 22:34:35 +02:00
.gitignore Initial commit 2023-07-20 22:34:35 +02:00
Makefile Use $CC in makefile 2023-09-23 14:33:05 +02:00
README.md Updated driver interface 2023-09-28 14:43:51 +02:00
v.ginput.gschema.xml Initial commit 2023-07-20 22:34:35 +02:00

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:

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)
*/