什么过程负责自动屏幕旋转? 我想禁用它(16.04)
目前我正在尝试禁用负责处理我的Lenovo Yoga 2 Pro上自动屏幕旋转的过程,该过程默认启用。
到目前为止,我对包iio-sensor-proxy
和inotify-tools
进行了一些研究,但我无法弄清楚如何禁用它。
是否可以删除iio-sensor-proxy
以实现所需的行为?
或者这会以负面方式影响任何重要过程并导致exception?
配置文件存储在哪里?
提前致谢!
我已经找到了一种更实用的禁用屏幕旋转的方法,但它只适用于GNOME桌面环境,而不适用于Unity。
在GNOME中单击右上角的菜单。 打开“设置”菜单和锁定屏幕之间的按钮控制屏幕旋转。 单击按钮以禁用它。
此截图来自Fedora的类似问题 :
此function似乎不在Unity中。 至少可以帮助您在Unity中旋转屏幕的图形工具称为ScreenRotator 。
在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选项,更不用说记录的方式,但你去了。