如何通过 SSH 的命令行使屏幕空白?

如何通过 SSH 的命令行使屏幕空白?

我需要一种方法来通过使用 SSH 连接在控制台中运行命令来显示黑屏。显示器不应进入待机状态,我只需要一个黑屏来隐藏屏幕上的所有内容。屏幕应该是黑色的,直到我发出另一个命令来显示屏幕内容。

补充:如果该命令可以在 Ubuntu、Lubuntu 和 Xubuntu 中运行就好了。

补充 2:我还有一台需要消隐的投影仪。我想使用 SSH 连接到我的服务器并显示空白屏幕。如果我尝试关闭投影仪,屏幕上会显示“无信号”。

答案1

简短回答:

xrandr --output DVI-I-1 --brightness 0

DVI-I-1你的屏幕名称是哪里?

另一种方式:

xrandr --output DVI-I-1 --brightness 1

重新设置为正常亮度。

获取屏幕名称

只需运行以下命令:

xrandr

在输出中,您将在行中找到屏幕的名称,包括connected

小脚本可以使屏幕变暗或恢复正常

该脚本可用于将(所有)连接的屏幕设置为黑色,反之亦然。该脚本会自动找到您的屏幕。

#!/usr/bin/env python3
import subprocess
import sys

arg = sys.argv[1]

screens = [l.split()[0] for l in subprocess.check_output("xrandr").decode("utf-8").splitlines()
           if " connected" in l]

val = "0" if arg == "black" else "1"
for s in screens:
    subprocess.Popen(["xrandr", "--output", s, "--brightness", val])

跑步

  • 将脚本复制到一个空文件中,另存为set_black.py
  • 使用以下方式运行:

    python3 /path/to/set_black.py black
    

    使屏幕变暗,或者

    python3 /path/to/set_black.py normal
    

    将亮度再次设置为正常。


虽然上述答案应该可以在所有 Ubuntu 发行版上正常运行本地,问题原来是关于 ssh/remote 的(该信息被编辑到问题中)。

如果是远程情况,我们需要$DISPLAY正确设置变量。如果显示变量是:0,我们需要使用以下命令运行脚本:

DISPLAY=:0 python3 /path/to/script.py black

但变量不一定是:0U&L 上的这篇文章DISPLAY似乎在远程机器上设置了一个非常好的变量。

答案2

编辑:自从我提供此答案以来,问题已经更改。我将保留此答案,因为它提供了一些可能有用的信息。

如果你指的是字符单元虚拟控制台,那么请安装vlock

sudo apt-get -y install vlock

然后您可以关闭并锁定您的虚拟控制台:

vlock

解锁控制台时,屏幕不会恢复。如果您不想丢失屏幕内容,我建议登录第二个控制台;当您想要锁定屏幕时,请移至第二个控制台并输入

vlock -a

这将锁定所有控制台并阻止控制台切换。解锁控制台后,您可以切换回主工作控制台并发现屏幕内容完好无损。

答案3

只需运行:

gnome-screensaver-command -a

笔记:除非您在系统设置中禁用“锁定”选项,否则这也会调用锁屏:

在此处输入图片描述

答案4

超级用户的这个答案也许也会有所帮助:https://superuser.com/a/374661/958509
它在本地终端上运行,但我不确定是否可以通过 ssh 运行。(至少在 Ubuntu 20 上它不需要安装新包即可运行)

相关内容