summary refs log tree commit diff stats
path: root/examples
diff options
context:
space:
mode:
authorWojciech Siewierski <wojciech.siewierski@onet.pl>2015-10-09 11:02:34 +0200
committerWojciech Siewierski <wojciech.siewierski@onet.pl>2015-10-09 11:02:34 +0200
commit6e8f001cd21558fcadc5e15cbb0b1155b0dab9c0 (patch)
treec32f071113c052d8c5cd0ce8f2a0309d8574faae /examples
parentf8341333ad3ab127dd9bf215769d77ab828efb0e (diff)
downloadranger-6e8f001cd21558fcadc5e15cbb0b1155b0dab9c0.tar.gz
Add plugin_pmount.py
Implemented as a Python plugin instead of a bunch of rc.conf lines to
allow easy nested looping.
Diffstat (limited to 'examples')
-rw-r--r--examples/plugin_pmount.py30
1 files changed, 30 insertions, 0 deletions
diff --git a/examples/plugin_pmount.py b/examples/plugin_pmount.py
new file mode 100644
index 00000000..61ee0dbd
--- /dev/null
+++ b/examples/plugin_pmount.py
@@ -0,0 +1,30 @@
+# Tested with ranger 1.7.2
+#
+# This plugin creates a bunch of keybindings used to mount and unmount
+# the devices using pmount(1).
+#
+# alt+m       <letter>            <digit>: mount /dev/sd<letter><digit>
+# alt+m       <uppercase letter>         : mount /dev/sd<letter>
+# alt+shift+m <letter>            <digit>: unmount /dev/sd<letter><digit>
+# alt+shift+m <uppercase letter>         : unmount /dev/sd<letter>
+# alt+shift+n                            : list the devices
+
+import ranger.api
+
+MOUNT_KEY = '<alt>m'
+UMOUNT_KEY = '<alt>M'
+LIST_MOUNTS_KEY = '<alt>N'
+
+old_hook_init = ranger.api.hook_init
+def hook_init(fm):
+    try:
+        fm.execute_console("map {key} shell -p lsblk".format(key=LIST_MOUNTS_KEY))
+        for disk in "abcdefgh":
+            fm.execute_console("map {key}{0} chain shell pmount sd{1}; cd /media/sd{1}".format(disk.upper(), disk, key=MOUNT_KEY))
+            fm.execute_console("map {key}{0} chain cd; chain shell pumount sd{1}".format(disk.upper(), disk, key=UMOUNT_KEY))
+            for part in "123456789":
+                fm.execute_console("map {key}{0}{1} chain shell pmount sd{0}{1}; cd /media/sd{0}{1}".format(disk, part, key=MOUNT_KEY))
+                fm.execute_console("map {key}{0}{1} chain cd; shell pumount sd{0}{1}".format(disk, part, key=UMOUNT_KEY))
+    finally:
+        return old_hook_init(fm)
+ranger.api.hook_init = hook_init
195' href='#n195'>195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237