Skip to content

Instantly share code, notes, and snippets.

@marcbelmont
Last active July 8, 2023 18:31
Show Gist options
  • 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

@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