#!/usr/bin/env python import sys import subprocess DEFAULT_TEMPERATURE = 3500 try: with open('/tmp/temperature', 'r') as temp_file: current_temperature = int(temp_file.read()) except FileNotFoundError: current_temperature = DEFAULT_TEMPERATURE # If no argument is given print the current temperature if len(sys.argv) == 1: print(current_temperature) sys.exit(0) elif len(sys.argv) != 2: print(""" Usage: screen-temperature print current temperature screen-temperature set screen temperature to screen-temperature <+|-> increase or decrease screen temperature by """) sys.exit(1) temperature_change = sys.argv[1] if temperature_change.startswith("+"): new_temperature = current_temperature + int(temperature_change[1:]) elif temperature_change.startswith("-"): new_temperature = current_temperature - int(temperature_change[1:]) else: new_temperature = int(temperature_change) try: subprocess.run(["redshift", "-O", str(new_temperature), "-P"], check=True) with open('/tmp/temperature', 'w') as temp_file: temp_file.write(str(new_temperature) + '\n') # Send notification subprocess.run( ["notify-send", str(new_temperature) + "K"]) except subprocess.CalledProcessError: print("Error: could not set screen temperature.") sys.exit(1)