summary refs log tree commit diff stats
path: root/ranger
diff options
context:
space:
mode:
authorSamuel Walladge <samuel@swalladge.id.au>2017-02-05 00:06:24 +1030
committernfnty <git@nfnty.se>2017-02-05 08:58:54 +0100
commit2841f7b86b1d464eb5280a9c9e5c29c4f4fda249 (patch)
tree6b2bd5550248d3a1a217eef9d9df3f276347cb07 /ranger
parent6d5893eed201a92cfd09db15685aa73e2720c201 (diff)
downloadranger-2841f7b86b1d464eb5280a9c9e5c29c4f4fda249.tar.gz
Add setting `wrap_scroll`
Adds ability to wrap around when scrolling.

Fixes #176
Diffstat (limited to 'ranger')
-rw-r--r--ranger/config/rc.conf4
-rw-r--r--ranger/container/settings.py1
-rw-r--r--ranger/core/actions.py1
-rw-r--r--ranger/ext/direction.py2
4 files changed, 7 insertions, 1 deletions
diff --git a/ranger/config/rc.conf b/ranger/config/rc.conf
index a36ce9e4..991c1d3a 100644
--- a/ranger/config/rc.conf
+++ b/ranger/config/rc.conf
@@ -215,6 +215,10 @@ set clear_filters_on_dir_change false
 # Disable displaying line numbers in main column
 set line_numbers false
 
+# Enable scroll wrapping - moving down while on the last item will wrap around to
+# the top and vice versa.
+set wrap_scroll false
+
 # ===================================================================
 # == Local Options
 # ===================================================================
diff --git a/ranger/container/settings.py b/ranger/container/settings.py
index 6e5e44f1..df9a45c7 100644
--- a/ranger/container/settings.py
+++ b/ranger/container/settings.py
@@ -78,6 +78,7 @@ ALLOWED_SETTINGS = {
     'vcs_backend_git': str,
     'vcs_backend_hg': str,
     'vcs_backend_svn': str,
+    'wrap_scroll': bool,
     'xterm_alt_key': bool,
     'clear_filters_on_dir_change': bool,
 }
diff --git a/ranger/core/actions.py b/ranger/core/actions.py
index c78f61e2..d3bbce7c 100644
--- a/ranger/core/actions.py
+++ b/ranger/core/actions.py
@@ -455,6 +455,7 @@ class Actions(  # pylint: disable=too-many-instance-attributes,too-many-public-m
         self.move(to=80, percentage=True)  # moves to 80%
         """
         cwd = self.thisdir
+        kw.setdefault('cycle', self.fm.settings['wrap_scroll'])
         direction = Direction(kw)
         if 'left' in direction or direction.left() > 0:
             steps = direction.left()
diff --git a/ranger/ext/direction.py b/ranger/ext/direction.py
index 7268d5d6..2bc58395 100644
--- a/ranger/ext/direction.py
+++ b/ranger/ext/direction.py
@@ -92,7 +92,7 @@ class Direction(dict):
         return 'percentage' in self and self['percentage']
 
     def cycle(self):
-        return self.get('cycle') in ('true', 'on', 'yes')
+        return self.get('cycle') in (True, 'true', 'on', 'yes')
 
     def multiply(self, n):
         for key in ('up', 'right', 'down', 'left'):