我使用 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/bin
vs~/bin
在中创建脚本时,/usr/local/bin
必须使用sudo
权限。更好的选择是使用目录~/bin
,它是以下简写形式/home/YourUserID/bin
:
- 创建目录
~/bin
- 关闭终端并重新打开它。
- 新创建的目录现在位于您的路径中。
- 您创建的所有脚本都
~/bin
可以使用您的常规权限来创建。 - 为了能够执行脚本,您只需使用
chmod +x
而不是chmod a+x
(a
意思是所有用户)