タッチスクリーン入力が回転しない:Lenovo Yoga 13 / Yoga 2 Pro


8

クリスマスにLenovo Yoga 13を受け取った後、Ubuntuでのパフォーマンスに満足しています。ディスプレイの設定メニューまたはxrandr -o invertedターミナルなどで入力することで、ディスプレイの向きを簡単に変更できます。ただし、タッチスクリーン(またはそれほど重要ではないが、タッチパッド)の入力は回転しません。

私はこの問題の解決策を探して回りましたが、2つの有望な情報源を見つけました。
(1)http://cc.oulu.fi/~rantalai/synaptics/。ここにパッケージをインストールし、アドバイスされたコマンドを実行すると、ディスプレイとタッチパッドの入力が回転しました(タッチスクリーンの入力は回転しませんでした)。
(2)http://www.elfsternberg.com/2013/05/25/thinkpad-yoga-ubuntu-12/。このウェブサイトは、私が試したことがない入力パッケージの更新を推奨しました。


問題(および解決策)はYoga 2 Proでも同じです
rubo77

たぶん、次のスクリプトでも自動回転を追加できます:krizka.net/projects/autorotate
rubo77

回答:


8

Ubuntu Wiki:X-Input Coordinate Transformationの役立つ情報を読んで、私の質問に対する簡単な答えを見つけました。

これらのコマンドを使用して、入力デバイスとディスプレイの回転を揃えることができます。

  1. 最初のコマンドは、表示を回転します。左、右、通常、または反転できます。
    xrandr -o <orientation>

  2. 入力デバイスを再マッピングします。
    xinput set-prop '<device name>' 'Coordinate Transformation Matrix' <matrix-elements-rowwise>

2番目のコマンドは、入力装置を再マッピング(すなわち、タッチパッドまたはタッチスクリーン)<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' 'Coordinate Transformation Matrix' -1 0 1 0 -1 1 0 0 1
    xinput disable 'SynPS / 2 Synaptics TouchPad'
    機内で &

次に、スクリプトを実行可能にしました

chmod u+x rotate-inverted.sh

コマンド~/rotate-inverted.shシステム設定->キーボードのキーボードショートカットCtrl+ Alt+ Iに割り当てました。

ログアウトして再度ログインした後、そのショートカットを押すことでキーボードを回転させることができました。

他の回転位置についても、xinput enable 'SynPS/2 TouchPad'とのkillall onboard代わりにコマンドを使用して、同じタイプのことをxinput disable 'SynPS/2 TouchPad'行いonboard &ましたrotate-normal.sh

このスレッドの他の何人かは、そのようなスクリプトを
Yogaの追加ボタン(ロックボタンなど)に割り当てること、およびYogaの位置を変更したときにそれらを自動的に実行することについて議論しました。しかし、これを行う方法がわかりませんでした。


あなたの詳細な仕事をありがとう。この方向転換をすぐに実現する方法について話している研究に出くわしたのではないかと思いました(加速度計を使用していると思います)。
A.Wan

これは私のYoga 2 Proでも完璧に機能します。以下のuser267578による拡張ス​​クリプトは完璧に動作します!私のガイドに
rubo77

たぶん、正しいキーを使用してスクリプトをここにマップする方法を見つけますか?
rubo77 14年

4

さらに数行追加しました。スクリプトを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

1
素晴らしい仕事、私はここであなたのスクリプトを強化しました:gist.github.com/rubo77/daa262e0229f6e398766
rubo77

ありがとう!よく働く。さらに使いやすくするためにランチャーを作成しました。
ギヨームソレル

1

ユーティリティスピンは、ThinkPad Yogasと連動するように設計されているため、スタイラス情報などを処理し、あらゆる種類の方向制御(ボタン、画面の回転、加速度計による)を提供します。試す価値があるかもしれません。


0

なしのソリューションxrandr(ウェイランドでは機能しません)

Waylandを使用したUbuntu 19.04での解決策は、またはrotate-monitorを使用してキーをいくつかのキーバインディングに設定することです。gsettingsdconf-editor

たとえば、次のコマンドはCtrl+F8画面を反時計回りに回転させます。

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

これにより、ユーザーはターゲットの方向を指定できませんが、目的の方向に達するまで画面を回転させることができます。

(元の投稿:https : //unix.stackexchange.com/a/465395/20661

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.