diff options
-rw-r--r-- | ranger/defaults/options.py | 3 | ||||
-rw-r--r-- | ranger/gui/bar.py | 4 | ||||
-rw-r--r-- | ranger/gui/widgets/titlebar.py | 15 | ||||
-rw-r--r-- | ranger/shared/settings.py | 1 |
4 files changed, 18 insertions, 5 deletions
diff --git a/ranger/defaults/options.py b/ranger/defaults/options.py index 46723aa8..0593bae3 100644 --- a/ranger/defaults/options.py +++ b/ranger/defaults/options.py @@ -75,6 +75,9 @@ update_title = True # directories are displayed at once, False turns off this feature. shorten_title = 3 +# Abbreviate $HOME with ~ in the titlebar (first line) of ranger? +tilde_in_titlebar = True + # How many directory-changes or console-commands should be kept in history? max_history_size = 20 diff --git a/ranger/gui/bar.py b/ranger/gui/bar.py index c06a201e..0ef840a4 100644 --- a/ranger/gui/bar.py +++ b/ranger/gui/bar.py @@ -95,8 +95,10 @@ class BarSide(list): def add(self, string, *lst, **kw): cs = ColoredString(string, self.base_color_tag, *lst) + cs.__dict__.update(kw) if 'fixedsize' in kw: - cs.fixed = kw['fixedsize'] + kw['fixed'] = kw['fixedsize'] + del kw['fixedsize'] self.append(cs) def add_space(self, n=1): diff --git a/ranger/gui/widgets/titlebar.py b/ranger/gui/widgets/titlebar.py index 62740e2d..ddcd03c3 100644 --- a/ranger/gui/widgets/titlebar.py +++ b/ranger/gui/widgets/titlebar.py @@ -84,7 +84,7 @@ class TitleBar(Widget): self.fm.enter_dir("/") else: try: - self.fm.env.enter_dir(self.env.pathway[(i-3)/2]) + self.fm.enter_dir(part.directory) except: pass return True @@ -109,15 +109,22 @@ class TitleBar(Widget): bar.add(self.env.username, 'hostname', clr, fixedsize=True) bar.add('@', 'hostname', clr, fixedsize=True) bar.add(self.env.hostname, 'hostname', clr, fixedsize=True) + bar.add(':', 'hostname', clr, fixedsize=True) - for path in self.env.pathway: + pathway = self.env.pathway + if self.settings.tilde_in_titlebar and \ + self.fm.env.cwd.path.startswith(self.env.home_path): + pathway = pathway[self.env.home_path.count('/')+1:] + bar.add('~/', 'directory', fixedsize=True) + + for path in pathway: if path.islink: clr = 'link' else: clr = 'directory' - bar.add(path.basename, clr) - bar.add('/', clr, fixedsize=True) + bar.add(path.basename, clr, directory=path) + bar.add('/', clr, fixedsize=True, directory=path) if self.env.cf is not None: bar.add(self.env.cf.basename, 'file', fixedsize=True) diff --git a/ranger/shared/settings.py b/ranger/shared/settings.py index ebbe12c7..01d4caf6 100644 --- a/ranger/shared/settings.py +++ b/ranger/shared/settings.py @@ -34,6 +34,7 @@ ALLOWED_SETTINGS = { 'sort_directories_first': bool, 'update_title': bool, 'shorten_title': int, # Note: False is an instance of int + 'tilde_in_titlebar': bool, 'max_filesize_for_preview': (int, type(None)), 'max_history_size': (int, type(None)), 'scroll_offset': int, |