summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid T. Sadler <davidtsadler@googlemail.com>2020-10-21 15:18:03 +0100
committerDavid T. Sadler <davidtsadler@googlemail.com>2020-10-21 15:18:03 +0100
commitc1351cbd50de89ab075a8ec1199f57ace9ebc5f7 (patch)
tree375619ec7e08b8e7b9e9a3db890a620f0aee8d71
parent8d5624a4dbf52a6057ccbc4a28b43df10bf421ea (diff)
Add ranger and ranger devicons
-rw-r--r--.config/ranger/plugins/ranger_devicons/__init__.py19
-rw-r--r--.config/ranger/plugins/ranger_devicons/devicons.py363
-rw-r--r--.config/ranger/rc.conf2
3 files changed, 384 insertions, 0 deletions
diff --git a/.config/ranger/plugins/ranger_devicons/__init__.py b/.config/ranger/plugins/ranger_devicons/__init__.py
new file mode 100644
index 0000000..aeca62b
--- /dev/null
+++ b/.config/ranger/plugins/ranger_devicons/__init__.py
@@ -0,0 +1,19 @@
+import ranger.api
+from ranger.core.linemode import LinemodeBase
+from .devicons import *
+
+@ranger.api.register_linemode
+class DevIconsLinemode(LinemodeBase):
+ name = "devicons"
+
+ uses_metadata = False
+
+ def filetitle(self, file, metadata):
+ return devicon(file) + ' ' + file.relative_path
+
+@ranger.api.register_linemode
+class DevIconsLinemodeFile(LinemodeBase):
+ name = "filename"
+
+ def filetitle(self, file, metadata):
+ return devicon(file) + ' ' + file.relative_path
diff --git a/.config/ranger/plugins/ranger_devicons/devicons.py b/.config/ranger/plugins/ranger_devicons/devicons.py
new file mode 100644
index 0000000..bdfaa86
--- /dev/null
+++ b/.config/ranger/plugins/ranger_devicons/devicons.py
@@ -0,0 +1,363 @@
+#!/usr/bin/python
+# coding=UTF-8
+# These glyphs, and the mapping of file extensions to glyphs
+# has been copied from the vimscript code that is present in
+# https://github.com/ryanoasis/vim-devicons
+import re;
+import os;
+
+# all those glyphs will show as weird squares if you don't have the correct patched font
+# My advice is to use NerdFonts which can be found here:
+# https://github.com/ryanoasis/nerd-fonts
+file_node_extensions = {
+ '7z' : '',
+ 'a' : '',
+ 'ai' : '',
+ 'apk' : '',
+ 'asm' : '',
+ 'asp' : '',
+ 'aup' : '',
+ 'avi' : '',
+ 'awk' : '',
+ 'bash' : '',
+ 'bat' : '',
+ 'bmp' : '',
+ 'bz2' : '',
+ 'c' : '',
+ 'c++' : '',
+ 'cab' : '',
+ 'cbr' : '',
+ 'cbz' : '',
+ 'cc' : '',
+ 'class' : '',
+ 'clj' : '',
+ 'cljc' : '',
+ 'cljs' : '',
+ 'cmake' : '',
+ 'coffee' : '',
+ 'conf' : '',
+ 'cp' : '',
+ 'cpio' : '',
+ 'cpp' : '',
+ 'cs' : '',
+ 'csh' : '',
+ 'css' : '',
+ 'cue' : '',
+ 'cvs' : '',
+ 'cxx' : '',
+ 'd' : '',
+ 'dart' : '',
+ 'db' : '',
+ 'deb' : '',
+ 'diff' : '',
+ 'dll' : '',
+ 'doc' : '',
+ 'docx' : '',
+ 'dump' : '',
+ 'edn' : '',
+ 'eex' : '',
+ 'efi' : '',
+ 'ejs' : '',
+ 'elf' : '',
+ 'elm' : '',
+ 'epub' : '',
+ 'erl' : '',
+ 'ex' : '',
+ 'exe' : '',
+ 'exs' : '',
+ 'f#' : '',
+ 'fifo' : '|',
+ 'fish' : '',
+ 'flac' : '',
+ 'flv' : '',
+ 'fs' : '',
+ 'fsi' : '',
+ 'fsscript' : '',
+ 'fsx' : '',
+ 'gem' : '',
+ 'gemspec' : '',
+ 'gif' : '',
+ 'go' : '',
+ 'gz' : '',
+ 'gzip' : '',
+ 'h' : '',
+ 'haml' : '',
+ 'hbs' : '',
+ 'hh' : '',
+ 'hpp' : '',
+ 'hrl' : '',
+ 'hs' : '',
+ 'htaccess' : '',
+ 'htm' : '',
+ 'html' : '',
+ 'htpasswd' : '',
+ 'hxx' : '',
+ 'ico' : '',
+ 'img' : '',
+ 'ini' : '',
+ 'iso' : '',
+ 'jar' : '',
+ 'java' : '',
+ 'jl' : '',
+ 'jpeg' : '',
+ 'jpg' : '',
+ 'js' : '',
+ 'json' : '',
+ 'jsx' : '',
+ 'key' : '',
+ 'ksh' : '',
+ 'leex' : '',
+ 'less' : '',
+ 'lha' : '',
+ 'lhs' : '',
+ 'log' : '',
+ 'lua' : '',
+ 'lzh' : '',
+ 'lzma' : '',
+ 'm4a' : '',
+ 'm4v' : '',
+ 'markdown' : '',
+ 'md' : '',
+ 'mdx' : '',
+ 'mjs' : '',
+ 'mkv' : '',
+ 'ml' : 'λ',
+ 'mli' : 'λ',
+ 'mov' : '',
+ 'mp3' : '',
+ 'mp4' : '',
+ 'mpeg' : '',
+ 'mpg' : '',
+ 'msi' : '',
+ 'mustache' : '',
+ 'nix' : '',
+ 'o' : '',
+ 'ogg' : '',
+ 'pdf' : '',
+ 'php' : '',
+ 'pl' : '',
+ 'pm' : '',
+ 'png' : '',
+ 'pp' : '',
+ 'ppt' : '',
+ 'pptx' : '',
+ 'ps1' : '',
+ 'psb' : '',
+ 'psd' : '',
+ 'pub' : '',
+ 'py' : '',
+ 'pyc' : '',
+ 'pyd' : '',
+ 'pyo' : '',
+ 'r' : 'ﳒ',
+ 'rake' : '',
+ 'rar' : '',
+ 'rb' : '',
+ 'rc' : '',
+ 'rlib' : '',
+ 'rmd' : '',
+ 'rom' : '',
+ 'rpm' : '',
+ 'rproj' : '鉶',
+ 'rs' : '',
+ 'rss' : '',
+ 'rtf' : '',
+ 's' : '',
+ 'sass' : '',
+ 'scala' : '',
+ 'scss' : '',
+ 'sh' : '',
+ 'slim' : '',
+ 'sln' : '',
+ 'so' : '',
+ 'sql' : '',
+ 'styl' : '',
+ 'suo' : '',
+ 'swift' : '',
+ 't' : '',
+ 'tar' : '',
+ 'tex' : 'ﭨ',
+ 'tgz' : '',
+ 'toml' : '',
+ 'ts' : '',
+ 'tsx' : '',
+ 'twig' : '',
+ 'vim' : '',
+ 'vimrc' : '',
+ 'vue' : '﵂',
+ 'wav' : '',
+ 'webm' : '',
+ 'webmanifest' : '',
+ 'webp' : '',
+ 'xbps' : '',
+ 'xcplayground' : '',
+ 'xhtml' : '',
+ 'xls' : '',
+ 'xlsx' : '',
+ 'xml' : '',
+ 'xul' : '',
+ 'xz' : '',
+ 'yaml' : '',
+ 'yml' : '',
+ 'zip' : '',
+ 'zsh' : '',
+}
+
+dir_node_exact_matches = {
+# English
+ '.git' : '',
+ 'Desktop' : '',
+ 'Documents' : '',
+ 'Downloads' : '',
+ 'Dotfiles' : '',
+ 'Dropbox' : '',
+ 'Music' : '',
+ 'Pictures' : '',
+ 'Public' : '',
+ 'Templates' : '',
+ 'Videos' : '',
+# Spanish
+ 'Escritorio' : '',
+ 'Documentos' : '',
+ 'Descargas' : '',
+ 'Música' : '',
+ 'Imágenes' : '',
+ 'Público' : '',
+ 'Plantillas' : '',
+ 'Vídeos' : '',
+# French
+ 'Bureau' : '',
+ 'Documents' : '',
+ 'Images' : '',
+ 'Musique' : '',
+ 'Publique' : '',
+ 'Téléchargements' : '',
+ 'Vidéos' : '',
+# Portuguese
+ 'Documentos' : '',
+ 'Imagens' : '',
+ 'Modelos' : '',
+ 'Música' : '',
+ 'Público' : '',
+ 'Vídeos' : '',
+ 'Área de trabalho' : '',
+# Italian
+ 'Documenti' : '',
+ 'Immagini' : '',
+ 'Modelli' : '',
+ 'Musica' : '',
+ 'Pubblici' : '',
+ 'Scaricati' : '',
+ 'Scrivania' : '',
+ 'Video' : '',
+# German
+ 'Bilder' : '',
+ 'Dokumente' : '',
+ 'Musik' : '',
+ 'Schreibtisch' : '',
+ 'Vorlagen' : '',
+ 'Öffentlich' : '',
+# Hungarian
+ 'Dokumentumok' : '',
+ 'Képek' : '',
+ 'Modelli' : '',
+ 'Zene' : '',
+ 'Letöltések' : '',
+ 'Számítógép' : '',
+ 'Videók' : '',
+}
+
+file_node_exact_matches = {
+ '.bash_aliases' : '',
+ '.bash_history' : '',
+ '.bash_logout' : '',
+ '.bash_profile' : '',
+ '.bashprofile' : '',
+ '.bashrc' : '',
+ '.dmrc' : '',
+ '.DS_Store' : '',
+ '.fasd' : '',
+ '.fehbg' : '',
+ '.gitattributes' : '',
+ '.gitconfig' : '',
+ '.gitignore' : '',
+ '.gitlab-ci.yml' : '',
+ '.gvimrc' : '',
+ '.inputrc' : '',
+ '.jack-settings' : '',
+ '.mime.types' : '',
+ '.ncmpcpp' : '',
+ '.nvidia-settings-rc' : '',
+ '.pam_environment' : '',
+ '.profile' : '',
+ '.recently-used' : '',
+ '.selected_editor' : '',
+ '.vim' : '',
+ '.viminfo' : '',
+ '.vimrc' : '',
+ '.Xauthority' : '',
+ '.Xdefaults' : '',
+ '.xinitrc' : '',
+ '.xinputrc' : '',
+ '.Xresources' : '',
+ '.zshrc' : '',
+ '_gvimrc' : '',
+ '_vimrc' : '',
+ 'a.out' : '',
+ 'authorized_keys' : '',
+ 'bspwmrc' : '',
+ 'cmakelists.txt' : '',
+ 'config' : '',
+ 'config.ac' : '',
+ 'config.m4' : '',
+ 'config.mk' : '',
+ 'config.ru' : '',
+ 'configure' : '',
+ 'docker-compose.yml' : '',
+ 'dockerfile' : '',
+ 'Dockerfile' : '',
+ 'dropbox' : '',
+ 'exact-match-case-sensitive-1.txt' : 'X1',
+ 'exact-match-case-sensitive-2' : 'X2',
+ 'favicon.ico' : '',
+ 'gemfile' : '',
+ 'gruntfile.coffee' : '',
+ 'gruntfile.js' : '',
+ 'gruntfile.ls' : '',
+ 'gulpfile.coffee' : '',
+ 'gulpfile.js' : '',
+ 'gulpfile.ls' : '',
+ 'ini' : '',
+ 'known_hosts' : '',
+ 'ledger' : '',
+ 'license' : '',
+ 'LICENSE' : '',
+ 'LICENSE.md' : '',
+ 'LICENSE.txt' : '',
+ 'Makefile' : '',
+ 'makefile' : '',
+ 'Makefile.ac' : '',
+ 'Makefile.in' : '',
+ 'mimeapps.list' : '',
+ 'mix.lock' : '',
+ 'node_modules' : '',
+ 'package-lock.json' : '',
+ 'package.json' : '',
+ 'playlists' : '',
+ 'procfile' : '',
+ 'Rakefile' : '',
+ 'rakefile' : '',
+ 'react.jsx' : '',
+ 'README' : '',
+ 'README.markdown' : '',
+ 'README.md' : '',
+ 'README.rst' : '',
+ 'README.txt' : '',
+ 'sxhkdrc' : '',
+ 'user-dirs.dirs' : '',
+ 'webpack.config.js' : '',
+}
+
+def devicon(file):
+ if file.is_directory: return dir_node_exact_matches.get(file.relative_path, '')
+ return file_node_exact_matches.get(os.path.basename(file.relative_path), file_node_extensions.get(file.extension, ''))
diff --git a/.config/ranger/rc.conf b/.config/ranger/rc.conf
new file mode 100644
index 0000000..273ffd3
--- /dev/null
+++ b/.config/ranger/rc.conf
@@ -0,0 +1,2 @@
+set colorscheme jungle
+default_linemode devicons