web-dev-qa-db-ja.com

Gnomeシェルで自動画面回転の動作を変更する

私は最近Lenovo Yoga 3 11インチコンバーチブルノートブックを購入しました。これは、Ubuntu Gnome LTS 16.04.2ですぐに使用できます。これまでのところ、WiFi、Bluetooth、作業の中断と再開さえ問題なく行えます。

Gnome 3では、内蔵の回転センサーに基づいて画面を自動回転させることさえできることに気付きました。 Yoga 3 11インチは、Ubuntu Gnomeにデフォルトですでにインストールされているiio-sensor-proxyを介して回転センサーを提供します。たまたま、iio-sensor-proxyによって報告される方向が90°ずれているようです。

Dell 13 7000と15.04(Gnome)での画面の自動回転 には、画面の回転を処理するカスタムシェルスクリプトに関する解決策があります。このソリューションはGnome Shellの「画面の回転を無効にする」ボタンを無効にするため、私はむしろこのソリューションを使用しません。

私はすでにいくつかの調査を行いましたが、iio-sensor-proxyudevにイベントをトリガーさせ、Gnome 3がxrandrを介して画面の向きを設定するために使用することを発見しました。しかし、加速度計がディスプレイとは異なる方向に取り付けられていることをudevまたはGnome 3に伝える方法が見つからないため、方向を変換する必要があります。

だから、問題は:それはどのようにしてできるのですか?オリエンテーションの再マッピングはiio-sensor-proxyudev、またはGnome 3のいずれかで可能であるはずです。実際、それがどこで行われるかはあまり気にしません。必要なことを達成するために簡単に変更できる構成ファイルが見つからないようです。

とりあえずの回避策として、上にリンクされているAsk ubuntu質問のスクリプトを使用していますが、表示と加速度計の位置がずれている問題に対処するための変更を加えています。これを機能させるには、Gnome 3の自動画面回転を無効にする必要があります。このソリューションでは、現在の向きに応じてonboard(画面キーボード)を自動的に開始および強制終了することもできますが、この目的は無効になりますGnome 3の画面回転設定。

8
hoe

理論については、Krzysztof Stasiakの回答を参照してください。

実際には、私のマシン(1ミックス1ネットブック2秒)のデフォルトでは、画面が反時計回りに90度回転しています。

私が理解していることから、デフォルトでは-オーバーライドを持たないすべてのマシンにはACCEL_MOUNT_MATRIX = 1、0、0のマトリックスがあります。 0、1、0; 0、0、1

以下を/etc/udev/hwdb.d/60-sensor.hwdbに入れると、私のケースが修正されました:

sensor:modalias:*
  ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1
3
user208769

From GITHUB iio-sensor-proxy site 加速度計が画面と同じ方法で取り付けられていない場合、計算された向きが画面の向きと一致することを確認するために、加速度計からの読み取り値を変更する必要があります。

iio-sensor-proxyは、デバイスのACCEL_MOUNT_MATRIX udevプロパティからこの情報を読み取ります。詳細については、60-sensor.hwdbをご覧ください。

2