I recently acquired a Lenovo Yoga 3 11" convertible notebook. It works really with out-of-the-box with Ubuntu Gnome LTS 16.04.2 - WiFi, Bluetooth, even suspend and resume work without any issues so far.
I noticed that Gnome 3 even allows the screen to auto-rotate based on the built-in rotation sensors. The Yoga 3 11" does offer rotation sensors via
iio-sensor-proxy which is already installed by default in Ubuntu Gnome. As it happens, the orientation reported by
iio-sensor-proxy seems to be off by 90°.
https://askubuntu.com/questions/634151/auto-rotate-screen-on-dell-13-7000-with-15-04-gnome has a solution in terms of a custom shell script which handles the screen rotation. I would rather not use this solution as it disables the "disable screen rotation" button in Gnome Shell.
I did some research already and found that
iio-sensor-proxy should cause udev to trigger an event which is then used by Gnome 3 to set the screen orientation via
xrandr. I cannot, however, find a way to tell either udev or Gnome 3 that the accelerometer is mounted in an orientation different from the display, which requires the directions to be translated in between.
So, the question is: How can that be done? The orientation remapping should be possible in either
iio-sensor-proxy, udev or Gnome 3, and I actually don't care that much where it is done. I don't seem to find any config files I can easily change to achieve what I need.
As a workaround for now I am using the script from the ask ubuntu question linked above, with modifications to account for the misaligned display/accelerometer issue. For this to work, I have to disable the automatic screen rotation in Gnome 3. Although this solution also allows automatically starting and killing onboard (on-screen keyboard) depending on current orientation, it kind of defeats the purpose of the Gnome 3 screen rotation setting.