我正在尝试配置我的 xflux 以使屏幕温度始终保持在 3200,但它似乎仅适用于夜间。
这是我输入的命令:
./xflux -l 52.5, -g -1.886 -k 3200
这只将其配置为夜间,有什么办法可以一直这样吗?
答案1
xflux
- 因为这就是你想要的
xflux
这种方式工作,并且不提供更改其行为的选项,你给它你的位置,它会根据所选位置的日出和日落情况,使用这个位置加上你的系统时间来确定何时应该改变颜色。我们当然不想摆弄系统时间,但我们何不直接假时间(sudo apt install faketime
)?
faketime 20 xflux -l 52.5, -g -1.886 -k 3200
xflux
会像八点钟一样开始。faketime
有一个“在绝对时间戳冻结时钟”功能,但不幸的是我没有让它与一起使用xflux
。我建议您改用 GNU coreutil timeout
:
timeout -k0 8h faketime 20 xflux -l 52.5, -g -1.886 -k 3200 -nofork
这将xflux
像八点钟一样开始,并在我们之后k
立即 ( 0
)开始。要工作,必须从选项开始。因为现在是凌晨四点,所以如果你不住在太阳升起较早的地方,它应该在整个运行时保持指定的色温。当然,您可以将位置和/或更改为适合您确切需求的地点和时间。要自动执行该过程,请像这样设置一个 cronjob:8
h
timeout
xflux
-nofork
xflux
faketime
crontab -e
0 */8 * * * DISPLAY=:0 timeout -k0 8h faketime 20 xflux -l 52.5, -g -1.886 -k 3200 -nofork
这将每八小时运行一次命令。timeout
八小时后也会将其关闭,这使得全天保持恒定的色温——不幸的是,每八小时会快速闪烁一次,我无法消除。
有一个托盘图标 GUI 叫做fluxgui · Github可通过此 PPA。
redshift
– 因为它为你的问题提供了更简单的解决方案
还有其他方法,例如redshift
(sudo apt install redshift
),可让您手动设置色温:
redshift -O 3200
它将一直有效,直到您使用 关闭它为止redshift -x
。该软件包redshift-gtk
( sudo apt install redshift-gtk
) 提供了一个托盘图标,允许您通过鼠标单击将其关闭。
答案2
支持 Redshift 解决方案...但如果您真的想坚持使用 xflux,您可以用位置来欺骗它,而不是用时间来欺骗它。只需选择一个与您的位置相对的位置 - 一个晚上的位置,而您的实际位置是白天。
答案3
不要强行使用不合适的工具,而是使用sct
。如
sct 3200
(自 2016 年 5 月起可用)
Description: Set screen color temperature
sct is a small C program to change the screen color temperature. It
can be used to reduce or increase the amount of blue light produced
by the screen.
.
sct sets the color temperature of the screen via xrandr like redshift.
Unlike redshift, it is only 80 lines of C and will not change the
screen temperature automatically.
答案4
跳过中间人,直接到源头。
我用:
xrandr --output HDMI2 --gamma 1.00000000:0.88267187:0.76921169 --brightness 0.8
我认为,与试图伪造时间或位置,或安装更多应用程序相比,这是一个更直接的解决方案。
Redshift 和 xfluxh 干扰了我的自定义亮度设置,并一直将其设置为 0.9!所以我不得不放弃它们。然后我编写了一个使用 xrandr 的小 PyQt 脚本(带有我的预设菜单等的系统托盘图标),从此我就很高兴了。
在写这个答案来全面解释它时,我意识到已经有一个详细的答案,其中包括可能的 rgb 三元组和亮度设置:
如何使用“xrandr --gamma”实现类似 Gnome“夜灯”的用法?
PS 查找您的显示名称:
xrandr --listactivemonitors