49 lines
1.3 KiB
Plaintext
49 lines
1.3 KiB
Plaintext
|
#!/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 <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')
|
||
|
except subprocess.CalledProcessError:
|
||
|
print("Error: could not set screen temperature.")
|
||
|
sys.exit(1)
|