当前位置: 首页>>技术问答>>正文


如何通过终端将显示器设置重置为默认值?

, ,

问题描述

关于KDE(Kubuntu)上的多个显示器,我有一个棘手的问题。我有一台笔记本电脑,在家里,它连接到两个显示器 – VGA和HDMI。仅当内置笔记本电脑显示器被禁用时才起作用(至少我被告知)。

问题是,现在我把笔记本电脑拿走了,并且在没有连接外部显示器的情况下将其启动。系统会记住内置显示已禁用,因此即使它是唯一连接的监视器,它也会禁用它。显然,这使笔记本电脑几乎无法使用。通过Ctrl + Alt + F#切换到终端工作,我可以登录;即使客人工作正常。

问题是,我如何(重新)通过终端设置帐户的监控设置,因为我无法使用GUI?

谢谢

最佳解决方案

好问题。回答有点棘手,但这是一个尝试。

基本答案

实际上X11中包含一些重置可能性。您可以在/etc/X11/Xreset找到它。您可以使用Xreset目录(Xreset.d)粘贴在用户注销时自动运行的脚本。自述文件:

# 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)将脚本连接到启动器,该启动器设置双外部显示器。因此,您将注销,一切都将恢复正常,您将登录到您的笔记本电脑,点击发射器的显示器,享受生活。

更多信息

  1. 您可能需要查看sudo dpkg-reconfigure -phigh xserver-xorg以重置xserver或(可能更好地查看注释中建议的answer Mik)。

  2. 一个SuSE人写了一篇关于X的好的article

  3. 在一个已解决的bugreport中有人说:管理员可以删除/etc/X11/Xreset.d/中的脚本,以便在用户注销后运行。

  4. 这是文件的内容:

您可以在自己的系统上找到它。

#!/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:

次佳解决方案

每当我将我的Lubuntu笔记本电脑独占显示在电视上并在拔掉电源后将其唤醒时,我就会因为分配错误的分辨率而使用黑屏。和你一样的问题,我需要设置我可以通过Ctrl-alt-F1到达的TTY1虚拟终端的分辨率,但是xrandr似乎不起作用。在提出解决方案之前,我搜索了谷歌搜索结果的页面,所以我想我会分享。

关键是xrandr显然只适用于当前关注的显示器。因此,您必须在xrandr命令之前链接一个sleep命令,以便有时间使用Ctlr-alt-F7切换回X服务器,以便在那里执行命令。否则会出现类似xrandr: Configure crtc 0 failed的错误。

  1. 使用Ctrl-alt-F1打开虚拟终端并登录

要获取已连接屏幕的名称(并假设您的X服务器在:0上运行):

  1. $xrandr -d :0

要修改显示设置:

  1. $sleep 5; xrandr --output LVDS1 --auto -d :0

用你想要修改的输出替换LVDS1,并用你想要使用的任何xrandr参数替换.auto。

  1. 在您在上面的命令中设置的睡眠延迟过去之前,使用Ctrl-alt-F7切换到X服务器。

有一个更好的方法来做到这一点。但它的确有效。

解决方案的原始来源:http://www.lgqyc.com/server-14-04-3-lts-display-orientation/

Check out this comment可以改进我的解决方案(未经我自己测试)。

第三种解决方案

命令xrandr -s 0应重置终端中的显示。更多信息可在以下网站或终端的man xrandr找到。

https://linuxacademy.com/blog/linux/solution-resetting-your-screen-resolution-with-xrandr/

第四种方案

你试过吗(似乎)

DISPLAY=:0 xrandr --output LVDS1 --auto

来自不同的tty(例如tty1),

您可以通过Ctrl Alt F1访问并使用Ctrl Alt F7切换回(标准图形)tty7?

第五种方案

我还没有提到的一件事,但可能是关键的:如果您使用的是Thinkpad笔记本电脑,解决方案将很简单:Fn + F7。如果您使用的是其他制造商的笔记本电脑,很可能会有其他Fn-type键切换显示/屏幕输出(例如,投影仪,外部显示器,内部显示器;镜像,开/关和在BIOS级别下降(我假设 – 编辑:有关详细信息,请参阅How do Fn keys work?)。

因此,没有必要在Linux中重置任何东西,可以这么说。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/3028.html,未经允许,请勿转载。