[download]

config/ranger/plugins/devicons.py

   1 # https://github.com/alexanderjeurissen/ranger_devicons
   2 
   3 import ranger.api;
   4 from ranger.core.linemode import LinemodeBase;
   5 
   6 @ranger.api.register_linemode
   7 class DevIconsLinemode(LinemodeBase):
   8     name = 'devicons';
   9     uses_metadata = False;
  10 
  11     def filetitle(self, file, metadata):
  12         return devicon(file) + ' ' + file.relative_path;
  13 
  14 @ranger.api.register_linemode
  15 class DevIconsLinemodeFile(LinemodeBase):
  16     name = 'filename';
  17 
  18     def filetitle(self, file, metadata):
  19         return devicon(file) + ' ' + file.relative_path;
  20 
  21 def devicon(file):
  22     map = { # {{{
  23         '7z'                               : '',
  24         'a'                                : '',
  25         'ai'                               : '',
  26         'apk'                              : '',
  27         'asm'                              : '',
  28         'asp'                              : '',
  29         'aup'                              : '',
  30         'avi'                              : '',
  31         'bat'                              : '',
  32         'bmp'                              : '',
  33         'bz2'                              : '',
  34         'c'                                : '',
  35         'c++'                              : '',
  36         'cab'                              : '',
  37         'cbr'                              : '',
  38         'cbz'                              : '',
  39         'cc'                               : '',
  40         'class'                            : '',
  41         'clj'                              : '',
  42         'cljc'                             : '',
  43         'cljs'                             : '',
  44         'cmake'                            : '',
  45         'coffee'                           : '',
  46         'conf'                             : '',
  47         'cp'                               : '',
  48         'cpio'                             : '',
  49         'cpp'                              : '',
  50         'cs'                               : '',
  51         'css'                              : '',
  52         'cue'                              : '',
  53         'cvs'                              : '',
  54         'cxx'                              : '',
  55         'd'                                : '',
  56         'dart'                             : '',
  57         'db'                               : '',
  58         'deb'                              : '',
  59         'diff'                             : '',
  60         'dll'                              : '',
  61         'doc'                              : '',
  62         'docx'                             : '',
  63         'dump'                             : '',
  64         'edn'                              : '',
  65         'efi'                              : '',
  66         'ejs'                              : '',
  67         'elf'                              : '',
  68         'elm'                              : '',
  69         'epub'                             : '',
  70         'erl'                              : '',
  71         'ex'                               : '',
  72         'exe'                              : '',
  73         'exs'                              : '',
  74         'eex'                              : '',
  75         'f#'                               : '',
  76         'fifo'                             : '|',
  77         'fish'                             : '',
  78         'flac'                             : '',
  79         'flv'                              : '',
  80         'fs'                               : '',
  81         'fsi'                              : '',
  82         'fsscript'                         : '',
  83         'fsx'                              : '',
  84         'gem'                              : '',
  85         'gif'                              : '',
  86         'go'                               : '',
  87         'gz'                               : '',
  88         'gzip'                             : '',
  89         'h'                                : '',
  90         'hbs'                              : '',
  91         'hpp'                              : '',
  92         'hrl'                              : '',
  93         'hs'                               : '',
  94         'htaccess'                         : '',
  95         'htpasswd'                         : '',
  96         'htm'                              : '',
  97         'html'                             : '',
  98         'ico'                              : '',
  99         'img'                              : '',
 100         'ini'                              : '',
 101         'iso'                              : '',
 102         'jar'                              : '',
 103         'java'                             : '',
 104         'jl'                               : '',
 105         'jpeg'                             : '',
 106         'jpg'                              : '',
 107         'js'                               : '',
 108         'json'                             : '',
 109         'jsx'                              : '',
 110         'key'                              : '',
 111         'less'                             : '',
 112         'lha'                              : '',
 113         'lhs'                              : '',
 114         'log'                              : '',
 115         'lua'                              : '',
 116         'lzh'                              : '',
 117         'lzma'                             : '',
 118         'm4a'                              : '',
 119         'm4v'                              : '',
 120         'markdown'                         : '',
 121         'md'                               : '',
 122         'mkv'                              : '',
 123         'ml'                               : 'λ',
 124         'mli'                              : 'λ',
 125         'mov'                              : '',
 126         'mp3'                              : '',
 127         'mp4'                              : '',
 128         'mpeg'                             : '',
 129         'mpg'                              : '',
 130         'msi'                              : '',
 131         'mustache'                         : '',
 132         'o'                                : '',
 133         'ogg'                              : '',
 134         'pdf'                              : '',
 135         'php'                              : '',
 136         'pl'                               : '',
 137         'pm'                               : '',
 138         'png'                              : '',
 139         'pub'                              : '',
 140         'ppt'                              : '',
 141         'pptx'                             : '',
 142         'psb'                              : '',
 143         'psd'                              : '',
 144         'py'                               : '',
 145         'pyc'                              : '',
 146         'pyd'                              : '',
 147         'pyo'                              : '',
 148         'rar'                              : '',
 149         'rb'                               : '',
 150         'rc'                               : '',
 151         'rlib'                             : '',
 152         'rom'                              : '',
 153         'rpm'                              : '',
 154         'rs'                               : '',
 155         'rss'                              : '',
 156         'rtf'                              : '',
 157         's'                                : '',
 158         'so'                               : '',
 159         'scala'                            : '',
 160         'scss'                             : '',
 161         'sh'                               : '',
 162         'slim'                             : '',
 163         'sln'                              : '',
 164         'sql'                              : '',
 165         'styl'                             : '',
 166         'suo'                              : '',
 167         't'                                : '',
 168         'tar'                              : '',
 169         'tgz'                              : '',
 170         'ts'                               : '',
 171         'twig'                             : '',
 172         'vim'                              : '',
 173         'vimrc'                            : '',
 174         'wav'                              : '',
 175         'webm'                             : '',
 176         'xbps'                             : '',
 177         'xhtml'                            : '',
 178         'xls'                              : '',
 179         'xlsx'                             : '',
 180         'xml'                              : '',
 181         'xul'                              : '',
 182         'xz'                               : '',
 183         'yaml'                             : '',
 184         'yml'                              : '',
 185         'zip'                              : '',
 186         '.git'                             : '',
 187         'Desktop'                          : '',
 188         'Documents'                        : '',
 189         'Downloads'                        : '',
 190         'Dotfiles'                         : '',
 191         'Dropbox'                          : '',
 192         'Music'                            : '',
 193         'Pictures'                         : '',
 194         'Public'                           : '',
 195         'Templates'                        : '',
 196         'Videos'                           : '',
 197         '.Xauthority'                      : '',
 198         '.Xdefaults'                       : '',
 199         '.Xresources'                      : '',
 200         '.bash_aliases'                    : '',
 201         '.bashprofile'                     : '',
 202         '.bash_profile'                    : '',
 203         '.bash_logout'                     : '',
 204         '.bash_history'                    : '',
 205         '.bashrc'                          : '',
 206         '.dmrc'                            : '',
 207         '.DS_Store'                        : '',
 208         '.fasd'                            : '',
 209         '.fehbg'                           : '',
 210         '.gitconfig'                       : '',
 211         '.gitattributes'                   : '',
 212         '.gitignore'                       : '',
 213         '.inputrc'                         : '',
 214         '.jack-settings'                   : '',
 215         '.mime.types'                      : '',
 216         '.nvidia-settings-rc'              : '',
 217         '.pam_environment'                 : '',
 218         '.profile'                         : '',
 219         '.recently-used'                   : '',
 220         '.selected_editor'                 : '',
 221         '.vim'                             : '',
 222         '.vimrc'                           : '',
 223         '.viminfo'                         : '',
 224         '.xinitrc'                         : '',
 225         '.xinputrc'                        : '',
 226         'config'                           : '',
 227         'Dockerfile'                       : '',
 228         'docker-compose.yml'               : '',
 229         'dropbox'                          : '',
 230         'exact-match-case-sensitive-1.txt' : 'X1',
 231         'exact-match-case-sensitive-2'     : 'X2',
 232         'favicon.ico'                      : '',
 233         'a.out'                            : '',
 234         'bspwmrc'                          : '',
 235         'sxhkdrc'                          : '',
 236         'Makefile'                         : '',
 237         'Makefile.in'                      : '',
 238         'Makefile.ac'                      : '',
 239         'config.mk'                        : '',
 240         'config.m4'                        : '',
 241         'config.ac'                        : '',
 242         'configure'                        : '',
 243         'Rakefile'                         : '',
 244         'gruntfile.coffee'                 : '',
 245         'gruntfile.js'                     : '',
 246         'gruntfile.ls'                     : '',
 247         'gulpfile.coffee'                  : '',
 248         'gulpfile.js'                      : '',
 249         'gulpfile.ls'                      : '',
 250         'ini'                              : '',
 251         'ledger'                           : '',
 252         'package.json'                     : '',
 253         'package-lock.json'                : '',
 254         '.ncmpcpp'                         : '',
 255         'playlists'                        : '',
 256         'known_hosts'                      : '',
 257         'authorized_keys'                  : '',
 258         'license'                          : '',
 259         'LICENSE.md'                       : '',
 260         'LICENSE'                          : '',
 261         'LICENSE.txt'                      : '',
 262         'mimeapps.list'                    : '',
 263         'node_modules'                     : '',
 264         'procfile'                         : '',
 265         'react.jsx'                        : '',
 266         'README.rst'                       : '',
 267         'README.md'                        : '',
 268         'README.markdown'                  : '',
 269         'README'                           : '',
 270         'README.txt'                       : '',
 271         'user-dirs.dirs'                   : '',
 272         'webpack.config.js'                : '',
 273     }; # }}}
 274 
 275     if file.is_directory: return map.get(file.relative_path, '');
 276     return map.get(file.relative_path, map.get(file.extension, ''));