about summary refs log tree commit diff stats
path: root/ranger
diff options
context:
space:
mode:
authorhut <hut@lepus.uberspace.de>2014-10-31 14:25:52 +0100
committerhut <hut@lepus.uberspace.de>2014-10-31 14:25:52 +0100
commitcb7674d88543e045dd282cc1da8ded2d52f7373b (patch)
treec0bc941eb418c8887ee675df56b05d804d547785 /ranger
parent4e73fe41eee4c5eb3fb93c735d57565a0dd2a7c4 (diff)
downloadranger-cb7674d88543e045dd282cc1da8ded2d52f7373b.tar.gz
added option "idle_delay"
per request of nfnty
Diffstat (limited to 'ranger')
-rw-r--r--ranger/config/rc.conf5
-rw-r--r--ranger/container/settings.py1
-rw-r--r--ranger/gui/ui.py4
3 files changed, 9 insertions, 1 deletions
diff --git a/ranger/config/rc.conf b/ranger/config/rc.conf
index 644706e8..23cd2e10 100644
--- a/ranger/config/rc.conf
+++ b/ranger/config/rc.conf
@@ -169,6 +169,11 @@ set preview_max_size 0
 # Add the highlighted file to the path in the titlebar
 set show_selection_in_titlebar true
 
+# The delay that ranger idly waits for user input, in milliseconds, with a
+# resolution of 100ms.  Lower delay reduces lag between directory updates but
+# increases CPU load.
+set idle_delay 2000
+
 # ===================================================================
 # == Local Options
 # ===================================================================
diff --git a/ranger/container/settings.py b/ranger/container/settings.py
index 0d8b6906..f75c274f 100644
--- a/ranger/container/settings.py
+++ b/ranger/container/settings.py
@@ -25,6 +25,7 @@ ALLOWED_SETTINGS = {
     'draw_progress_bar_in_status_bar': bool,
     'flushinput': bool,
     'hidden_filter': str,
+    'idle_delay': int,
     'max_console_history_size': (int, type(None)),
     'max_history_size': (int, type(None)),
     'mouse_enabled': bool,
diff --git a/ranger/gui/ui.py b/ranger/gui/ui.py
index 1f95ac59..1c76de05 100644
--- a/ranger/gui/ui.py
+++ b/ranger/gui/ui.py
@@ -117,7 +117,9 @@ class UI(DisplayableContainer):
                 self.win.nodelay(1)
             else:
                 self.win.nodelay(0)
-                curses.halfdelay(20)
+                # Sanitize halfdelay setting
+                halfdelay = min(255, max(1, self.settings.idle_delay // 100))
+                curses.halfdelay(halfdelay)
 
     def destroy(self):
         """Destroy all widgets and turn off curses"""