我发现勒克斯当我在 SU 上偶然发现有人在另一个问题中提到它时,我就一直在使用它,因为它是一款简单、原创、实用的软件。
然而,有时我发现我想在晚上禁用它,以便编辑照片或执行其他颜色敏感的任务。同样,有时我也想在白天启用它,当我关上房间的窗户,让房间完全变暗,为我的午休(在我的家乡,我们几乎每天都会小睡一会儿)。
考虑到这一点,我意识到非自动版的 f.lux 才是最适合我需求的。我知道有一个选项可以在晚上暂停它,当它自动启动时,但我希望它不启动,除非我告诉它。
所以,我给你留了一张截图,(如果你看到和我一样的东西)你会注意到没有可以随意激活/停用的选项。有人知道怎么做吗?
也许 Ubuntu 上的 f.lux 有不同的 GUI?
答案1
我也遇到了这个问题。红移是一个开源工具,具有 f.lux 的功能,并能够手动设置色温。
f.lux 仅在认为您所在的地方是夜晚时才会改变色温,因此我还编写了一个 Python 脚本来欺骗 f.lux 在白天运行。它会计算地球上的相对点,并向 flux 提供这些坐标。
要使用它,您需要将此代码保存在文件中,例如flux.py
在您的主目录中。然后,打开终端并使用 运行该文件python ~/flux.py
。
#!/usr/bin/env python
# encoding: utf-8
""" Run flux (http://stereopsis.com/flux/)
with the addition of default values and
support for forcing flux to run in the daytime.
"""
import argparse
import subprocess
import sys
def get_args():
""" Get arguments from the command line. """
parser = argparse.ArgumentParser(
description="Run flux (http://stereopsis.com/flux/)\n" +
"with the addition of default values and\n" +
"support for forcing flux to run in the daytime.",
formatter_class=argparse.RawTextHelpFormatter)
parser.add_argument("-lo", "--longitude",
type=float,
default=0.0,
help="Longitude\n" +
"Default : 0.0")
parser.add_argument("-la", "--latitude",
type=float,
default=0.0,
help="Latitude\n" +
"Default : 0.0")
parser.add_argument("-t", "--temp",
type=int,
default=3400,
help="Color temperature\n" +
"Default : 3400")
parser.add_argument("-b", "--background",
action="store_true",
help="Let the xflux process go to the background.\n" +
"Default : False")
parser.add_argument("-f", "--force",
action="store_true",
help="Force flux to change color temperature.\n"
"Default : False\n"
"Note : Must be disabled at night.")
args = parser.parse_args()
return args
def opposite_long(degree):
""" Find the opposite of a longitude. """
if degree > 0:
opposite = abs(degree) - 180
else:
opposite = degree + 180
return opposite
def opposite_lat(degree):
""" Find the opposite of a latitude. """
if degree > 0:
opposite = 0 - abs(degree)
else:
opposite = 0 + degree
return opposite
def main(args):
""" Run the xflux command with selected args,
optionally calculate the antipode of current coords
to trick xflux into running during the day.
"""
if args.force == True:
pos_long, pos_lat = (opposite_long(args.longitude),
opposite_lat(args.latitude))
else:
pos_long, pos_lat = args.longitude, args.latitude
if args.background == True:
background = ''
else:
background = ' -nofork'
xflux_cmd = 'xflux -l {pos_lat} -g {pos_long} -k {temp}{background}'
subprocess.call(xflux_cmd.format(
pos_lat=pos_lat, pos_long=pos_long,
temp=args.temp, background=background),
shell=True)
if __name__ == '__main__':
try:
main(get_args())
except KeyboardInterrupt:
sys.exit()