Может ли автоматическое поведение f.lux быть переопределено?

6194
the_midget_17

Я узнал о f.lux, когда кто-то упомянул об этом на другом вопросе о SU, на который я наткнулся. С тех пор я пользуюсь им, потому что это простая, оригинальная и полезная часть программного обеспечения.

Однако иногда я обнаруживаю, что хочу отключить его ночью, редактировать фотографии или выполнять другие задачи, чувствительные к цвету. Точно так же бывает и так, что иногда я хочу включить его в течение дня, когда я закрываю окно своей комнаты, оставляя его совершенно темным и готовя его к моей сиесте (откуда я прихожу, мы спим почти каждый день).

Принимая это во внимание, я пришел к выводу, что неавтоматическая версия f.lux будет идеальной для моих нужд. Я знаю, что есть возможность приостановить его ночью, когда он активируется автоматически, но я бы хотел, чтобы он не активировался, если я не скажу это.

Итак, я оставляю вам скриншот, где (если вы видите то же самое, что я вижу), вы заметите, что нет возможности активировать / деактивировать по желанию. Кто-нибудь знает, как это сделать?

Возможно, есть другой графический интерфейс для f.lux на Ubuntu?

пакет 'fluxgui' версии 1.1.8, работающий на Ubuntu oneiric (11.10)

3
В Mac OS X в меню f.lux есть опция «Отключить на час», которая так и делает. Может быть, такая опция доступна или есть способ добавить ее (я заметил, что графический интерфейс написан на Python и отдельно)? Kevin Reid 12 лет назад 0
[Redshift] (http://jonls.dk/redshift/) + [RedshiftGUI] (https://github.com/maoserr/redshiftgui) может хорошо заменить f.lux, если вам нужна ручная настройка. Это делает трюк для меня. Mahn 9 лет назад 0

1 ответ на вопрос

5
haesken

У меня тоже была эта проблема. 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 -g -k '  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() 

Похожие вопросы