[rc] add rofi-remmina.py script for launching remmina connections
[~bandali/configs] / rc.org
diff --git a/rc.org b/rc.org
index 336337f..097e265 100644 (file)
--- a/rc.org
+++ b/rc.org
@@ -3896,6 +3896,8 @@ exec swayidle \
     bindsym XF86AudioMute exec pamixer --toggle-mute
     bindsym XF86AudioMicMute exec pactl set-source-mute 1 toggle
 
+    bindsym $mod+Shift+apostrophe exec rofi-remmina.py # choose remmina connection
+
     # original sway workspace switch and window move
     bindsym $mod+bracketleft workspace prev
     bindsym $mod+bracketright workspace next
@@ -5585,6 +5587,36 @@ val=$(rofi -dmenu -mesg "light    $cur" -p "light -S " -l 0 -width 12)
 [ -n "$val" ] && light -S $val
 #+end_src
 
+** rofi-remmina.py
+:PROPERTIES:
+:header-args+: :tangle ~/.local/bin/rofi-remmina.py :shebang "#!/usr/bin/env python2"
+:END:
+
+#+begin_src python
+import ConfigParser
+import os
+from subprocess import Popen, PIPE
+
+remmina_dir = os.path.expanduser("~/.local/share/remmina")
+
+fdict = dict()
+
+for f in os.listdir(remmina_dir):
+    fp = os.path.join(remmina_dir, f)
+    c = ConfigParser.ConfigParser()
+    c.read(fp)
+    n = c.get('remmina', 'name')
+    fdict[n] = fp
+
+lines = max(min(15, len(fdict)), 1);
+rofi = Popen(["rofi", "-i", "-dmenu", "-l", str(lines), "-p", "connection: "], stdout=PIPE, stdin=PIPE)
+selected = rofi.communicate("\n".join(fdict.keys()).encode("utf-8"))[0].decode("utf-8").strip()
+rofi.wait()
+
+r = Popen(["remmina", "-c", fdict[selected]])
+r.wait()
+#+end_src
+
 ** s (run sway)
 :PROPERTIES:
 :header-args+: :tangle ~/.local/bin/s :shebang "#!/bin/bash"