目前,我正在尝试禁用负责处理 Lenovo Yoga 2 Pro 上的自动屏幕旋转的进程,该进程默认处于启用状态。
到目前为止,我对软件包iio-sensor-proxy
和进行了一些研究inotify-tools
,但我不明白如何禁用它。
是否可以通过移除iio-sensor-proxy
来实现所需的行为?
或者这会对任何重要进程产生负面影响并导致异常?
配置文件存储在哪里?
提前致谢!
答案1
后来我找到了一种更实用的禁用屏幕旋转的方法,但它只在 GNOME 桌面环境中有效,而在 Unity 中无效。
在 GNOME 中,单击右上角的菜单。打开“设置”菜单和锁定屏幕之间的按钮可控制屏幕旋转。单击该按钮可禁用它。
此截图取自Fedora 的类似问题:
Unity 中似乎没有此功能。在 Unity 中,至少有一个图形工具可以帮助您进行屏幕旋转,它叫做屏幕旋转器。
答案2
在 Ubuntu 16.10 上,我可以通过以下思路禁用自动屏幕旋转:
- 我确认是该
iio-sensor-proxy
服务导致屏幕自动旋转。运行该服务systemctl stop iio-sensor-proxy
会停止屏幕旋转,直到下次启动。 - 由于某种原因,该
iio-sensor-proxy
服务是static
SystemD 服务,因此无法使用 禁用systemctl disable iio-sensor-proxy
,因此您必须将其删除才能永久禁用。但是,根据少量文档表明,该服务还控制环境光传感器和指南针,如果没有必要,我不想禁用它们。 - 使用该
apt-file
实用程序(默认情况下未安装),我通过运行确定了与此服务关联的软件包安装了哪些文件apt-file list iio-sensor-proxy
。它似乎安装了一个配置文件/lib/udev/rules.d/80-iio-sensor-proxy.rules
-udev
Ubuntu 的硬件管理子系统在哪里。那似乎是要查看的地方。 - 请注意,此文件包含一行。这似乎控制触发自动旋转的加速度计。通过在此行前面
SUBSYSTEM=="input", ACTION=="add", TAG+="systemd", ENV{ID_INPUT_ACCELEROMETER}=="1", ENV{SYSTEMD_WANTS}+="iio-sensor-proxy.service"
添加一个来注释掉它,以防止此服务读取加速度计。#
iio-sensor-proxy
重启后,应在系统仍在运行时禁用自动屏幕旋转。
显然,应该有一个 GUI 选项,更不用说有记录的执行方法了,但你就这样了。