diff options
author | Von Random <von@vdrandom.org> | 2019-03-13 15:28:28 +0300 |
---|---|---|
committer | Von Random <von@vdrandom.org> | 2019-03-13 15:28:28 +0300 |
commit | 6c3e745835146b91f0077359f7f23580bcb7061d (patch) | |
tree | 650b214a2ff01c45ee1d4de4e8afb33abe44eb1a | |
parent | 6c778f9d1a0b7e49db908930f5e55cc4a958b69d (diff) |
dmenu_multicmd: some cleanup and config example
-rwxr-xr-x | dmenu_multicmd | 32 |
1 files changed, 19 insertions, 13 deletions
diff --git a/dmenu_multicmd b/dmenu_multicmd index 712f410..95b425f 100755 --- a/dmenu_multicmd +++ b/dmenu_multicmd @@ -1,15 +1,26 @@ #!/usr/bin/env python3 #pylint: disable=C0111 - -import os +# config example (cmd_pre and cmd_post are optional): +# --- +# name: test +# cmd_pre: +# - [/usr/bin/notify_send, 'I am precmd1!'] +# - [/usr/bin/notify_send, 'I am precmd2!'] +# multicmd: +# selection1: +# - [/usr/bin/notify-send, 'I am command1 for selection1!'] +# - [/usr/bin/notify-send, 'I am command2 for selection1!'] +# selection2: +# - [/usr/bin/notify-send, 'I am command1 for selection2!'] +# cmd_post: +# - [/usr/bin/notify_send, 'I am postcmd1!'] +# - [/usr/bin/notify_send, 'I am postcmd2!'] +# --- import subprocess import sys import yaml -CONFIG_PATH = os.path.join(os.environ['HOME'], '.displayrc.yaml') - - def run_cmd(cmd, stdin=subprocess.PIPE, data=None): proc = subprocess.Popen( cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=stdin @@ -27,7 +38,7 @@ def run_cmd(cmd, stdin=subprocess.PIPE, data=None): def run_multicmd(cmds): for cmd in cmds: - run_cmd(cmds[cmd]) + run_cmd(cmd) def main(): @@ -39,14 +50,9 @@ def main(): selection = run_cmd(dmenu_cmd, data=dmenu_opt).decode('UTF-8') if not selection in conf['multicmd']: sys.exit(1) - - if 'cmd_pre' in conf: - run_multicmd(conf['cmd_pre']) - + run_multicmd(conf.get('cmd_pre', tuple())) run_multicmd(conf['multicmd'][selection]) - - if 'cmd_post' in conf: - run_multicmd(conf['cmd_post']) + run_multicmd(conf.get('cmd_post', tuple())) if __name__ == '__main__': main() |