问题描述
我正在使用SSH和脚本控制PC。如何从命令行更改亮度,颜色和清晰度?
尝试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
最佳回答
如果您的图形卡驱动程序支持,则可以使用xrandr
。
以下命令列出了当前配置:
xrandr --current --verbose
如果要更改输出的配置,则需要输出的名称。此名称是xrandr --current
输出的一部分,例如LVDS1
。
亮度可以这样更改:
xrandr --output <outputname> --brightness 0.8
伽玛值:
xrandr --output <outputname> --gamma 0.5:1.0:1.0
次佳回答
xrandr不会在硬件级别(由笔记本电脑的显示亮度键更改的亮度)上增加屏幕亮度。正如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 modification, if your hardware has support to actually change the brightness, you will probably prefer to use 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)
第三种回答
对于笔记本电脑,我刚刚从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
而且有效!
第四种回答
如果您使用的是redshift,则需要为其指定纬度和经度,以便它知道一天中的何时更改。就像是
redshift -t 5000:5000 -l 55.7:12.6 -g .5
尽管可能会有点非常规地使用redshift :)
另外,它在没有sudo的情况下也可以正常工作。
第五种回答
我使用此脚本一次设置所有显示器的亮度:
#!/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