Ho anche avuto questo problema. redshift è uno strumento open source con funzionalità
da f.lux e la possibilità di impostare manualmente la temperatura del colore.
f.lux cambierà solo la temperatura del colore se pensa che sia notte dove sei, così ho anche scritto uno script python per ingannare f.lux in esecuzione durante il giorno. Calcola il punto opposto sul globo e fa fluire quei co-ord.
Per usarlo, è necessario salvare questo codice in un file, ad es. flux.py
nella tua home directory. Quindi, apri un terminale ed esegui il file con 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()