在圣诞节收到联想 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/。该网站建议更新输入包,但我还没有尝试过。
答案1
通过阅读以下有用信息,我找到了问题的直接答案Ubuntu Wiki:X - 输入坐标转换。
这些命令可用于对齐输入设备和显示器的旋转:
第一个命令旋转显示,可以是左、右、正常或反转:
xrandr -o <orientation>
重新映射输入设备:
xinput set-prop '<device name>' 'Coordinate Transformation Matrix' <matrix-elements-rowwise>
第二条命令重新映射输入设备(即触摸板或触摸屏),其中<matrix-elements-rowwise>
、0 -1 1 1 0 0 0 0 1
、0 1 0 -1 0 1 0 0 1
或1 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 #!/bin/bash # 此脚本将屏幕和触摸屏输入旋转 180 度,禁用触摸板并启用虚拟键盘 xrandr -o 反转 xinput set-prop 'ELAN 触摸屏' '坐标变换矩阵' -1 0 1 0 -1 1 0 0 1 xinput 禁用‘SynPS/2 Synaptics TouchPad’ 在船上 &
然后我使用以下命令使脚本可执行
chmod u+x rotate-inverted.sh
并将命令分配~/rotate-inverted.sh
给键盘快捷键Ctrl++AltI
系统设置 -> 键盘。
退出并重新登录后,我可以通过按该快捷方式来旋转键盘。
我对其他旋转位置做了同样的事情,使用命令xinput enable 'SynPS/2 TouchPad'
和killall onboard
代替xinput disable 'SynPS/2 TouchPad'
和。onboard &
rotate-normal.sh
该主题中的其他一些人讨论了将此类脚本分配给
Yoga 上的额外按钮(例如锁定按钮),以及在改变 Yoga 的位置时自动执行它们;但我不确定如何做到这一点。
答案2
我又添加了几行,第二次运行脚本将使屏幕恢复正常并启用触摸板,使用 Ideapad 2 Pro 进行了测试。顺便说一句,我确实将脚本的启动器放在了侧面板上操作方法:新启动器。
内核尚不支持加速度计,但也许在下一个版本中会支持。
创建脚本/usr/local/bin/rotate-screen.sh
#!/bin/bash
# This script rotates the screen and touchscreen input 180 degrees, disables the touchpad, and enables the virtual keyboard
# And rotates screen back if the touchpad was disabled
isEnabled=$(xinput --list-props 'SynPS/2 Synaptics TouchPad' | awk '/Device Enabled/{print $NF}')
if [ $isEnabled == 1 ]
then
echo "Screen is turned upside down"
xrandr -o inverted
xinput set-prop 'ELAN Touchscreen' 'Coordinate Transformation Matrix' -1 0 1 0 -1 1 0 0 1
xinput disable 'SynPS/2 Synaptics TouchPad'
# Remove hashtag below if you want pop-up the virtual keyboard
# onboard &
else
echo "Screen is turned back to normal"
xrandr -o normal
xinput set-prop 'ELAN Touchscreen' 'Coordinate Transformation Matrix' 1 0 0 0 1 0 0 0 1
xinput enable 'SynPS/2 Synaptics TouchPad'
# killall onboard
fi
并赋予其可执行权限:
sudo chmod +x /usr/local/bin/rotate-screen.sh
答案3
实用功能旋转专为与 ThinkPad Yogas 配合使用而设计,因此它可以处理触控笔信息等,并提供各种方向控制(通过按钮、屏幕旋转和加速度计)。可能值得一试。
答案4
自动旋转是适用于二合一笔记本电脑和其他带触摸屏设备的 Linux/X11 实用程序。无需 ROOT 权限!
命令 left right Portrait 和 lanscape 是 xrandr 和 xinput 的包装器,用于同步屏幕和数字化仪的旋转。实际上,它们将旋转所有 xinput 设备,包括触控笔、触摸板、触摸屏、鼠标...
带有轴传感器的笔记本电脑无需任何命令即可运行以检测方向。标志 --daemon 旨在作为服务在后台运行。