如何从命令行更改亮度、颜色和清晰度?

如何从命令行更改亮度、颜色和清晰度?

我使用 SSH 和脚本控制我的电脑。如何从命令行更改亮度、颜色和清晰度?

尝试 1:失败

$ sudo redshift -t 5000:5000 -g .5
Cannot list GNOME panel applets.
Initialization of gnome-clock failed.
Trying next provider...
Latitude and longitude must be set.

尝试 2:失败

$ cat brightness 
20
$ cat max_brightness 
20
$ echo 1 | sudo tee /sys/class/backlight/acpi_video0/brightness 
1
$ echo 20 | sudo tee /sys/class/backlight/acpi_video0/brightness 

还有其他方法吗?

跟进http://jonls.dk/redshift/

[command]     [1000K to 10000K]       [effects 0.1 to 10.0]
|       |     /      /                /
^       ^     ^      ^                ^
redshift  -t  1000:1000   -l 0:0  -g .1; Dark
redshift  -t  1000:1000   -l 0.0  -g  5; Bright

答案1

如果你的显卡驱动程序支持它,那么你可以使用xrandr

以下命令列出当前配置:

xrandr --current --verbose

如果要更改输出的配置,则需要输出的名称。此名称是 输出的一部分xrandr --current,例如LVDS1

亮度可以像这样改变:

xrandr --output <outputname> --brightness 0.8

伽马(红色的绿色的蓝色的):

xrandr --output <outputname> --gamma 0.5:1.0:1.0

答案2

xrandr 不会在硬件层面上增加屏幕亮度(通过笔记本电脑显示屏亮度键更改的亮度)。正如 xrandr 手册所述:

- 亮度亮度

将当前连接到输出的 crtc 上的伽马值乘以指定的浮点值。对于过亮或过暗的输出很有用。但是,这只是软件修改,如果您的硬件支持实际更改亮度,您可能更喜欢使用 xbacklight。

相反,使用xbacklight来改变亮度:

xbacklight -get #get the current level
xbacklight -set *percent* #set brightness to a given percentage
xbacklight -inc *percent* #increase by a given percentage
xbacklight -dec *percent* #decrease by a given percentage

但是,由于这与使用笔记本电脑亮度键相同,因此不能超出 0-100% 的限制。如果您希望将屏幕调亮/调暗到超出该限制,则可以使用 xrandr 强制软件亮度级别:

xrandr --output LVDS1 --brightness 0.5

请注意,xrandr接受分数(0.0-1.0)同时xbacklight接受百分比(0-100)

答案3

对于笔记本电脑,我刚刚从以下网站了解到man xrandr

   --brightness brightness
          Multiply  the gamma values on the crtc currently attached to the
          output to specified floating value. Useful for overly bright  or
          overly  dim outputs.  However, this is a software only modifica‐
          tion, if your  hardware  has  support  to  actually  change  the
          brightness, you will probably prefer to use xbacklight.

所以我尝试了

xbacklight -get
xbacklight -set 70

并且它有效!

答案4

我使用此脚本同时设置所有显示器的亮度:

#!/bin/bash
if [ -z $1 ]; then
    echo "Usage: brighntess BRIGHTNESS"
    echo "BRIGHTNESS is a float (0.0-1.0)"
else
    xrandr --listmonitors | grep "^ " | cut -f 6 -d' ' | \
    xargs --replace=MONITOR xrandr --output MONITOR --brightness $1
fi

相关内容