Может ли автоматическое поведение f.lux быть переопределено?
Я узнал о f.lux, когда кто-то упомянул об этом на другом вопросе о SU, на который я наткнулся. С тех пор я пользуюсь им, потому что это простая, оригинальная и полезная часть программного обеспечения.
Однако иногда я обнаруживаю, что хочу отключить его ночью, редактировать фотографии или выполнять другие задачи, чувствительные к цвету. Точно так же бывает и так, что иногда я хочу включить его в течение дня, когда я закрываю окно своей комнаты, оставляя его полностью темным и готовя его к моей сиесте (откуда я прихожу, мы спим почти каждый день).
Принимая это во внимание, я пришел к выводу, что неавтоматическая версия f.lux будет идеальной для моих нужд. Я знаю, что есть возможность приостановить его ночью, когда он активируется автоматически, но я бы хотел, чтобы он не активировался, если я не скажу это.
Итак, я оставляю вам скриншот, где (если вы видите то же, что я вижу), вы заметите, что нет возможности активировать / деактивировать по желанию. Кто-нибудь знает, как это сделать?
Возможно, есть другой графический интерфейс для f.lux в Ubuntu?

1 ответ
У меня тоже была эта проблема. Redshift - это инструмент с открытым исходным кодом с функциями f.lux и возможностью ручной настройки цветовой температуры.
f.lux изменит цветовую температуру только в том случае, если он думает, что вы находитесь ночью, поэтому я также написал скрипт на python, чтобы обманным путем заставить f.lux работать днем. Он вычисляет противоположную точку на земном шаре и дает потоки этих координат.
Чтобы использовать его, вам нужно сохранить этот код в файле, например 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()