From f4fa43b7e66e57d02f75f6235649883bfdbdc8aa Mon Sep 17 00:00:00 2001 From: lkarch <97860398+edwark43@users.noreply.github.com> Date: Mon, 10 Jun 2024 14:41:31 -0400 Subject: [PATCH] Fixed devicons --- config/ranger/plugins/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 143 bytes .../plugins/ranger_devicons/__init__.py | 15 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 986 bytes .../__pycache__/devicons.cpython-312.pyc | Bin 0 -> 13724 bytes .../plugins/ranger_devicons/devicons.py | 446 ++++++++++++++++++ 6 files changed, 461 insertions(+) create mode 100644 config/ranger/plugins/__init__.py create mode 100644 config/ranger/plugins/__pycache__/__init__.cpython-312.pyc create mode 100644 config/ranger/plugins/ranger_devicons/__init__.py create mode 100644 config/ranger/plugins/ranger_devicons/__pycache__/__init__.cpython-312.pyc create mode 100644 config/ranger/plugins/ranger_devicons/__pycache__/devicons.cpython-312.pyc create mode 100644 config/ranger/plugins/ranger_devicons/devicons.py diff --git a/config/ranger/plugins/__init__.py b/config/ranger/plugins/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/config/ranger/plugins/__pycache__/__init__.cpython-312.pyc b/config/ranger/plugins/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..1f1eed7997a9ca761a60a538fe9e4572fe39ecde GIT binary patch literal 143 zcmX@j%ge>Uz`$_bJv|LXKL!!#_%jOw1H*KNN(N0vzm*I{ObiSRpFwJV>FH+2=w=cQ$)>lY>FrKc9@7vz+tXXX{_$H!;pWtPOp>lIY~;;_lhPbtkwwJTy} YU|?WmU|=W)F+MUgGBOr1GcYg!0Db-;8UO$Q literal 0 HcmV?d00001 diff --git a/config/ranger/plugins/ranger_devicons/__init__.py b/config/ranger/plugins/ranger_devicons/__init__.py new file mode 100644 index 0000000..664b276 --- /dev/null +++ b/config/ranger/plugins/ranger_devicons/__init__.py @@ -0,0 +1,15 @@ +import os +import ranger.api +from ranger.core.linemode import LinemodeBase +from .devicons import * + +SEPARATOR = os.getenv('RANGER_DEVICONS_SEPARATOR', ' ') + +@ranger.api.register_linemode +class DevIconsLinemode(LinemodeBase): + name = "devicons" + + uses_metadata = False + + def filetitle(self, file, metadata): + return devicon(file) + SEPARATOR + file.relative_path diff --git a/config/ranger/plugins/ranger_devicons/__pycache__/__init__.cpython-312.pyc b/config/ranger/plugins/ranger_devicons/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..be1dcb551773d0d329ebba907c3935c15b0875ba GIT binary patch literal 986 zcmX@j%ge>Uz`$_HJv}X-k%8echy%lHP{!vO3=9m@8B!Qh7;_k+AT(nXQwl>0Qx0=3 zOB4$uLke>WOAhN=CPoG(hE#?u9;i+vDup$LZ8Z}_Ac{SeDN6vtMkcd_ka-X`6N5WL z3VRDf3P&o-YG#PoY6!&;#Z}3u$@vn*^V4L!#p9EimztZOlIoOLocfZHfq_Aj@fM@j zEy*B9KX=!lco)|&PiKF>;P_zI0LLK55dWZGj0(vh-7pN&17d%c0{b|XA&N1DA&M!5 zF^V~bDT*b9xrHH$wUR}X^_GB3YMEzpeqJ%m&RZNQsb!fU5w~QhGeIUXfY>1X*#T^1 z3Cs$H8phR7b_q0C7#OM;7#M08vsl17Q3#MsFoPzepCSdyX1e2b+xH7D&BOIl`5>Mf4k)RM%M#FE5fkV_O46n@$1XXNLm>gSXuCl>4L zCFkd*Wv1&FCFZ547U>t{l%{9q6+^l4P|J$-U#}}3+=0IgwK=du%(&E(Oc$lY(gc%qZRx%WcFfcF_ zfl^QrCx`_iI6w{%WME)uVR*nP+@SJ6NW4M!GYccL6+|^ijVAXkru^btToB*uB^G4f zVuP@6i9l$*i9xWx?8DOi-6o>^RyS`-gg z4zi;Nl%60~f*kmZ!v^9%yCNk91_n?vD0XLHVEDky$jEq`f%7(l;9UmYI}G9vctks# z`aL^6FNhg#Fuu%V-oW{Qk-c52QR+IQ>_tY|FHCHVRugJIGq5pQeP(80lKTh}09ynA D#$4~4 literal 0 HcmV?d00001 diff --git a/config/ranger/plugins/ranger_devicons/__pycache__/devicons.cpython-312.pyc b/config/ranger/plugins/ranger_devicons/__pycache__/devicons.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5091cb5d564c1a431027808d93e0cc74ddfede30 GIT binary patch literal 13724 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 literal 0 HcmV?d00001 diff --git a/config/ranger/plugins/ranger_devicons/devicons.py b/config/ranger/plugins/ranger_devicons/devicons.py new file mode 100644 index 0000000..f0048ca --- /dev/null +++ b/config/ranger/plugins/ranger_devicons/devicons.py @@ -0,0 +1,446 @@ +#!/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 + + +# Get the XDG_USER_DIRS directory names from environment variables +xdgs_dirs = { + os.path.basename(os.getenv(key).rstrip('/')): icon + for key, icon in ( + ('XDG_DOCUMENTS_DIR', ''), + ('XDG_DOWNLOAD_DIR', ''), + ('XDG_CONFIG_DIR', ''), + ('XDG_MUSIC_DIR', ''), + ('XDG_PICTURES_DIR', ''), + ('XDG_PUBLICSHARE_DIR', ''), + ('XDG_TEMPLATES_DIR', ''), + ('XDG_VIDEOS_DIR', ''), + ) + if os.getenv(key) +} + + +# 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' : '', + 'wps' : '', + 'wpt' : '', + 'doc' : '', + 'docx' : '', + 'docm' : '', + 'dotx' : '', + 'dotm' : '', + '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' : '', + 'ipynb' : '', + 'iso' : '', + 'jar' : '', + 'java' : '', + 'jl' : '', + 'jpeg' : '', + 'jpg' : '', + 'js' : '', + 'json' : '', + 'jsonc' : '', + 'jsx' : '', + 'key' : '', + 'ksh' : '', + 'leex' : '', + 'less' : '', + 'lha' : '', + 'lhs' : '', + 'log' : '', + 'lua' : '', + 'lz' : '', + 'lzh' : '', + 'lzma' : '', + 'm4a' : '', + 'm4v' : '', + 'markdown' : '', + 'md' : '', + 'mdx' : '', + 'mjs' : '', + 'mka' : '', + 'mkv' : '', + 'ml' : 'λ', + 'mli' : 'λ', + 'mov' : '', + 'mp3' : '', + 'mp4' : '', + 'mpeg' : '', + 'mpg' : '', + 'msi' : '', + 'mustache' : '', + 'nix' : '', + 'o' : '', + 'ogg' : '', + 'opus' : '', + 'part' : '', + 'pdf' : '', + 'php' : '', + 'pl' : '', + 'pm' : '', + 'png' : '', + 'pp' : '', + 'dps' : '', + 'dpt' : '', + 'ppt' : '', + 'pptx' : '', + 'pptm' : '', + 'pot' : '', + 'potx' : '', + 'potm' : '', + 'pps' : '', + 'ppsx' : '', + 'ppsm' : '', + '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' : '', + 'svelte' : '', + 'swift' : '', + 't' : '', + 'tar' : '', + 'tex' : '󰙩', + 'tgz' : '', + 'toml' : '', + 'torrent' : '', + 'ts' : '', + 'tsx' : '', + 'twig' : '', + 'vim' : '', + 'vimrc' : '', + 'vue' : '󰡄', + 'wav' : '', + 'webm' : '', + 'webmanifest' : '', + 'webp' : '', + 'xbps' : '', + 'xcplayground' : '', + 'xhtml' : '', + 'et' : '󰈛', + 'ett' : '󰈛', + 'xls' : '󰈛', + 'xlt' : '󰈛', + 'xlsx' : '󰈛', + 'xlsm' : '󰈛', + 'xlsb' : '󰈛', + 'xltx' : '󰈛', + 'xltm' : '󰈛', + 'xla' : '󰈛', + 'xlam' : '󰈛', + 'xml' : '', + 'xul' : '', + 'xz' : '', + 'yaml' : '', + 'yml' : '', + 'zip' : '', + 'zsh' : '', +} + + +dir_node_exact_matches = { +# English + '.git' : '', + 'Desktop' : '', + 'Documents' : '', + 'Downloads' : '', + 'Dotfiles' : '', + 'Dropbox' : '', + 'Music' : '', + 'Pictures' : '', + 'Public' : '', + 'Templates' : '', + 'Videos' : '', + 'anaconda3' : '', + 'go' : '', + 'workspace' : '', + 'OneDrive' : '', +# 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' : '', +# Chinese(Simple) + '桌面' : '', + '文档' : '', + '下载' : '', + '音乐' : '', + '图片' : '', + '公共的' : '', + '公共' : '', + '模板' : '', + '视频' : '', +# Chinese(Traditional) + '桌面' : '', + '文檔' : '', + '下載' : '', + '音樂' : '', + '圖片' : '', + '公共的' : '', + '公共' : '', + '模板' : '', + '視頻' : '', +} + +# Python 2.x-3.4 don't support unpacking syntex `{**dict}` +# XDG_USER_DIRS +dir_node_exact_matches.update(xdgs_dirs) + + +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, ''))