from subprocess import run from pathlib import Path from typing import Optional from libqtile.log_utils import logger from libqtile.xcbq import Monitor from .backlight import Backlight Side = str # one of 'left-of', 'right-of', 'above', 'below' or 'same-as' def enable_monitor(monitor: Monitor, primary: bool=False, side: Optional[Side]=None, relative_monitor: Optional[Monitor]=None) -> None: command = ['xrandr', '--output', monitor.name, '--auto'] if primary: command += ['--primary'] if side: if not relative_monitor: raise Exception('Need a monitor to be relative to') command += ['--{}'.format(side), relative_monitor.name] run(command) logger.info(f'Running command: {" ".join(command)}')