Answers:
我遇到了同样的问题,以及与拥有多个监视器相关的其他几个问题。
事实证明,这是Ubuntu的一个未解决的未解决错误。表示上述评论中发布的解决方案链接实际上并不包含完全有效的解决方案。请在此处查看打开的错误报告:https : //bugs.launchpad.net/ubuntu/+source/xorg-server/+bug/1425000
幸运的是,我花了很多时间来弄清楚如何配置它以及登录屏幕的方向,但这在另一个线程中得到了解释(我有四个监视器,登录方向错了,但是如果您也有这个,现在就全部排序了)问题,请参阅此处的解决方案:Unity / Unity-Greeter从何处加载X配置?)
对于无法设置默认显示和/或重新启动后重置默认显示的问题,一种快速简单的解决方案是放置一个简短的shell命令,该命令将主监视器更改为“启动应用程序”之一,它将自动每次登录时运行(这对于运行Unity显示管理器(这是默认显示管理器,可能还有其他DM)的任何最新Ubuntu都应该有效):
1)首先,您将需要安装arandr
以轻松找到监视器的显示名称,然后在shell中运行它:
sudo apt-get install arandr --upgrade
2)接下来,运行arandr
命令并查看正在加载的用户界面(由于您尚未进行任何配置,它可能会加载到错误的屏幕上)。
3)现在,记下哪个显示(名称应类似于HDMI-#代表hdmi或DP#代表显示端口,DVI -I-#代表数字视频,等等)。一旦您运行arandr,标签应该大而明显。您可以写下显示名称,或者只是保持arnadr
窗口打开,以便可以看到它,并在下一部分需要时启动新的外壳。我的默认显示在下一个示例中称为DP-4,但是毫无疑问,您的显示将有所不同,因此请注意下一步。
4)接下来,加载“启动应用程序”工具。您可以通过短划线并键入“启动应用程序”来找到它,Ubuntu将为您找到它,或者您可以在shell中运行以下命令:
gnome-session-properties
5)现在,从“启动应用程序”工具中,单击“添加”按钮并添加一个新程序,以在登录时运行。将弹出一个窗口,询问您要运行的内容,这是键入的内容:
名称:设置默认监视器
(注意:请输入您想要的任何名称)
命令: xrandr --output DP-4 --primary
(注意:将 DP-4
* 更改为您希望在运行时发现的默认显示器代码* arandr
)
评论:将其留空或稍后提醒自己会做什么。
重新启动以完全测试它是否有效,应该可以解决问题。如果不确定该命令是否会运行并想先对其进行测试,则可以从外壳程序运行xrandr --output DP-4 --primary
(再次替换DP-4
为默认监视器),然后启动一个窗口,看看它是否显示在正确的默认监视器上。但是,为了每次都保存并工作,以解决该错误,您需要将该命令添加到Startup Applications中。
更新:看来这是此解决方案的第二步/第2部分,目的是使其能够正常工作。在Ubuntu 16.04上进行了几天的测试后,我发现也有必要进行修改~/.config/monitors.xml
以指定主监视器。如果您未在其中设置主监视器,~/.config/monitors.xml
则它会显示某些窗口和/或程序遵循xrandr命令,而有些则不。要执行此步骤,您需要做的所有事情都是~/.config/monitors.xml
在类似的文本编辑器中打开的 gedit
,并将<primary>
标记设置yes
为您要用作主要显示监视器no
的所有其他显示器。步骤如下:
1)在Shell中,首先备份您的现有monitors.xml
文件,以便在编辑过程中出现意外情况时可以将其还原:
cp ~/.config/monitors.xml ~/.config/monitors_OLD.xml
2)打开monitors.xml
在gedit
更改配置设置标签:
gedit ~/.config/monitors.xml
3)现在,在gedit编辑器窗口内,找到标有您要成为主显示器的输出标签,然后在该<output>
块下,将<primary>
标签更改为yes
。 确保查看所有其他监视器,并将所有其他监视器的主标签更改为no
。
对我来说,做这两件事已经解决了我迄今为止遇到的所有情况下的问题。
除了etron的答案 -不适用于我之外,位于左侧的辅助屏幕(HDMI1)重启后仍会像是位于主屏幕(HDMI2)右侧一样。一切都正确在我的monitors.xml中。正如etron所描述的,对我有用的是,但是我在启动应用程序中输入了以下命令:
xrandr --output HDMI2 --pos 1920x0 --output HDMI1 --pos 0x0
这迫使我的主要(HDMI2)在右侧(水平偏移x = 1920),次要(HDMI1)在左侧(x = 0)
您还可以尝试在显示配置中关闭并打开当前的主监视器,如下所示:是否可以设置主监视器?
作业系统: Ubuntu Studio 16.04 LTS
问题是我的配置通过默认显示程序保存了我的显示设置,尽管在启动时未正确应用“主要”设置。
我的笔记本电脑在右侧,主屏幕在左侧,左显示器配置为主。
在启动时,它在右侧显示顶部工具栏,而os(鼠标)认为它在左侧,因此要使用顶部工具栏,我不得不盲目导航(估计)菜单项所在的位置在右侧屏幕上,在左侧使用我的鼠标。我可以通过在至少一个屏幕上更改旋转角度,应用设置然后再次将其放回来克服此问题。然后,顶部工具栏将正确设置为我的主(左)屏幕。
现在,下面的过程会自动为我执行此操作(非常感谢etron的帖子):
安装arandr可以轻松查找和配置您的显示名称。
sudo apt-get install arandr --upgrade
arandr
从外壳运行命令以配置和标识您的显示。
-对于布局,您可以拖动显示器。
-对于“活动”,“主要”,“分辨率”和“方向”设置,请转到菜单选项Outputs > %Display
。
设置完上述内容后,转到菜单选项,Layout > Save as:
然后~/.screenlayout/ScreenLayout.sh
在名称字段中输入。
~/.screenlayout/ScreenLayout.sh
在文本编辑器中编辑文件,然后复制(复制并粘贴)整个xrandr行。
现在,在第一行xrandr中修改一个值。
我将--rotate normal
选项值更改为--rotate left
。运行此脚本时,它将短暂更改左旋转,然后恢复正常,重新激活配置。与我如上所述手动执行的操作相同。
我的ScreenLaout.sh文件现在看起来像这样:
#!/bin/sh
xrandr --output LVDS-1 --mode 1680x1050 --pos 1680x0 --rotate left --output HDMI-1 --off --output VGA-1 --primary --mode 1680x1050 --pos 0x0 --rotate normal
xrandr --output LVDS-1 --mode 1680x1050 --pos 1680x0 --rotate normal --output HDMI-1 --off --output VGA-1 --primary --mode 1680x1050 --pos 0x0 --rotate normal
接下来,加载“启动应用程序”工具。您可以通过短划线并键入“启动应用程序”来找到它,Ubuntu将为您找到它,或者您可以在shell中运行以下命令:
gnome-session-properties
现在,从会话和启动工具中,导航到“应用自动启动”选项卡,单击“添加”按钮并添加一个新程序,以在登录时运行。将弹出一个窗口,询问您要运行什么,这是什么键入:
名称:设置默认监视器(注意:输入您想要的任何名称)
说明: 保留空白或稍后提醒自己。
命令: ~/.screenlayout/ScreenLayout.sh
重新启动以完全测试它是否有效。
注意:如果不确定命令是否可以运行并要先对其进行测试,则可以手动运行脚本,例如,在我的情况下,我将~/.screenlayout/ScreenLayout.sh
在shell中运行该脚本
。另外,如果您希望使用键绑定来设置多个配置,我相信您可以在arandr内完成此操作,尽管它需要Metacity,但我尚未对其进行调查,因此您可以自己解决。