summary refs log tree commit diff stats
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
parent6d5893eed201a92cfd09db15685aa73e2720c201 (diff)
downloadranger-2841f7b86b1d464eb5280a9c9e5c29c4f4fda249.tar.gz
Add setting `wrap_scroll`
Adds ability to wrap around when scrolling.

Fixes #176
-rw-r--r--doc/ranger.16
-rw-r--r--doc/ranger.pod5
-rw-r--r--doc/rifle.12
-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
7 files changed, 18 insertions, 3 deletions
diff --git a/doc/ranger.1 b/doc/ranger.1
index de3caf2e..193351d6 100644
--- a/doc/ranger.1
+++ b/doc/ranger.1
@@ -129,7 +129,7 @@
 .\" ========================================================================
 .\"
 .IX Title "RANGER 1"
-.TH RANGER 1 "ranger-1.8.1" "2017-02-01" "ranger manual"
+.TH RANGER 1 "ranger-1.8.1" "2017-02-05" "ranger manual"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
@@ -872,6 +872,10 @@ Sets the state for the version control backend. The possible values are:
 \& local      display only local state.
 \& enabled    display both, local and remote state. May be slow for hg and bzr.
 .Ve
+.IP "wrap_scroll [bool]" 4
+.IX Item "wrap_scroll [bool]"
+Enable scroll wrapping \- moving down while on the last item will wrap around to
+the top and vice versa.
 .IP "xterm_alt_key [bool]" 4
 .IX Item "xterm_alt_key [bool]"
 Enable this if key combinations with the Alt Key don't work for you.
diff --git a/doc/ranger.pod b/doc/ranger.pod
index 46976b4a..f11c5964 100644
--- a/doc/ranger.pod
+++ b/doc/ranger.pod
@@ -886,6 +886,11 @@ Sets the state for the version control backend. The possible values are:
  local      display only local state.
  enabled    display both, local and remote state. May be slow for hg and bzr.
 
+=item wrap_scroll [bool]
+
+Enable scroll wrapping - moving down while on the last item will wrap around to
+the top and vice versa.
+
 =item xterm_alt_key [bool]
 
 Enable this if key combinations with the Alt Key don't work for you.
diff --git a/doc/rifle.1 b/doc/rifle.1
index 14b03794..ba985281 100644
--- a/doc/rifle.1
+++ b/doc/rifle.1
@@ -129,7 +129,7 @@
 .\" ========================================================================
 .\"
 .IX Title "RIFLE 1"
-.TH RIFLE 1 "rifle-1.8.1" "2017-02-01" "rifle manual"
+.TH RIFLE 1 "rifle-1.8.1" "2017-02-05" "rifle manual"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
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'):