1
0
mirror of https://github.com/gryf/pyrandr.git synced 2025-12-22 07:57:57 +01:00

Added verbose/quite options

This commit is contained in:
2017-10-15 11:56:24 +02:00
parent 118af09789
commit 940948f988

View File

@@ -5,8 +5,9 @@
Simple xrandr wrapper for organising output layout Simple xrandr wrapper for organising output layout
""" """
import argparse import argparse
import subprocess import logging
import re import re
import subprocess
DISPLAY_RE = re.compile(r'^(?P<output>[a-zA-Z0-9-]+)\s' DISPLAY_RE = re.compile(r'^(?P<output>[a-zA-Z0-9-]+)\s'
@@ -17,6 +18,25 @@ DISPLAY_RE = re.compile(r'^(?P<output>[a-zA-Z0-9-]+)\s'
RESOLUTION_RE = re.compile(r'^\s+(?P<width>\d+)x(?P<height>\d+)\s.*') RESOLUTION_RE = re.compile(r'^\s+(?P<width>\d+)x(?P<height>\d+)\s.*')
def setup_logger(args):
"""Setup logger format and level"""
level = logging.WARNING
if args.quiet:
level = logging.ERROR
if args.quiet > 1:
level = logging.CRITICAL
if args.verbose:
level = logging.INFO
if args.verbose > 1:
level = logging.DEBUG
logging.basicConfig(level=level,
format="%(levelname)s: %(message)s")
class Output(object): class Output(object):
def __init__(self, name, connected, primary): def __init__(self, name, connected, primary):
self.name = name self.name = name
@@ -108,13 +128,15 @@ class Organizer(object):
else: else:
out.active = True out.active = True
def panic(self, primary=None): def panic(self, primary):
"""Just turn on all outputs at once in "mirror" mode""" """Just turn on all outputs at once in "mirror" mode"""
logging.info('Panic mode')
cmd = ['xrandr'] cmd = ['xrandr']
for name in self._outputs: for name in self._outputs:
out = self._outputs[name] out = self._outputs[name]
cmd.extend(out.get_randr_options((primary == out.name))) cmd.extend(out.get_randr_options(primary == out.name))
logging.debug("command to execute: \n%s", " ".join(cmd))
subprocess.call(cmd) subprocess.call(cmd)
@@ -125,7 +147,15 @@ def main():
'all connected outputs') 'all connected outputs')
parser.add_argument('-p', '--primary', help='Set specified output as ' parser.add_argument('-p', '--primary', help='Set specified output as '
'primary') 'primary')
parser.add_argument('-v', '--verbose', help='Be verbose. Adding more "v" '
'will increase verbosity', action="count",
default=None)
parser.add_argument('-q', '--quiet', help='Be quiet. Adding more "q" will '
'decrease verbosity', action="count", default=None)
args = parser.parse_args() args = parser.parse_args()
setup_logger(args)
org = Organizer() org = Organizer()