Skip to content

Instantly share code, notes, and snippets.

@spcmd
Created April 26, 2016 10:24
Show Gist options
  • Save spcmd/3e3535ba03ad75f617e106afff9ec8b6 to your computer and use it in GitHub Desktop.
Save spcmd/3e3535ba03ad75f617e106afff9ec8b6 to your computer and use it in GitHub Desktop.
Ranger titlebar which shows trash info
# Simple titlebar plugin for ranger with trash indicator on the left side
# Trash indicator appears only if trash contains at least one file
# Indicator is a unicode symbol, it may not appear on some systems (plugin is tested on Arch Linux)
# Copy this file to ~/.config/ranger/plugins
from ranger.gui.widgets.titlebar import TitleBar
import os
def _get_left_part(self, bar):
username = os.environ["USER"]
trashdir = "/home/"+username+"/.local/share/Trash/files"
#if self.fm.username == 'root':
#clr = 'bad'
#else:
#clr = 'good'
if len(os.listdir(trashdir)) == 0:
bar.add(' Trash: [ ] ', fixed=True)
elif len(os.listdir(trashdir)) >= 1:
bar.add(' Trash: [#┄┄┄┄┄┄┄┄┄┄] ', fixed=True)
elif len(os.listdir(trashdir)) >= 10:
bar.add(' Trash: [##┄┄┄┄┄┄┄┄┄] ', fixed=True)
elif len(os.listdir(trashdir)) >= 20:
bar.add(' Trash: [###┄┄┄┄┄┄┄┄] ', fixed=True)
elif len(os.listdir(trashdir)) >= 50:
bar.add(' Trash: [######┄┄┄┄┄] ', fixed=True)
elif len(os.listdir(trashdir)) >= 80:
bar.add(' Trash: [#########┄┄] ', fixed=True)
elif len(os.listdir(trashdir)) >= 100:
bar.add(' Trash: [###########] ', fixed=True)
# Username and hostname commented out for simplicity, however it still usable
#bar.add(self.fm.username, 'hostname', clr, fixed=True)
#bar.add('@', 'hostname', clr, fixed=True)
#bar.add(self.fm.hostname, 'hostname', clr, fixed=True)
#bar.add(':', 'hostname', clr, fixed=True)
pathway = self.fm.thistab.pathway
if self.settings.tilde_in_titlebar and \
self.fm.thisdir.path.startswith(self.fm.home_path):
pathway = pathway[self.fm.home_path.count('/')+1:]
bar.add('~/', 'directory', fixed=True)
for path in pathway:
if path.is_link:
clr = 'link'
else:
clr = 'directory'
bar.add(path.basename, clr, directory=path)
bar.add('/', clr, fixed=True, directory=path)
if self.fm.thisfile is not None and \
self.settings.show_selection_in_titlebar:
bar.add(self.fm.thisfile.relative_path, 'file')
TitleBar._get_left_part = _get_left_part
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment