Bar*_*den 6 window-manager x11
是否有一种通用的方法可以在无聊的 X 会话上重置显示?假设您在进入睡眠状态后打开笔记本电脑屏幕,并且显示屏是空白的,或乱七八糟的。您可以按下ctrlaltf1并查看 X 会话正在运行,但无论出于何种原因,您都看不到屏幕。
对于 borked 终端,您可以键入reset或stty sane。xrefresh将重新绘制屏幕,但这无助于解决由显卡引起的显示问题。
在 Gnome 3 中,gnome --replace会这样做,但我正在运行 XFCE4,老实说,这是一个全球性问题......是否有一个xdg-*或x-*包装器?我正在寻找可以在我使用的任何平台上设置键绑定的东西。
没有类似的机制,因为原因完全不同。
乱码的文本终端来自多个源都写入终端,而它们之间没有协调。因此,您最终会得到不属于它的文本,这可以通过使您想要查看其文本的应用程序重新显示它想要的内容来解决。xrefresh是那个的模拟。它很少需要,因为 X 服务器已经管理应用程序之间的协调:每个应用程序应该只在自己的窗口中绘制。xrefresh仅当应用程序表现不佳时才需要 - 与文本终端中的情况相反,在那里没有办法表现得更好。
至于相当于stty sane恢复输入设置,这通常不适用,因为应用程序不应该修改全局参数——这里再次说明,每个应用程序都应该只搞乱自己的窗口。有一些不好的事情出现,比如一个应用程序抓住指针或键盘(xdotool key XF86Ungrab或Ctrl+ Alt+Keypad/如果启用)。
如果由于驱动程序错误导致显示器保持空白或混乱,则没有通用的恢复机制。任何认真编写过程序的人都知道,在出现 bug 之后没有完全通用的恢复机制,因为从定义上来说,bug 是一些意想不到的东西,而且由于在检测到 bug 后您无法预测系统的状态,因此无法确定无论您做什么,都将按预期进行恢复。从错误中恢复的唯一可靠方法是向上级请求:例如,如果在进程中检测到错误,则将其杀死(由于进程隔离,错误应限制在进程中)并启动一个新实例。如果在内核中检测到错误,则更高的权限将是硬件——重新启动计算机。在显示驱动程序错误的情况下,通常受影响的只是 GPU 的状态,因此重置 GPU 就足够了。据我所知,没有通用的方法可以告诉 X.org 驱动程序重置 GPU 并根据他们的喜好重新初始化它。您可以尝试以下几种方法,但它们并不总是有效:
尝试禁用所有显示xrandr,例如
export DISPLAY=:0
xrandr
# see what displays are listed, e.g. “DVI-0 connected …”
xrandr --output DVI-0 --off
xrandr --output DVI-0 --auto
Run Code Online (Sandbox Code Playgroud)
这偶尔会有所帮助,但不是经常,因为通常错误位于驱动程序和 GPU 之间,不受显示器的影响。
xrefresh没有帮助的地方提供帮助,所以我怀疑如果有gnome3 --replace帮助,那是因为它重新启动了 Compiz。