Gnome input devices manager
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
vhaudiquet f37d42263e driver fix g-wolves 10 months ago
drivers driver fix g-wolves 10 months ago
src Moved UI from C to Vala 10 months ago
ui Moved UI from C to Vala 10 months ago
.clang-format Initial commit 1 year ago
.gitignore Initial commit 1 year ago
LICENSE Added LICENSE 10 months ago
Makefile Moved UI from C to Vala 10 months ago
README.md Moved UI from C to Vala 10 months ago
v.ginput.gschema.xml Initial commit 1 year ago

README.md

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_capacity_t driver_get_capacity(void* handle); // Returns device capacity (see below)
char* driver_get_name(void* handle); // Returns peripheral name
char* driver_get_image(void* handle); // Returns peripheral image
char* driver_get_manufacturer(void* handle); // Returns manufacturer name

/*
* Mouse drivers
*
* - DPI Levels: max levels, level info (dpi + led), level count, current level
* - Motion sync
* - Angle snap
* - Polling rate : possible values, current value
* - Debounce time : possible values, current value
* - Lift off distance : 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[];
};
int driver_mouse_dpi_get(void* handle, struct MOUSE_DPI_LEVELS* output);
int driver_mouse_motion_sync_get(void* handle, bool* output);
int driver_mouse_angle_snap_get(void* handle, bool* output);
struct MOUSE_POLLING_RATES
{
    unsigned int polling_rate_count;
    unsigned int polling_rate_current;
    unsigned int polling_rate_values[];
};
int driver_mouse_polling_rate_get(void* handle, struct MOUSE_POLLING_RATES* output);

/*
* Wireless driver
* - Battery (state + level)
* - Connection type (wired/wireless)
*/
int driver_wireless_battery_state_get(void* handle, int* battery_level, bool* charging);
int driver_wireless_connection_type_get(void* handle, bool* output);