我知道如何更改亮度和伽玛xrandr
:
xrandr --output eDP1 --brightness 0.8 --gamma "0.90:0.85:0.80"
但如何改变饱和度,即减少颜色量并使光谱更接近黑/白?
我需要一种方法来在命令行上更改此设置,而不是在显示器的硬件设置上。
我使用的是 Debian 10
答案1
最方便的方法(截至 2022 年)是通过名为vibrant-cli
(这应该适用于任何X11
设置)。语法是:
充满活力的-cli 输出 [饱和度]
Get or set saturation of output.
OUTPUT is the name of the X11 output. You can find this by running xrandr.
SATURATION is a floating point value between (including) 0.0 and (including) 4.0.
0.0 or 0 means monochrome
1.0 or 1 is normal color saturation (100%)
if empty the saturation will not be changed
例如,为了将笔记本电脑上的饱和度降低到 30%,我会运行
充满活力的 cli eDP-1 0.3
libvibrant version 1.0.2
Saturation of eDP-1 is 0.300000
libvibrant
识别您的图形芯片组并尝试通过该特定 GPU 的驱动程序支持的已知方法更改饱和度。如果您的硬件/驱动程序不支持更改颜色鲜艳度,您将收到错误消息。
请注意,DRM(直接渲染管理器)层的颜色管理是相当近期的:
Color Manager framework defines a color correction property for color space
transformation and Gamut mapping.
This property is called CTM (Color Transformation Matrix).
This patch adds a new structure in DRM layer for CTM. This structure can be used
by all user space agents to configure CTM coefficients for color correction.
因此,为了确定您的平台是否支持通过开源驱动程序1(i915
和amdgpu
)进行颜色管理,您将运行xrandr --properties
.如果没有提及CTM
或如果它说,CTM: 0
那么您的设置不支持通过CTM
(也许通过其他方法,请参阅有关 nVidia 的帖子底部的注释)更改饱和度。
如果你有像这样的行CTM: 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1
用于eDP-1
输出:
..................
eDP-1 connected primary.....
..................
link-status: Good
supported: Good, Bad
CTM: 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0
0 1
CONNECTOR_ID: 78
supported: 78
那么您的设置支持颜色管理,即可以设置属性C
olor T
ransform M
atrix...这仍然是一项工作vibrant-cli
,除非您想自己进行数学计算...例如,将饱和度设置为0
(灰度)命令是
xrandr --output eDP-1 --set CTM '1431655765,0,1431655765,0,1431655765,0,1431655765,0,1431655765,0,1431655765,0,1431655765,0,1431655765,0,1431655765,0'
1:我只能访问这两个平台(而且我还没有尝试过 AMD 专有驱动程序 - 不知道它是否支持CTM
)。对于nVidia
GPU,显然有一个名为 的属性digital vibrance
可以通过(使用 nVidia 驱动程序时)进行设置英伟达控制面板或在终端运行例如nvidia-settings -a [gpu:0]/DigitalVibrance[DFP-1]=235
(请参阅手册以了解正确的语法)。我不知道是否nouveau
支持相同的属性......