我遇到了一个关于 KDE (Kubuntu) 上多显示器的棘手问题。我有一台笔记本电脑,在家里,它连接到两个显示器 - VGA 和 HDMI。这只有在内置笔记本电脑显示器被禁用时才有效(至少有人告诉我)。
问题是,现在我把笔记本电脑拿走,并在没有连接外接显示器的情况下启动它。系统记住内置显示器已被禁用,因此即使它是唯一连接的显示器,它也会禁用它。显然,这使得笔记本电脑几乎无法使用。通过 ++ 切换到终端Ctrl有效Alt,F#我可以登录;甚至 Guest 也可以正常工作。
问题是,由于我无法使用 GUI,如何通过终端(重新)设置帐户的监视器设置?
谢谢
答案1
该命令应重置终端中的显示。更多信息可在以下网站或终端中xrandr -s 0
找到。man xrandr
https://linuxacademy.com/blog/linux/solution-resetting-your-screen-resolution-with-xrandr/
答案2
当我将 Lubuntu 笔记本电脑置于睡眠状态(它只在电视上显示)并在拔下电源后将其唤醒时,屏幕会变黑,因为分配了错误的分辨率。和你一样,我需要从 TTY1 虚拟终端设置分辨率,我可以用 Ctrl-alt-F1 访问该终端,但 xrandr 似乎不起作用。我搜索了多页 Google 搜索结果才找到解决方案,所以我想分享一下。
关键是 xrandr 显然只在当前聚焦的显示器上工作。因此,您必须在 xrandr 命令之前链接一个 sleep 命令,以便有时间使用 Ctrl-alt-F7 切换回 X 服务器,以便在那里执行命令。否则,您会收到类似这样的错误xrandr: Configure crtc 0 failed
。
- 使用 Ctrl-alt-F1 打开虚拟终端并登录
要获取已连接屏幕的名称(假设您的 X 服务器正在运行:0
):
$xrandr -d :0
要修改显示设置:
$sleep 5; xrandr --output LVDS1 --auto -d :0
用您想要修改的输出替换 LVDS1,并用您想要使用的任何 xrandr 参数替换 --auto。
- 在以上命令中设置的睡眠延迟结束之前,使用 Ctrl-alt-F7 切换到 X 服务器。
一定有更好的方法来实现这一点。但它确实有效。
解决方案的原始来源:http://www.lgqyc.com/server-14-04-3-lts-display-orientation/
看看这个评论以便对我的解决方案进行可能的改进(我自己没有测试过)。
答案3
好问题。回答起来有点棘手,但可以尝试一下。
基本答案
其实有一点X11 中包含重置可能性。您可以在 找到它/etc/X11/Xreset
。您可以使用 Xreset 目录 ( Xreset.d
) 粘贴用户注销时自动运行的脚本。README 文件:
# Scripts in this directory are executed as root when a user log out from
# a display manager using /etc/X11/Xreset.
# The username of the user logging out is provided in the $USER environment
# variable.
因此,您可以 a) 添加重置脚本/etc/X11/Xreset.d
,b) 制作一个附加到启动器的脚本,用于设置双外接显示器。这样,您就可以注销,一切都会恢复正常,您可以登录笔记本电脑,点击显示器的启动器,享受生活。
更多信息
您可能需要研究
sudo dpkg-reconfigure -phigh xserver-xorg
如何重置 xserver 或者(最好查看回答Mik 在评论中建议)。一个 SuSE 人写了一个很好的文章关于 X。
在一个已解决错误报告有人说:
管理员可以将脚本放在 /etc/X11/Xreset.d/ 中,以便在用户注销后运行。
这是该文件的内容:
您可以在自己的系统上找到它。
#!/bin/sh
#
# /etc/X11/Xreset
#
# global Xreset file -- for use by display managers
# $Id: Xsession 967 2005-12-27 07:20:55Z dnusinow $
set -e
PROGNAME=Xreset
SYSSESSIONDIR=/etc/X11/Xreset.d
if [ ! -d "$SYSSESSIONDIR" ]; then
# Nothing to do, exiting
exit 0
fi
# use run-parts to source every file in the session directory; we source
# instead of executing so that the variables and functions defined above
# are available to the scripts, and so that they can pass variables to each
# other
SESSIONFILES=$(run-parts --list $SYSSESSIONDIR)
if [ -n "$SESSIONFILES" ]; then
set +e
for SESSIONFILE in $SESSIONFILES; do
. $SESSIONFILE
done
set -e
fi
exit 0
# vim:set ai et sts=2 sw=2 tw=80:
答案4
有一件事我还没有提到,但可能很关键:如果你使用ThinkPad笔记本电脑,解决方案很简单:Fn+ F7。如果你使用的是其他制造商的笔记本电脑,很有可能会有一些其他的 Fn 型键,可以在 BIOS 级别切换显示/屏幕输出(例如,投影仪、外接显示器、内置显示器;镜像、开/关等)(我假设 -编辑: 看Fn 键如何工作?更多详细信息)。
因此可以说不需要在 Linux 中重置任何东西。