diff options
author | Olivier Gayot <olivier.gayot@sigexec.com> | 2018-07-04 10:52:47 +0200 |
---|---|---|
committer | Olivier Gayot <olivier.gayot@sigexec.com> | 2018-07-04 10:54:07 +0200 |
commit | 315a75e3ee57b479dade9ce14d70b3aa2d56e105 (patch) | |
tree | a9c2cf7baf060695eb02daed381919b566e3700a | |
parent | 35f33f81e41a13aa2a68d9266fab4094707e1984 (diff) |
Added basics for the script to run
Signed-off-by: Olivier Gayot <olivier.gayot@sigexec.com>
-rwxr-xr-x | monitor-menu.py | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/monitor-menu.py b/monitor-menu.py new file mode 100755 index 0000000..4aeec25 --- /dev/null +++ b/monitor-menu.py @@ -0,0 +1,51 @@ +#!/usr/bin/env python3 + +from os.path import expanduser + +import dialog +import json +import subprocess + +d = dialog.Dialog() + +class MonitorMenu(): + def __init__(self, config_file='~/.config/monitor-profiles.json'): + with open(expanduser(config_file)) as fd: + self.profiles = json.load(fd) + + def run(self): + choices = [] + + i = 0 + for p in self.profiles: + choices.append((str(i), p['name'])) + i += 1 + + code, profile_idx = d.menu('Select the profile you want to use.', choices=choices) + + if code == d.ESC or code == d.CANCEL: + return + + profile = self.profiles[int(profile_idx)] + + # We build the command line starting from just "xrandr" and adding arguments. + cmd = ['xrandr'] + + try: + cmd += profile['xrandr-opts'] + except KeyError: + pass + + for monitor in profile['monitors']: + cmd += monitor['xrandr-opts'] + + subprocess.run(cmd) + + +def main(): + menu = MonitorMenu() + + menu.run() + +if __name__ == '__main__': + main() |