Files
nix/dots/.bin/screen-temperature

53 lines
1.4 KiB
Python
Executable File

#!/usr/bin/env python
import subprocess
import sys
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 <temperature>
set screen temperature to <temperature>
screen-temperature <+|-><temperature>
increase or decrease screen temperature by <temperature>
"""
)
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)