summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVon Random <von@vdrandom.org>2019-03-13 15:28:28 +0300
committerVon Random <von@vdrandom.org>2019-03-13 15:28:28 +0300
commit6c3e745835146b91f0077359f7f23580bcb7061d (patch)
tree650b214a2ff01c45ee1d4de4e8afb33abe44eb1a
parent6c778f9d1a0b7e49db908930f5e55cc4a958b69d (diff)
dmenu_multicmd: some cleanup and config example
-rwxr-xr-xdmenu_multicmd32
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()