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

teu*_*cht 5 lenovo display-rotation

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

到目前为止,我对包iio-sensor-proxy和做了一些研究inotify-tools,但我不知道如何禁用它。

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

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

配置文件存储在哪里?

提前致谢!

DCK*_*ing 7

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

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

此屏幕截图取自Fedora类似问题

GNOME 中屏幕旋转开关的位置

Unity 中似乎没有此功能。至少可以帮助您在 Unity 中进行屏幕旋转的图形工具称为ScreenRotator


DCK*_*ing 6

在 Ubuntu 16.10 上,我可以通过以下思路禁用自动屏幕旋转:

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

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