现有答案存在问题

现有答案存在问题

我使用 xset 像这样关闭我的屏幕:

xset dpms force off

当有多个屏幕与同一个 X 显示器关联时,有什么方法可以关闭单个屏幕吗?

答案1

如果您使用的是原版 Ubuntu 桌面,则可以使用“系统”>“首选项”>“监视器”。这将显示所有监视器,单击要禁用的监视器,然后使用“开/关”单选按钮禁用该特定监视器。

如果您想从命令行执行此操作,您应该能够使用xrandr --output <name> --off它来禁用输出,这将触发显示器关闭电源。

答案2

现有答案存在问题

尽管七年前就有一个答案,并且获得了三票赞成,但该答案并未被接受,因为它会导致关闭显示屏上所有打开的窗口迁移到剩余的活动显示屏上。

基于软件的亮度

在笔记本电脑上,您可以通过控制 LCD 面板的显卡来控制亮度。使用外接电视和显示器时,您需要一个软件解决方案来将亮度调低至 0。将其调至零是最接近关闭屏幕同时保持外接显示器上的活动窗口的幻觉。

简洁版本

从命令行(无需脚本)使用:

$ xrandr | grep " connected"
HDMI-0 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 1107mm x 623mm
eDP-1-1 connected primary 1920x1080+3840+2160 (normal left inverted right x axis y axis) 382mm x 215mm
DP-1-1 connected 3840x2160+1920+0 (normal left inverted right x axis y axis) 1600mm x 900mm

这将显示 分配的显示器名称列表xrandr。现在,如果您想关闭DP-1-1亮度,请使用:

xrandr --output DP-1-1 --brightness 0

索尼电视 bash 脚本

这是我编写的三个脚本之一:

#!/bin/bash

# NAME: sony
# PATH: /mnt/e/bin
# DESC: Set brightness of Sony TV
# DATE: Dec 9, 2017.

if [[ $# -ne 1 ]]; then
    xrandr --verbose | grep -A5 "^HDMI-0" > /tmp/sony
    head -n1 /tmp/sony
    echo "$(tput setaf 1)" ; tail -n1 /tmp/sony ; echo "$(tput sgr0)"
    rm /tmp/sony
    echo 'One argument required for brightness level, e.g. "sony .63"'
    echo 'will set brightness level of Sony TV to level .63 using xrandr'
    exit 1
fi

xrandr --output HDMI-0  --brightness "$1"

要关闭显示屏,您可以使用sony 0

调用不带参数的脚本

当您调用不带参数的脚本时,它会以xrandr红色显示屏幕名称以及当前亮度。您可以通过修改此行将红色更改为其他颜色:

echo "$(tput setaf 1)" ; tail -n1 /tmp/sony ; echo "$(tput sgr0)"

setaf更改为之后1

  • 2对于绿色
  • 3橙色
  • 4蓝色等

修改并安装脚本

将出现的两次更改为与您的屏幕名称匹配。您可以在终端中HDMI-0输入以下内容来获取所有屏幕的列表。xrandr

将脚本放在路径下的目录中,例如:

/usr/local/bin/sony

使用以下方法将脚本标记为可执行:

sudo chmod a+x /usr/local/bin/sony

选择哪个目录:/usr/local/binvs~/bin

在中创建脚本时,/usr/local/bin必须使用sudo权限。更好的选择是使用目录~/bin,它是以下简写形式/home/YourUserID/bin

  • 创建目录~/bin
  • 关闭终端并重新打开它。
  • 新创建的目录现在位于您的路径中。
  • 您创建的所有脚本都~/bin可以使用您的常规权限来创建。
  • 为了能够执行脚本,您只需使用chmod +x而不是chmod a+xa意思是所有用户)

相关内容