答案1
我也遇到了同样的问题,以及其他几个与多台显示器相关的问题。
事实证明,这是 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-# 表示显示端口,数字视频接口-I-# 表示数字视频等)。运行 arandr 后,标签应该很大且明显。您可以记下显示名称,也可以保持arnadr
窗口打开,以便您可以看到它,并在需要时启动新 shell 以进行下一部分。我的默认显示名为DP-4在下一个例子中使用,但毫无疑问你的会有所不同,因此请注意下一步。
4) 接下来,加载“启动应用程序”工具。您可以通过进入 dash 并输入“启动应用程序”来找到它,Ubuntu 会为您找到它,或者您可以在 shell 中运行此命令:
gnome-session-properties
5)现在,在启动应用程序工具中,单击“添加”按钮并添加一个在登录时运行的新程序。将弹出一个窗口询问您要运行什么,请输入以下内容:
名称:设置默认监视器
(注意:输入任意名称)
命令:
xrandr --output DP-4 --primary
(注:改变
DP-4
*对于您发现的任何监视器代码,您希望它在运行时成为默认显示*arandr
)评论:留空或者稍后提醒自己这可以做什么。
重新启动以全面测试它是否有效,这应该可以解决问题。如果您不确定该命令是否有效并想先测试它,您可以从 shell 运行xrandr --output DP-4 --primary
(再次替换DP-4
为您的默认显示器),然后启动一个窗口,看看它是否显示在正确的默认显示器上。但为了每次都能保存并正常工作,为了解决该错误,您需要将该命令添加到启动应用程序。
更新:看来这是此解决方案的第二步/第 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
。
对我来说,做这两件事已经解决了迄今为止我遇到的所有情况下的问题。
答案2
操作系统:Ubuntu Studio 16.04 LTS
问题是我的配置通过默认显示程序保存了我的显示设置,但在启动时没有正确应用“主要”设置。
我的笔记本电脑在右边,主屏幕在左边,我将左边的显示器配置为主显示器。
启动时,顶部工具栏显示在右侧,而操作系统(鼠标)认为它显示在左侧,因此要使用顶部工具栏,我必须通过查看右侧屏幕并使用左侧鼠标盲目导航(估计)到菜单项的位置。我可以通过更改至少一个屏幕上的旋转、应用设置,然后重新设置来解决这个问题。然后顶部工具栏将正确设置为我的主要(左侧)屏幕。
下面的过程现在会自动为我完成此操作(非常感谢 etron 的帖子):
安装 arandr 以便轻松查找和配置您的显示名称。
sudo apt-get install arandr --upgrade
arandr
从 shell运行命令来配置和识别您的显示器。——
对于布局,您可以拖动显示器。——
对于活动、主要、分辨率和方向设置,请转到菜单选项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
接下来,加载“启动应用程序”工具。您可以通过进入 dash 并输入“启动应用程序”来找到它,Ubuntu 会为您找到它,或者您可以在 shell 中运行此命令:
gnome-session-properties
现在,从会话和启动工具中,导航到“应用程序自动启动”选项卡,单击“添加”按钮并添加一个在登录时运行的新程序。将弹出一个窗口询问您要运行什么,以下是您要输入的内容:
姓名:设置默认监视器(注意:输入您想要的任何名称)
描述: 留空或者稍后提醒自己这可以做什么。
命令:~/.screenlayout/ScreenLayout.sh
重新启动以全面测试其是否有效。
笔记:如果您不确定该命令是否有效并想先测试它,您可以手动运行脚本,即在我的情况下,我会
~/.screenlayout/ScreenLayout.sh
在 shell 中运行它。此外,如果您更喜欢使用键绑定来设置多个配置,我相信您可以在 arandr 中执行此操作,尽管它需要 Metacity,我还没有调查过,所以您只能自己处理了。
答案3
此外etron 的回答- 对我来说这不起作用,我的辅助屏幕 (HDMI1) 位于左侧,在重启后仍然会像在主屏幕 (HDMI2) 的右侧一样运行,即使我的 monitors.xml 中一切都正确。对我有用的是 etron 描述的,但我在启动应用程序中输入了以下命令:
xrandr --output HDMI2 --pos 1920x0 --output HDMI1 --pos 0x0
这会强制将我的主 (HDMI2) 置于右侧(水平偏移 x=1920),将辅助 (HDMI1) 置于左侧(x=0)
答案4
您还可以尝试在显示配置中关闭并打开当前主显示器,如下所示:我能设置主显示器吗?