如何在登录时阻止无人值守的屏幕旋转?

最近我在联想ThinkPad X230平板电脑上安装了Ubuntu 16.04。 它的效果非常好! 我只遇到两个小问题,两者都与可转换屏幕连接 。 这个令我烦恼的是这个问题的主题。

当我登录Unity时,显示方向进入纵向视图模式。 因此,我必须按屏幕旋转按钮才能返回横向视图模式。

LightDM中的默认视图是横向。 当我解锁Unity时,问题不存在,只有当我登录时。 登录Gnome时不存在此问题。 但主要是我使用Unity,所以我的问题是: 如何在登录后立即强制Unity保持横向视图模式?

更新1:

  • 我发现guest-session和新创建的用户都不存在这个问题。

  • 看起来某个应用程序会旋转显示。

  • 我已经尝试了一些基于这些问题答案的解决方案,但没有成功:

    • 不使用X服务器时如何旋转显示器?

    • 屏幕在Ubuntu 17.10上随机旋转

  • 只有xrandr -o normal作为启动应用程序中的命令放置是一种丑陋的解决方法。

更新2:

  • 原标题:登录后如何立即强制Unity保持横向视图?

最后,我设法了解问题的来源:

  • 平板电脑有一个内置的屏幕旋转按钮 。 我没有对此按钮进行任何设置。 它默认使用Unity / Gnome。

  • 当我按下此按钮时,屏幕顺时针旋转,当前屏幕方向存储在~/.config/monitors.xml文件中。 除非按下此按钮,否则此文件不存在,因此在访客会话中 (如问题中所述)问题不存在。

  • 当我按下按钮时,我不知道哪个“function”创建了这个文件。

  • 当我退出时, “某事”编辑文件~/.config/monitors.xml (如果它存在)并改变随机主页上的方向。 也许“它”试图将方向转回normal ,但“它”不能正常工作。 这就是问题所在。


要为特定用户修复此问题,只需添加以下Cron作业 – crontab -e

 @reboot sed -i 's#.*#normal#' "$HOME/.config/monitors.xml" >/dev/null 2>&1 
  • 用您想要的方向替换normal
  • 此命令将在~/.config/monitors.xml文件中用desired value替换something

不幸的是,只有在启动或重新启动系统时,此解决方法才能解决问题。 当您注销并登录时,问题可能会再次出现。 要解决此问题,您可以在启动应用程序中添加xrandr命令。

在此处输入图像描述