Đầu vào màn hình cảm ứng không xoay: Lenovo Yoga 13 / Yoga 2 Pro


8

Sau khi nhận được Lenovo Yoga 13 cho Giáng sinh, tôi rất hài lòng với hiệu suất của nó với Ubuntu. Thật dễ dàng để thay đổi hướng hiển thị trong menu Cài đặt hiển thị hoặc bằng cách nhập, ví dụ như xrandr -o invertedtrong thiết bị đầu cuối. Tuy nhiên, như vậy không xoay đầu vào của màn hình cảm ứng (hoặc ít quan trọng hơn là Bàn phím cảm ứng).

Tôi đã xem xét các giải pháp cho vấn đề này và tìm thấy hai nguồn hứa hẹn.
(1) http://cc.oulu.fi/~rantalai/synaptics/ . Cài đặt gói ở đây và chạy các lệnh được khuyên xoay màn hình và đầu vào touchpad (nhưng không phải là màn hình cảm ứng).
(2) http://www.elfsternberg.com/2013/05/25/thinkpad-yoga-ubfox-12/ . Trang web này khuyên bạn nên cập nhật gói đầu vào mà tôi chưa thử.


Vấn đề (và giải pháp) giống nhau trên Yoga 2 Pro
rubo77

Có lẽ bạn cũng có thể thêm tính năng tự động xoay với tập lệnh này: krizka.net/projects/autorotate
rubo77

Câu trả lời:


8

Tôi đã tìm thấy câu trả lời đơn giản cho câu hỏi của mình bằng cách đọc thông tin hữu ích tại Ubuntu Wiki: X - Chuyển đổi tọa độ đầu vào .

Các lệnh này có thể được sử dụng để căn chỉnh các góc quay của thiết bị đầu vào và màn hình:

  1. Lệnh đầu tiên xoay màn hình, nơi có thể trái, phải, bình thường hoặc đảo ngược:
    xrandr -o <orientation>

  2. ánh xạ lại thiết bị đầu vào:
    xinput set-prop '<device name>' 'Coordinate Transformation Matrix' <matrix-elements-rowwise>

Lệnh thứ hai remaps các thiết bị đầu vào (có nghĩa là, bàn di chuột hoặc các màn hình cảm ứng), nơi <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, hoặc -1 0 1 0 -1 1 0 0 1; tương ứng với các định hướng trên.

Tên của bàn di chuột và màn hình cảm ứng có thể được tìm thấy xinput listvà có thể bị vô hiệu hóa hoàn toàn với xinput disable <device-name>. Sau đó, xinput enable <device-name>sẽ kích hoạt lại thiết bị đầu vào.

Trong trường hợp của tôi, và có lẽ đối với những người khác có Yoga 13 (cũng trên Yoga 2 Pro), màn hình cảm ứng được gọi ELAN Touchscreenvà bàn di chuột SynPS/2 Synaptics TouchPad.

Vì vậy, tôi đặt một đoạn script ngắn trong thư mục nhà của tôi được gọi rotate-inverted.shvới nội dung sau:

    #! / bin / bash
    # Tập lệnh này xoay màn hình và màn hình cảm ứng nhập 180 độ, vô hiệu hóa bàn di chuột và bật bàn phím ảo
    xrandr -o đảo ngược
    xinput set-prop 'Màn hình cảm ứng ELAN' 'Ma trận chuyển đổi tọa độ' -1 0 1 0 -1 1 0 0 1
    xinput vô hiệu hóa 'SynPS / 2 Synaptics TouchPad'
    trên tàu &

Sau đó, tôi đã thực hiện kịch bản với

chmod u+x rotate-inverted.sh

và gán lệnh ~/rotate-inverted.shcho phím tắt Ctrl+ Alt+ Itrong
Cài đặt hệ thống -> Bàn phím .

Sau khi tôi đăng xuất và đăng nhập lại, tôi có thể xoay bàn phím bằng cách nhấn phím tắt đó.

Tôi đã làm điều tương tự cho các vị trí xoay khác, sử dụng các lệnh xinput enable 'SynPS/2 TouchPad'killall onboardthay vì xinput disable 'SynPS/2 TouchPad'onboard &cho rotate-normal.sh.

Một số người khác trong chủ đề này đã thảo luận về việc gán các tập lệnh như vậy cho các nút bổ sung trên
Yoga - chẳng hạn như nút khóa - cũng như tự động thực hiện chúng khi thay đổi vị trí của Yoga; nhưng tôi không chắc làm thế nào để làm điều này.


Cảm ơn cho công việc chi tiết của bạn. Tôi đã tự hỏi nếu bạn đã đi qua bất kỳ nghiên cứu nào nói về làm thế nào để định hướng lại này xảy ra ngay lập tức (sử dụng gia tốc kế, tôi đoán vậy)?
A.Wan

Điều này cũng hoạt động hoàn hảo trên Yoga 2 Pro của tôi! Kịch bản nâng cao dưới đây của user267578 hoạt động hoàn hảo! Tôi sẽ thêm nó vào Hướng dẫn
rubo77

Có lẽ bạn tìm hiểu Làm thế nào để sử dụng Khóa chính xác để ánh xạ tập lệnh của bạn vào đây ?
rubo77

4

Tôi đã thêm vài dòng nữa, lần chạy thứ hai của tập lệnh sẽ biến màn hình trở lại bình thường và kích hoạt bàn di chuột, được thử nghiệm với Ideapad 2 Pro. Bằng cách này, tôi đã đặt launcher cho tập lệnh trên bảng điều khiển bên HowTo: launcher mới .

Gia tốc kế chưa được hỗ trợ trong kernel, nhưng có lẽ thứ gì đó sẽ được phát hành tiếp theo.

tạo kịch bản /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

và cung cấp cho nó quyền thực thi:

sudo chmod +x /usr/local/bin/rotate-screen.sh

1
công việc tuyệt vời, tôi đã nâng cao kịch bản của bạn ở đây: gist.github.com/rubo77/daa262e0229f6e398766
rubo77

Cảm ơn! Công trình tuyệt vời. Tôi đã tạo một trình khởi chạy để làm cho nó dễ sử dụng hơn.
Guillaume Sorel

1

Spin tiện ích được thiết kế để hoạt động với ThinkPad Yogas, do đó, nó xử lý thông tin bút stylus, v.v. và nó cung cấp tất cả các loại điều khiển định hướng (bằng nút, xoay màn hình và gia tốc kế). Nó có thể đáng để thử.


0

Một giải pháp không có xrandr(mà không hoạt động trên wayland)

Một giải pháp trên Ubuntu 19.04 với wayland là đặt rotate-monitorkhóa cho một số liên kết phím bằng cách sử dụng gsettingshoặc dconf-editor.

Chẳng hạn, lệnh sau sẽ khiến Ctrl+F8màn hình quay ngược chiều kim đồng hồ:

$ gsettings set org.gnome.mutter.keybindings rotate-monitor "['XF86RotateWindows', '<Control>F8']"

Điều này không cho phép người dùng chỉ định hướng đích mà chỉ xoay màn hình cho đến khi đạt được hướng mong muốn.

(bản gốc được đăng tại đây: https://unix.stackexchange.com/a/465395/20661 )

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.