改变外屏的屏幕亮度

Ad *_*tum 48 multiple-monitors brightness hdmi 16.04

我在笔记本电脑上安装了 Ubuntu 16.04 LTS 并通过 HDMI 电缆将其连接到外部显示器。我可以轻松更改笔记本电脑屏幕的亮度,但这不会影响外接显示器的亮度。有没有办法改变外接显示器的亮度?

小智 56

通过命令行很容易做到。首先,在终端中输入以下命令来识别您的屏幕:

xrandr -q | grep " connected"
Run Code Online (Sandbox Code Playgroud)

你会得到这样的东西:

LVDS1 connected 1366x768+0+0 (normal left inverted right x axis y axis) 344mm x 194mm

VGA1 connected primary 1366x768+1366+48 (normal left inverted right x axis y axis) 413mm x 234mm
Run Code Online (Sandbox Code Playgroud)

LVDS1 与笔记本电脑的内置显示器有关。我正在使用外接显示器(在这种情况下为 VGA1)。如果你想降低外屏的亮度,你只需输入这个,例如:

xrandr --output VGA1 --brightness 0.63
Run Code Online (Sandbox Code Playgroud)

  • 我很确定这不会使屏幕的背光变暗。相反,它会降低每个像素的亮度。因此,您会失去对比度并浪费更多电量。 (4认同)
  • 它对我来说很完美。如果能够将此命令与按键绑定来更改笔记本电脑的亮度,那就太好了。 (3认同)
  • 一段时间后它会变回自身的原始值 (2认同)
  • 即使我关闭红移,它也会在几秒钟后恢复到原始状态。 (2认同)

nh2*_*nh2 31

硬件控制方案(无软件调光)

到目前为止,有两种软件可以进行硬件调光:

  • ddccontrol (CLI 和 GUI)
  • ddcutil (CLI 和 GUI)
  • ddcci-backlight (由 GNOME 和其他人接取的驱动程序)

工具一: ddccontrol

ddccontrol(注意 double cc)是一种工具,可以以完全相同的方式控制许多显示器的设置,它们的屏幕显示/硬件按钮控制它们。

它可以在 Ubuntu(手册页)中通过apt install ddccontrol.

gddccontrol 是它的图形用户界面: apt install gddccontrol

两者都需要以 root 身份运行:

  • sudo ddccontrol 对于命令行工具
  • gksudo gddccontrolpkexec gddccontrol用于 GUI 工具。

(基于@Ad Infinitum's 评论中的@Taz8du29' 评论(但注意和c名称中的额外内容。)

工具2:ddcutil/ddcui

替代ddccontrolddccontrol相当无人维护的时候制作

它可以在 Ubuntu(手册页)中通过apt install ddcutil.

您可以将它们作为root或安装i2c-tools并将您的用户添加到组中i2c以在没有 root 的情况下执行此操作(解释)。

它还有一个名为ddcui此处为屏幕截图)的 GUI 。

如果您想将亮度降低到显示器 OSD 或 允许的最低级别以上ddcutil getvcp 10,您可以尝试使用 统一降低 RGB 级别ddcutil getvcp 16/18/1A

工具3:ddcci-backlight驱动程序

此 ddcci 驱动程序将所有支持 ddcci 的监视器集成到 sysfs 中,包括/sys/class/backlight/. 因为 ie GNOME 将使用该界面来设置亮度,所以您无需额外的 UI 或终端即可设置亮度。

它在 Ubuntu 上可用: apt install ddcci-dkms

  • 哇,这改变了我的生活 (8认同)
  • ddcutil 和 ddcui 立刻让我爱上了它。谢谢。 (3认同)
  • 甚至还有一个 Gnome 扩展可以使用 ddcutil 控制亮度:https://extensions.gnome.org/extension/2645/brightness-control-using-ddcutil/ (2认同)

See*_*uth 16

前面提到的亮度控制器现在是第 2 版。最初的简单版本可使用以下步骤获得,最多支持 4 台显示器。测试在 Ubuntu 14.04 和 16.04 上没有问题。

sudo add-apt-repository ppa:apandada1/brightness-controller
sudo apt-get update
sudo apt-get install brightness-controller-simple
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

享受!

  • 在 Ubuntu 18.04 上运行良好。允许我通过显示器上的按钮使外部变暗。 (4认同)
  • 我注意到显示器的内置菜单仍然是亮的。这可能意味着该软件并不真正发出 HDMI 信号,而是在屏幕内容的顶部绘制一个灰色矩形。 (3认同)

Ad *_*tum 7

我终于找到了一个包,可以调节外接显示器的亮度,它是通过HDMI连接的。

该软件包称为亮度控制器(具有更新界面的版本 2)

为了安装它,首先将 PPA 存储库添加到您的系统并更新您的软件包列表:

sudo add-apt-repository ppa:apandada1/brightness-controller
sudo apt update
Run Code Online (Sandbox Code Playgroud)

然后,您可以像往常一样使用apt

sudo apt install brightness-controller
Run Code Online (Sandbox Code Playgroud)

安装后,主屏幕是第一屏,辅助是外接显示器。

![在此处输入图片说明


bei*_*arz 7

如果可能,您应该使用硬件设置亮度。

除了nh2 的答案之外,还有一个ddcci 驱动程序,可以通过接口提供 ddcci 支持监视器的硬件亮度/sys/class/backlight/。可以通过以下方式安装:

sudo apt install ddcci-dkms
Run Code Online (Sandbox Code Playgroud)

这样 gnome 的亮度控制也可以设置外部显示器的亮度。


Win*_*nix 5

xrandr您可以使用此 bash 脚本逐步向上或向下调整亮度,而不是插入亮度级别。

将下面的 bash 脚本复制到名为的文件中bright

然后将其标记为可执行chmod a+x bright

bash脚本

#!/bin/bash

MON="DP-1-1"    # Discover monitor name with: xrandr | grep " connected"
STEP=5          # Step Up/Down brightnes by: 5 = ".05", 10 = ".10", etc.

CurrBright=$( xrandr --verbose --current | grep ^"$MON" -A5 | tail -n1 )
CurrBright="${CurrBright##* }"  # Get brightness level with decimal place

Left=${CurrBright%%"."*}        # Extract left of decimal point
Right=${CurrBright#*"."}        # Extract right of decimal point

MathBright="0"
[[ "$Left" != 0 && "$STEP" -lt 10 ]] && STEP=10     # > 1.0, only .1 works
[[ "$Left" != 0 ]] && MathBright="$Left"00          # 1.0 becomes "100"
[[ "${#Right}" -eq 1 ]] && Right="$Right"0          # 0.5 becomes "50"
MathBright=$(( MathBright + Right ))

[[ "$1" == "Up" || "$1" == "+" ]] && MathBright=$(( MathBright + STEP ))
[[ "$1" == "Down" || "$1" == "-" ]] && MathBright=$(( MathBright - STEP ))
[[ "${MathBright:0:1}" == "-" ]] && MathBright=0    # Negative not allowed
[[ "$MathBright" -gt 999  ]] && MathBright=999      # Can't go over 9.99

if [[ "${#MathBright}" -eq 3 ]] ; then
    MathBright="$MathBright"000         # Pad with lots of zeros
    CurrBright="${MathBright:0:1}.${MathBright:1:2}"
else
    MathBright="$MathBright"000         # Pad with lots of zeros
    CurrBright=".${MathBright:0:2}"
fi

xrandr --output "$MON" --brightness "$CurrBright"   # Set new brightness

# Display current brightness
printf "Monitor $MON "
echo $( xrandr --verbose --current | grep ^"$MON" -A5 | tail -n1 )
Run Code Online (Sandbox Code Playgroud)
  • 更改MON="DP-1-1"为您的显示器名称,即MON="eDP-1-1"
  • 更改STEP=5您的步长值,例如STEP=2不太明显

使用以下命令调用脚本:

  • bright Upbright +按步长值增加亮度
  • bright Downbright -按步长值降低亮度
  • bright(不带参数)获取当前亮度级别

希望 bash / shell 命令可以轻松地通过谷歌搜索进行教育,但如果有任何问题,请随时提出:)