#!/usr/bin/python3 # Toggle the brightness on the given randr output import subprocess import os import os.path import re import random import sys import tempfile class Display: index = None name = None offset = None size = None wall_filename = None def __cmp__(self, other): if self.offset[1] != other.offset[1]: return cmp(self.offset[1], other.offset[1]) return cmp(self.offset[0], other.offset[0]) def parse_outputs(): outputs = {} p = subprocess.run(['xrandr', '--verbose'], check = True, capture_output = True, encoding = 'utf-8') cur_output = None for line in p.stdout.splitlines(): m = re.match(r'(\S*) connected.*', line) if m: cur_output = m.group(1) continue if 'Brightness:' in line: _, val = line.strip().split() outputs[cur_output] = float(val) cur_output = None return outputs if len(sys.argv) < 2: sys.stderr.write('Usage: %s \n'%(sys.argv[0])) sys.exit(1) output = sys.argv[1] outputs = parse_outputs() if not output in outputs: sys.stderr.write('No such output: %s\n' % output) sys.exit(1) val = 0.0 if outputs[output] == 1.0 else 1.0 subprocess.run(['xrandr', '--output', output, '--brightness', str(val)], check = True)