Add calibration_matrix config option

Can be used to change the orientation of a touchscreen.

Example usage with swaymsg:

    # identity
    swaymsg input type:touch calibration_matrix '"1 0 0 0 1 0"'

    # 90 degree clockwise
    swaymsg input type:touch calibration_matrix '"0 -1 1 1 0 0"'

    # 180 degree clockwise
    swaymsg input type:touch calibration_matrix '"-1 0 1 0 -1 1"'

    # 270 degree clockwise
    swaymsg input type:touch calibration_matrix '"0 1 0 -1 0 1"'

Documentation:

    https://wayland.freedesktop.org/libinput/doc/latest/absolute-axes.html#calibration-of-absolute-devices
This commit is contained in:
Sergei Dolgov 2019-06-17 11:38:41 +02:00 committed by Simon Ser
parent f5d1c27226
commit 01ec18e802
8 changed files with 70 additions and 0 deletions

View file

@ -132,6 +132,11 @@ void merge_input_config(struct input_config *dst, struct input_config *src) {
free(dst->mapped_to_output);
dst->mapped_to_output = strdup(src->mapped_to_output);
}
if (src->calibration_matrix.configured) {
dst->calibration_matrix.configured = src->calibration_matrix.configured;
memcpy(dst->calibration_matrix.matrix, src->calibration_matrix.matrix,
sizeof(src->calibration_matrix.matrix));
}
}
static bool validate_xkb_merge(struct input_config *dest,