Skip to content

Instantly share code, notes, and snippets.

@marcbelmont
Last active July 8, 2023 18:31
Show Gist options
  • Star 12 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save marcbelmont/c12d2fd2519a372d3b347f665b37e74a to your computer and use it in GitHub Desktop.
Save marcbelmont/c12d2fd2519a372d3b347f665b37e74a to your computer and use it in GitHub Desktop.
Add Unicode Icons to Ranger File Manager (see first comment for details). πŸ–ΌοΈ πŸ“‚ 🎡 πŸ₯³
# Unicode Icons in Ranger File Manager
#
# How to install?
# https://gist.github.com/marcbelmont/c12d2fd2519a372d3b347f665b37e74a#gistcomment-3240106
from __future__ import absolute_import, division, print_function
from itertools import repeat
import ranger.api
from ranger.core.linemode import LinemodeBase
# https://unicode.org/emoji/charts/full-emoji-list.html
EXTENSIONS = {}
for extensions, icon in [
('py pyc', '🐍'),
('yml ini', 'βš™ '),
]:
EXTENSIONS.update(dict(zip(extensions.split(), repeat(icon))))
# https://github.com/ranger/ranger/blob/081e73152a9391211770fab56676d7d974413ae6/ranger/container/fsobject.py
@ranger.api.register_linemode
class MyLinemode(LinemodeBase):
name = "unicode_icons"
def filetitle(self, fobj, metadata):
if fobj.is_directory:
icon = 'πŸ“‚'
elif fobj.extension in EXTENSIONS:
icon = EXTENSIONS[fobj.extension]
elif fobj.is_link:
icon = 'πŸ”—'
elif fobj.audio:
icon = '🎡'
elif fobj.container:
icon = 'πŸ“¦'
elif fobj.document:
icon = 'πŸ“–'
elif fobj.image:
icon = 'πŸ–ΌοΈ '
elif fobj.video:
icon = '🎞️ '
elif 'Dockerfile' in fobj.relative_path:
icon = 'πŸ‹'
else:
icon = 'πŸ“ƒ'
return (icon + ' ' if icon else '') + fobj.relative_path
def infostring(self, fobj, metadata):
raise NotImplementedError
@marcbelmont
Copy link
Author

marcbelmont commented Apr 4, 2020

Simple Ranger Linemode Icon Plugin

This plugin will add icons to Ranger. All the icons are Unicode emojis. No special font needed. Tested on Ubuntu with Terminator and Gnome Terminal.

How to install?

Save unicode_icons.py to disk.

export RANGER=~/.config/ranger
mkdir -p $RANGER/plugins/
mv unicode_icons.py $RANGER/plugins/
grep -q 'default_linemode unicode_icons' $RANGER/rc.conf || echo 'default_linemode unicode_icons' >> $RANGER/rc.conf

@amir-mansoor
Copy link

it showing blocks instead of icons
1

@marcbelmont
Copy link
Author

@amir-mansoor if you copy and paste 🐍 in your terminal. Do you see the icon or not?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment