触摸屏输入不旋转:联想 Yoga 13 / Yoga 2 Pro

use*_*549 8 touchpad touchscreen

在圣诞节收到联想 Yoga 13 后,我对它在 Ubuntu 上的表现很满意。在显示设置菜单下或通过键入(例如xrandr -o inverted在终端中)可以轻松更改显示方向。然而,这不会旋转触摸屏(或者——不太重要的——触摸板)的输入。

我四处寻找解决此问题的方法,并找到了两个有希望的来源。
(1) http://cc.oulu.fi/~rantalai/synaptics/。在此处安装软件包并运行建议的命令会旋转显示屏和触摸板输入(但不是触摸屏的输入)。
(2) http://www.elfsternberg.com/2013/05/25/thinkpad-yoga-ubuntu-12/。这个网站推荐更新一个输入包,我没试过。

use*_*549 8

通过阅读Ubuntu Wiki: X - Input Coordinate Transformation 上的有用信息,我找到了我的问题的直接答案。

这些命令可用于对齐输入设备和显示器的旋转:

  1. 第一个命令旋转显示,可以向左、向右、正常或反转:
    xrandr -o <orientation>

  2. 重新映射输入设备:
    xinput set-prop '<device name>' 'Coordinate Transformation Matrix' <matrix-elements-rowwise>

第二个命令重新映射输入设备(即,触摸板或触摸屏),其中<matrix-elements-rowwise>0 -1 1 1 0 0 0 0 10 1 0 -1 0 1 0 0 11 0 0 0 1 0 0 0 1,或-1 0 1 0 -1 1 0 0 1; 对应于上述方向。

触摸板和触摸屏的名称可以用 找到,xinput list也可以用 完全禁用xinput disable <device-name>。随后,xinput enable <device-name>将重新启用输入设备。

在我的情况下,可能对于其他拥有 Yoga 13(也在 Yoga 2 Pro 上)的人来说,触摸屏被称为ELAN Touchscreen触摸板 SynPS/2 Synaptics TouchPad

因此,我在我的主目录中放置了一个简短的脚本rotate-inverted.sh,其内容如下:

    #!/bin/bash
    # 此脚本将屏幕和触摸屏输入旋转 180 度,禁用触摸板,启用虚拟键盘
    xrandr -o 倒置
    xinput set-prop 'ELAN Touchscreen' '坐标变换矩阵' -1 0 1 0 -1 1 0 0 1
    xinput 禁用“SynPS/2 Synaptics 触摸板”
    在船上 &

然后我使脚本可执行

chmod u+x rotate-inverted.sh
Run Code Online (Sandbox Code Playgroud)

和分配的命令~/rotate-inverted.sh到键盘快捷键Ctrl+ Alt+I
系统设置- >键盘

注销并重新登录后,我可以通过按该快捷键来旋转键盘。

我对其他旋转位置做了相同类型的事情,使用命令xinput enable 'SynPS/2 TouchPad'andkillall onboard而不是xinput disable 'SynPS/2 TouchPad'and onboard &for rotate-normal.sh

该线程上的其他一些人讨论了将此类脚本分配给
Yoga上的额外按钮(例如锁定按钮)以及在更改 Yoga 的位置时自动执行它们;但我不知道该怎么做。