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

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

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

到目前为止,我对软件包iio-sensor-proxy和进行了一些研究inotify-tools,但我不明白如何禁用它。

是否可以通过移除iio-sensor-proxy来实现所需的行为?

或者这会对任何重要进程产生负面影响并导致异常?

配置文件存储在哪里?

提前致谢!

答案1

后来我找到了一种更实用的禁用屏幕旋转的方法,但它只在 GNOME 桌面环境中有效,而在 Unity 中无效。

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

此截图取自Fedora 的类似问题

GNOME 中屏幕旋转切换按钮的位置

Unity 中似乎没有此功能。在 Unity 中,至少有一个图形工具可以帮助您进行屏幕旋转,它叫做屏幕旋转器

答案2

在 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。它似乎安装了一个配置文件/lib/udev/rules.d/80-iio-sensor-proxy.rules- udevUbuntu 的硬件管理子系统在哪里。那似乎是要查看的地方。
  4. 请注意,此文件包含一行。这似乎控制触发自动旋转的加速度计。通过在此行前面SUBSYSTEM=="input", ACTION=="add", TAG+="systemd", ENV{ID_INPUT_ACCELEROMETER}=="1", ENV{SYSTEMD_WANTS}+="iio-sensor-proxy.service"添加一个来注释掉它,以防止此服务读取加速度计。#
  5. iio-sensor-proxy重启后,应在系统仍在运行时禁用自动屏幕旋转。

显然,应该有一个 GUI 选项,更不用说有记录的执行方法了,但你就这样了。

相关内容