From b712d456dd06306d3cfe9c8008e25bfc8d708b5e Mon Sep 17 00:00:00 2001 From: Marty Oehme Date: Mon, 4 Dec 2023 08:29:33 +0100 Subject: [PATCH] vifm: Move devicon classify setting into separate file Will be sourced on startup and provide basically the same icon prefix as before. Made sure to not invoke 'classify+=' too often since each invocation slows down vifm startup a little. (see: https://github.com/vifm/vifm/issues/542) With it being sourced externally we can now do fun things with classify itself and it is easier to update from the rest of our settings. --- terminal/.config/vifm/favicons.vifm | 88 +++++++++++++++++++++++++++++ terminal/.config/vifm/vifmrc | 20 +------ 2 files changed, 91 insertions(+), 17 deletions(-) create mode 100644 terminal/.config/vifm/favicons.vifm diff --git a/terminal/.config/vifm/favicons.vifm b/terminal/.config/vifm/favicons.vifm new file mode 100644 index 0000000..41664ab --- /dev/null +++ b/terminal/.config/vifm/favicons.vifm @@ -0,0 +1,88 @@ +" Ranger devicons for ViFM +" https://github.com/cirala/vifm_devicons +" +" Filetypes/directories + +" Specific directories +set classify+=' :dir:/, :exe:, :reg:, :link:,? :?:, ::../::/, + \  ::.git/::/, + \  ::.config/,,Makefile::/, + \  ::Desktop/::/, + \  ::Documents/::/, + \  ::Development/::/, + \  ::Downloads/::/, + \  ::Dropbox/::/, + \  ::Nextcloud/::/, + \  ::Google\ Drive/::/, + \  ::gitrepos/::/, + \  ::Music/::/, + \  ::Pictures/::/, + \  ::Public/::/, + \  ::Templates/::/, + \  ::Videos/::/, + \  ::Zotero/::/, + \  ::node_modules/::/' + +" Specific files +set classify+=' ::.Xdefaults,,.Xresources,,.bashprofile,,.bash_profile,,.bashrc,,.dmrc,,.d_store,,.fasd,,.gitconfig,,.gitignore,,.jack-settings,,.mime.types,,.nvidia-settings-rc,,.pam_environment,,.profile,,.recently-used,,.selected_editor,,.xinitpurc,,.zprofile,,.yarnc,,.snclirc,,.tmux.conf,,.urlview,,.config,,.ini,,.user-dirs.dirs,,.mimeapps.list,,.offlineimaprc,,.msmtprc,,.Xauthority,,config::/, + \  ::favicon.*,,README,,readme::/, + \  ::.vim,,.vimrc,,.gvimrc,,.vifm::/, + \  ::gruntfile.coffee,,gruntfile.js,,gruntfile.ls::/, + \  ::gulpfile.coffee,,gulpfile.js,,gulpfile.ls::/, + \  ::ledger,,*.beancount::/, + \  ::license,,copyright,,copying,,LICENSE,,COPYRIGHT,,COPYING::/, + \  ::react.jsx::' + +" File extensions +set classify+='λ ::*.ml,,*.mli::/, + \  ::*.styl::/, + \  ::*.scss::/, + \  ::*.py,,*.pyc,,*.pyd,,*.pyo::/, + \  ::*.php::/, + \  ::*.markdown,,*.md::/, + \  ::*.json::/, + \  ::*.js::/, + \  ::*.bmp,,*.gif,,*.ico,,*.jpeg,,*.jpg,,*.png,,*.svg,,*.svgz,,*.tga,,*.tiff,,*.xmb,,*.xcf,,*.xpm,,*.xspf,,*.xwd,,*.cr2,,*.dng,,*.3fr,,*.ari,,*.arw,,*.bay,,*.crw,,*.cr3,,*.cap,,*.data,,*.dcs,,*.dcr,,*.drf,,*.eip,,*.erf,,*.fff,,*.gpr,,*.iiq,,*.k25,,*.kdc,,*.mdc,,*.mef,,*.mos,,*.mrw,,*.obm,,*.orf,,*.pef,,*.ptx,,*.pxn,,*.r3d,,*.raf,,*.raw,,*.rwl,,*.rw2,,*.rwz,,*.sr2,,*.srf,,*.srw,,*.tif,,*.x3f,,*.webp,,*.avif,,*.jxl::/, + \  ::*.ejs,,*.htm,,*.html,,*.slim,,*.xml::/, + \  ::*.mustasche::/, + \  ::*.css,,*.less,,*.bat,,*.conf,,*.ini,,*.rc,,*.yml,,*.cfg::/, + \  ::*.rss::/, + \  ::*.coffee::/, + \  ::*.twig::/, + \  ::*.c++,,*.cpp,,*.cxx,,*.h::/, + \  ::*.cc,,*.c::/, + \  ::*.hs,,*.lhs::/, + \  ::*.lua::/, + \  ::*.jl::/, + \  ::*.go::/, + \  ::*.ts::/, + \  ::*.db,,*.dump,,*.sql::/, + \  ::*.sln,,*.suo::/, + \  ::*.exe::/, + \  ::*.diff,,*.sum,,*.md5,,*.sha512::/, + \  ::*.scala::/, + \  ::*.java,,*.jar::/, + \  ::*.xul::/, + \  ::*.clj,,*.cljc::/, + \  ::*.pl,,*.pm,,*.t::/, + \  ::*.cljs,,*.edn::/, + \  ::*.rb::/, + \  ::*.fish,,*.sh,,*.bash::/, + \  ::*.dart::/, + \  ::*.f#,,*.fs,,*.fsi,,*.fsscript,,*.fsx::/, + \  ::*.rlib,,*.rs::/, + \  ::*.d::/, + \  ::*.erl,,*.hrl::/, + \  ::*.ai::/, + \  ::*.psb,,*.psd::/, + \  ::*.jsx::/, + \  ::*.aac,,*.anx,,*.asf,,*.au,,*.axa,,*.flac,,*.m2a,,*.m4a,,*.mid,,*.midi,,*.mp3,,*.mpc,,*.oga,,*.ogg,,*.ogx,,*.ra,,*.ram,,*.rm,,*.spx,,*.wav,,*.wma,,*.ac3::/, + \  ::*.avi,,*.flv,,*.mkv,,*.mov,,*.mp4,,*.mpeg,,*.mpg,,*.webm,,*.av1::/, + \  ::*.epub,,*.pdf,,*.fb2,,*.djvu::/, + \  ::*.7z,,*.apk,,*.bz2,,*.cab,,*.cpio,,*.deb,,*.gem,,*.gz,,*.gzip,,*.lh,,*.lzh,,*.lzma,,*.rar,,*.rpm,,*.tar,,*.tgz,,*.xz,,*.zip,,*.zst::/, + \  ::*.cbr,,*.cbz::/, + \  ::*.log::/, + \  ::*.doc,,*.docx,,*.adoc::/, + \  ::*.xls,,*.xlsmx::/, + \  ::*.pptx,,*.ppt::/, + \  ::*.sqlite,,*.db::' diff --git a/terminal/.config/vifm/vifmrc b/terminal/.config/vifm/vifmrc index eef9d3c..7c51e5a 100644 --- a/terminal/.config/vifm/vifmrc +++ b/terminal/.config/vifm/vifmrc @@ -307,28 +307,14 @@ noremap w : if layoutis('only') \| " }}} -" Classify (Icons) {{{ -" file types -set classify=' :dir:/, :exe:, :reg:, :link:' -" various file names -set classify+=' ::../::, ::*.sh::, ::*.[hc]pp::, ::*.[hc]::, ::/^copying|license$/::, ::.git/,,*.git/::, ::*.epub,,*.fb2,,*.djvu::, ::*.pdf::, ::*.htm,,*.html,,**.[sx]html,,*.xml::' -" archives -set classify+=' ::*.7z,,*.ace,,*.arj,,*.bz2,,*.cpio,,*.deb,,*.dz,,*.gz,,*.jar,,*.lzh,,*.lzma,,*.rar,,*.rpm,,*.rz,,*.tar,,*.taz,,*.tb2,,*.tbz,,*.tbz2,,*.tgz,,*.tlz,,*.trz,,*.txz,,*.tz,,*.tz2,,*.xz,,*.z,,*.zip,,*.zoo::' -" images -set classify+=' ::*.bmp,,*.gif,,*.jpeg,,*.jpg,,*.ico,,*.png,,*.ppm,,*.svg,,*.svgz,,*.tga,,*.tif,,*.tiff,,*.xbm,,*.xcf,,*.xpm,,*.xspf,,*.xwd::' -" audio -set classify+=' ::*.aac,,*.anx,,*.asf,,*.au,,*.axa,,*.flac,,*.m2a,,*.m4a,,*.mid,,*.midi,,*.mp3,,*.mpc,,*.oga,,*.ogg,,*.ogx,,*.ra,,*.ram,,*.rm,,*.spx,,*.wav,,*.wma,,*.ac3::' -" media -set classify+=' ::*.avi,,*.ts,,*.axv,,*.divx,,*.m2v,,*.m4p,,*.m4v,,*.mka,,*.mkv,,*.mov,,*.mp4,,*.flv,,*.mp4v,,*.mpeg,,*.mpg,,*.nuv,,*.ogv,,*.pbm,,*.pgm,,*.qt,,*.vob,,*.wmv,,*.xvid::' -" office files -set classify+=' ::*.doc,,*.docx::, ::*.xls,,*.xls[mx]::, ::*.pptx,,*.ppt::' -" }}} -" " ------------------------------------------------------------------------------ " Filetypes {{{ " ------------------------------------------------------------------------------ +" give pretty nerdfont-devicon icons to most files +source $VIFM/favicons.vifm + " The file type is for the default programs to be used with " a file extension. " :filetype pattern1,pattern2 defaultprogram,program2