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

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

最近、Lenovo Yoga 3 11 インチ コンバーチブル ノートブックを購入しました。Ubuntu Gnome LTS 16.04.2 がインストールされた状態でも、WiFi、Bluetooth、サスペンド、再開も問題なく動作しています。

Gnome 3 では、内蔵の回転センサーに基づいて画面を自動回転できることに気付きました。Yoga 3 11 インチには、iio-sensor-proxyUbuntu Gnome にデフォルトでインストールされている回転センサーが搭載されています。偶然にも、 が報告する方向はiio-sensor-proxy90° ずれているようです。

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

すでに調査したところ、によってイベントがトリガーされ、Gnome 3 によって を介して画面の向きが設定されるiio-sensor-proxyはずだということがわかりました。しかし、 または Gnome 3 に加速度計がディスプレイとは異なる向きで取り付けられていることを伝える方法が見つかりません。その場合、方向をその間で変換する必要があります。udevxrandrudev

それで、質問は、どうすればそれができるのかということです。方向の再マッピングはiio-sensor-proxyudevまたは Gnome 3 のいずれかで可能であるはずですが、実際にはどこで行われるかはそれほど気にしていません。必要なものを実現するために簡単に変更できる構成ファイルは見つからないようです。

今のところ、回避策として、上記のリンク先の Ask ubuntu の質問のスクリプトを使用していますが、ディスプレイ/加速度計のずれの問題を考慮して修正を加えています。これを機能させるには、Gnome 3 の自動画面回転を無効にする必要があります。このソリューションでは、onboard現在の方向に応じて (オンスクリーン キーボードを) 自動的に起動および終了することもできますが、Gnome 3 の画面回転設定の目的に反することになります。

答え1

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

実際には、私のマシン (One Mix One Netbook 2s) では、画面がデフォルトで反時計回りに 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

答え2

からGitLab iio-sensor-proxy サイト 加速度計が画面と同じ方法で取り付けられていない場合は、加速度計からの読み取り値を変更して、計算された方向が画面の方向と一致するようにする必要があります。

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

関連情報