什么过程负责自动屏幕旋转? 我想禁用它(16.04)

目前我正在尝试禁用负责处理我的Lenovo Yoga 2 Pro上自动屏幕旋转的过程,该过程默认启用。

到目前为止,我对包iio-sensor-proxyinotify-tools进行了一些研究,但我无法弄清楚如何禁用它。

是否可以删除iio-sensor-proxy以实现所需的行为?

或者这会以负面方式影响任何重要过程并导致exception?

配置文件存储在哪里?

提前致谢!

我已经找到了一种更实用的禁用屏幕旋转的方法,但它只适用于GNOME桌面环境,而不适用于Unity。

在GNOME中单击右上角的菜单。 打开“设置”菜单和锁定屏幕之间的按钮控制屏幕旋转。 单击按钮以禁用它。

此截图来自Fedora的类似问题 :

GNOME中屏幕旋转切换的位置

此function似乎不在Unity中。 至少可以帮助您在Unity中旋转屏幕的图形工具称为ScreenRotator 。

在Ubuntu 16.10上,我能够通过这种思路禁用自动屏幕旋转:

  1. 我确认是iio-sensor-proxy服务导致屏幕自动旋转。 运行systemctl stop iio-sensor-proxy停止屏幕旋转直到下次启动。
  2. 由于某种原因, iio-sensor-proxy服务是static SystemD服务,因此无法使用systemctl disable iio-sensor-proxy ,因此您必须将其删除才能永久禁用。 但是,很少的文档表明此服务还控制环境光传感器和指南针,如果我不需要,我不想禁用它。
  3. 使用apt-file实用程序(默认情况下未安装),我通过运行apt-file list iio-sensor-proxy确定为与此服务关联的程序包安装了哪些文件。 它似乎安装了一个配置文件/lib/udev/rules.d/80-iio-sensor-proxy.rules – 其中udev是Ubuntu的硬件管理子系统。 这似乎是值得一看的地方。
  4. 请注意,此文件包含行SUBSYSTEM=="input", ACTION=="add", TAG+="systemd", ENV{ID_INPUT_ACCELEROMETER}=="1", ENV{SYSTEMD_WANTS}+="iio-sensor-proxy.service" 。 这似乎控制了触发自动旋转的加速度计。 通过在此行前面放置#来注释它,以防止此服务读取加速度计。
  5. 重启后, iio-sensor-proxy仍在运行时应禁用自动屏幕旋转。

显然,应该有一个GUI选项,更不用说记录的方式,但你去了。

Interesting Posts