diff --git a/bin/screencfg b/bin/screencfg deleted file mode 120000 index 96547c5..0000000 --- a/bin/screencfg +++ /dev/null @@ -1 +0,0 @@ -/home/hannes-work/archive/screencfg/screencfg.py \ No newline at end of file diff --git a/bin/screencfg b/bin/screencfg new file mode 100755 index 0000000..0d14f1a --- /dev/null +++ b/bin/screencfg @@ -0,0 +1,60 @@ +#!/usr/bin/env python3 + +import sys +import subprocess +import time +import argparse + +import yaml + +XRANDR = 'xrandr' + +def run(cmd): + print('>>> ' + ' '.join(cmd)) + start = time.time() + ret = subprocess.run( + cmd, + stdout=sys.stdout, + stderr=sys.stderr) + end = time.time() + print("exit code: {}".format(ret.returncode)) + print("exec time: {}".format(end - start)) + +def fail(msg, code=1): + print(msg) + sys.exit(code) + +parser = argparse.ArgumentParser() +parser.add_argument('config') + +args = parser.parse_args() +config_path = args.config + +try: + config = yaml.load(open(config_path)) +except FileNotFoundError: + fail("File {0} not found".format(config_path)) + +# reset +for output in config['outputs']: + if config.get('reset') and output.get('reset'): + run([XRANDR, '--output', output['name'], '--off']) + run([XRANDR, '--delmode', output['name'], output['opts']['mode']]) + run([XRANDR, '--addmode', output['name'], output['opts']['mode']]) + run([XRANDR, '--output', output['name'], '--mode', output['opts']['mode']]) + +cmd = [XRANDR] +for output in config['outputs']: + cmd.extend(['--output', output['name']]) + if output.get('disable'): + cmd.append('--off') + else: + if output.get('primary', False): + cmd.append("--primary") + # cmd.append('--auto') + for k, v in output['opts'].items(): + cmd.extend(['--{}'.format(k), str(v)]) + +run(cmd) +run(['i3-msg', 'restart']) +run(['systemctl', '--user', 'restart', 'keyboard']) diff --git a/i3/config.j2 b/i3/config.j2 index 4d62742..9e8905a 100644 --- a/i3/config.j2 +++ b/i3/config.j2 @@ -339,7 +339,7 @@ bindsym $mod+p exec --no-startup-id kill -SIGUSR1 $(cat $RUNDIR/wallchanger.$XDG # bar { mode dock - position top + position bottom #tray_output HDMI3