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

@ -237,6 +237,7 @@ sway_cmd bar_colors_cmd_urgent_workspace;
sway_cmd input_cmd_seat;
sway_cmd input_cmd_accel_profile;
sway_cmd input_cmd_calibration_matrix;
sway_cmd input_cmd_click_method;
sway_cmd input_cmd_drag;
sway_cmd input_cmd_drag_lock;

View file

@ -101,6 +101,11 @@ struct input_config_mapped_from_region {
bool mm;
};
struct calibration_matrix {
bool configured;
float matrix[6];
};
/**
* options for input devices
*/
@ -109,6 +114,7 @@ struct input_config {
const char *input_type;
int accel_profile;
struct calibration_matrix calibration_matrix;
int click_method;
int drag;
int drag_lock;