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