我经常需要将笔记本电脑从一个工作地点移动到另一个工作地点。当我这样做时,Ubuntu 会通过更改显示器设置来响应两个事件:
- 移除/连接 VGA 线
- 关闭/打开笔记本电脑盖子
虽然移除 VGA 电缆可以满足我的需要(单屏,如果连接了外接屏幕则为最高原始分辨率;否则为笔记本电脑的最高分辨率),但笔记本电脑关闭/打开盖子的响应并不好。
每次我合上或打开盖子时,Ubuntu 都会重新配置显示器设置。现在当我合上盖子时...屏幕会变黑几秒钟,然后切换到克隆,我的笔记本电脑屏幕被禁用。重新打开会导致...屏幕短暂变黑,然后外接显示器被用作桌面扩展。
更新:最近情况发生了一些变化,现在的行为更加可预测。合上盖子会切换到单屏,打开会切换到双屏(不是克隆)。我的问题仍然准确:见下文。
Ubuntu 想得太多了。我的第一个也是最重要的问题是:有什么办法可以让 Ubuntu 忽略盖子关闭事件?
理想情况下(或者当没有办法解决上述问题时)我想改变如何它处理屏幕重新配置。为什么 Ubuntu 会在外部、克隆和单屏之间切换屏幕配置?我不能只将其配置为在单屏模式下始终使用外部显示器(如果存在)吗?
请注意,之前也曾有人问过类似的问题(最值得注意的是这个),但这些可能被错误地关闭了。
任何想法都非常受欢迎,我不介意尝试一下看看是否可行。
答案1
有什么办法可以让 Ubuntu 忽略盖子关闭事件?
lidbtn
Lid 事件由中的文件触发/etc/acpi/events/
,其中包含两行活动行:
事件=按钮[ /]lid action=/etc/acpi/lid.sh – 在开头用 # 注释掉
您可以通过用 a 注释掉第二行#
然后重新启动来忽略盖子打开/关闭事件。
我想改变它处理屏幕重新配置的方式。
您可以查看并尝试修改该文件/etc/acpi/lid.sh
及其引用的函数/命令。
但(重大警告):如果您的笔记本电脑 BIOS 使用盖子关闭/打开来打开/关闭内部/外部视频输出端口,那么这超出了 OS ACPI 事件处理程序的权限。
答案2
此行为是 Gnome 的功能,由 dconf 设置控制。您可以通过dconf-editor
或直接使用命令行来更改它:
gsettings set org.gnome.settings-daemon.plugins.xrandr default-monitors-setup <value>
描述如下:
摘要:是否在启动后关闭特定显示器
“clone” 将在所有显示器上显示相同的内容,“dock” 将关闭内部显示器,“do-nothing” 将使用默认的 Xorg 行为(在最新版本中扩展桌面)。默认的“follow-lid”将根据盖子是打开还是关闭在“do-nothing”和“dock”之间进行选择。
因此,如果您只想在连接时使用外接显示器,请dock
使用<value>
。
如果您希望两个显示器始终工作,无论盖子是否关闭,请使用do-nothing
。 (我经常暂时关闭盖子,这样它就不会照进我的暗室,我不希望所有窗口都迁移到外部显示器。)
最后,如果您想使用笔记本电脑屏幕,但只在打开时使用,请使用follow-lid
。(用例:桌子上的可用空间量各不相同,有时您必须将笔记本电脑放在显示器后面而不是旁边。)
答案3
我不能将其配置为在单屏模式下始终使用外接显示器吗?
我可以回答这部分。我在 wayland 上运行 ubuntu 17.10。在 中gnome-control-center -> device -> display
,您可以选择single display
仅$external_monitor
启用,然后单击“应用”。这将生成一个$HOME/.confg/monitors.xml
文件。该文件在连接时修复显示排列$external_monitor
,并在断开连接后在内部监视器上切换。更好的是,您可以将相同的内容放入monitors.xml
中/var/lib/gdm3/.config/
,在这种情况下,同样的事情也适用于 GDM。