Add `accel-profile` configuration
Pointer devices should be able to configure *flat*, *adaptive* and *none* as acceleration profiles.
This commit is contained in:
parent
502e18bb38
commit
e967148e54
|
@ -14,6 +14,7 @@ struct hikari_pointer_config {
|
|||
char *name;
|
||||
|
||||
HIKARI_OPTION(accel, double);
|
||||
HIKARI_OPTION(accel_profile, enum libinput_config_accel_profile);
|
||||
HIKARI_OPTION(disable_while_typing, enum libinput_config_dwt_state);
|
||||
HIKARI_OPTION(middle_emulation, enum libinput_config_middle_emulation_state);
|
||||
HIKARI_OPTION(natural_scrolling, bool);
|
||||
|
@ -36,6 +37,7 @@ hikari_pointer_config_merge(struct hikari_pointer_config *pointer_config,
|
|||
struct hikari_pointer_config *default_config);
|
||||
|
||||
HIKARI_OPTION_FUNS(pointer, accel, double)
|
||||
HIKARI_OPTION_FUNS(pointer, accel_profile, enum libinput_config_accel_profile)
|
||||
HIKARI_OPTION_FUNS(pointer, disable_while_typing, bool)
|
||||
HIKARI_OPTION_FUNS(pointer, middle_emulation, bool);
|
||||
HIKARI_OPTION_FUNS(pointer, natural_scrolling, bool)
|
||||
|
|
|
@ -964,6 +964,11 @@ are available.
|
|||
Sets mouse acceleration for the pointer device to a value between **-1** and
|
||||
**1**.
|
||||
|
||||
* **accel-profile**
|
||||
|
||||
Sets mouse acceleration profile for the pointer device to the given mode.
|
||||
Valid values are *none*, *flat* and *adaptive*.
|
||||
|
||||
* **disable-while-typing**
|
||||
|
||||
Enable or disable *disable-while-typing* if available. This setting expects a
|
||||
|
|
|
@ -984,6 +984,32 @@ parse_pointer_config(struct hikari_pointer_config *pointer_config,
|
|||
}
|
||||
|
||||
hikari_pointer_config_set_accel(pointer_config, accel);
|
||||
} else if (!strcmp(key, "accel-profile")) {
|
||||
const char *accel_profile;
|
||||
if (!ucl_object_tostring_safe(cur, &accel_profile)) {
|
||||
fprintf(stderr,
|
||||
"configuration error: expected string \"%s\" for "
|
||||
"\"accel-profile\"\n",
|
||||
pointer_name);
|
||||
goto done;
|
||||
}
|
||||
|
||||
if (!strcmp(accel_profile, "none")) {
|
||||
hikari_pointer_config_set_accel_profile(
|
||||
pointer_config, LIBINPUT_CONFIG_ACCEL_PROFILE_NONE);
|
||||
} else if (!strcmp(accel_profile, "flat")) {
|
||||
hikari_pointer_config_set_accel_profile(
|
||||
pointer_config, LIBINPUT_CONFIG_ACCEL_PROFILE_FLAT);
|
||||
} else if (!strcmp(accel_profile, "adaptive")) {
|
||||
hikari_pointer_config_set_accel_profile(
|
||||
pointer_config, LIBINPUT_CONFIG_ACCEL_PROFILE_ADAPTIVE);
|
||||
} else {
|
||||
fprintf(stderr,
|
||||
"configuration error: unkown \"accel-profile\" \"%s\" for \"%s\"\n",
|
||||
accel_profile,
|
||||
pointer_name);
|
||||
goto done;
|
||||
}
|
||||
} else if (!strcmp(key, "scroll-method")) {
|
||||
const char *scroll_method;
|
||||
if (!ucl_object_tostring_safe(cur, &scroll_method)) {
|
||||
|
|
|
@ -47,6 +47,11 @@ hikari_pointer_configure(struct hikari_pointer *pointer,
|
|||
libinput_device, hikari_pointer_config_get_accel(pointer_config));
|
||||
}
|
||||
|
||||
if (hikari_pointer_config_has_accel_profile(pointer_config)) {
|
||||
libinput_device_config_accel_set_profile(libinput_device,
|
||||
hikari_pointer_config_get_accel_profile(pointer_config));
|
||||
}
|
||||
|
||||
if (hikari_pointer_config_has_scroll_button(pointer_config)) {
|
||||
libinput_device_config_scroll_set_button(libinput_device,
|
||||
hikari_pointer_config_get_scroll_button(pointer_config));
|
||||
|
|
|
@ -16,6 +16,8 @@ hikari_pointer_config_init(
|
|||
strcpy(pointer_config->name, name);
|
||||
|
||||
hikari_pointer_config_init_accel(pointer_config, 0);
|
||||
hikari_pointer_config_init_accel_profile(
|
||||
pointer_config, LIBINPUT_CONFIG_ACCEL_PROFILE_ADAPTIVE);
|
||||
hikari_pointer_config_init_disable_while_typing(pointer_config, false);
|
||||
hikari_pointer_config_init_middle_emulation(
|
||||
pointer_config, LIBINPUT_CONFIG_MIDDLE_EMULATION_DISABLED);
|
||||
|
@ -40,6 +42,7 @@ hikari_pointer_config_merge(struct hikari_pointer_config *pointer_config,
|
|||
#define MERGE(option) \
|
||||
hikari_pointer_config_merge_##option(pointer_config, default_config);
|
||||
MERGE(accel);
|
||||
MERGE(accel_profile);
|
||||
MERGE(disable_while_typing);
|
||||
MERGE(middle_emulation);
|
||||
MERGE(natural_scrolling);
|
||||
|
|
Loading…
Reference in New Issue