summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--ranger/defaults/options.py4
-rw-r--r--ranger/gui/ui.py4
-rw-r--r--ranger/shared/settings.py1
3 files changed, 9 insertions, 0 deletions
diff --git a/ranger/defaults/options.py b/ranger/defaults/options.py
index 00be15d1..5b35a551 100644
--- a/ranger/defaults/options.py
+++ b/ranger/defaults/options.py
@@ -52,6 +52,10 @@ collapse_preview = True
 # Set a title for the window?
 update_title = True
 
+# Shorten the title if it gets long?  The number defines how many
+# directories are displayed at once, False turns off this feature.
+shorten_title = 3
+
 # How many directory-changes or console-commands should be kept in history?
 max_history_size = 20
 
diff --git a/ranger/gui/ui.py b/ranger/gui/ui.py
index 7f975f90..3bd566ae 100644
--- a/ranger/gui/ui.py
+++ b/ranger/gui/ui.py
@@ -202,6 +202,10 @@ class UI(DisplayableContainer):
 		DisplayableContainer.draw(self)
 		if self._draw_title and self.settings.update_title:
 			cwd = self.fm.env.cwd.path
+			if self.settings.shorten_title:
+				split = cwd.rsplit(os.sep, self.settings.shorten_title)
+				if os.sep in split[0]:
+					cwd = os.sep.join(split[1:])
 			sys.stdout.write("\033]2;ranger:" + cwd + "\007")
 		self.win.refresh()
 
diff --git a/ranger/shared/settings.py b/ranger/shared/settings.py
index bdb0bd8d..7d67d83d 100644
--- a/ranger/shared/settings.py
+++ b/ranger/shared/settings.py
@@ -29,6 +29,7 @@ ALLOWED_SETTINGS = {
 	'reverse': bool,
 	'directories_first': bool,
 	'update_title': bool,
+	'shorten_title': int,  # Note: False is an instance of int
 	'max_filesize_for_preview': (int, type(None)),
 	'max_history_size': (int, type(None)),
 	'scroll_offset': int,