From dcc6fce4c66d9bee8cc3815c7f82d9754cabc932 Mon Sep 17 00:00:00 2001 From: Yorick Barbanneau Date: Sun, 24 Dec 2023 18:01:25 +0100 Subject: [PATCH] Rework ViFM configuration and theme --- home-manager/cli/vifm/default.nix | 4 +- .../cli/vifm/files/base16-default-dark.vifm | 16 ++--- home-manager/cli/vifm/files/devicons.vifm | 71 +++++++++++++++++++ home-manager/cli/vifm/files/vifmrc | 12 +++- 4 files changed, 91 insertions(+), 12 deletions(-) create mode 100644 home-manager/cli/vifm/files/devicons.vifm diff --git a/home-manager/cli/vifm/default.nix b/home-manager/cli/vifm/default.nix index 4b613dd..d1c5620 100644 --- a/home-manager/cli/vifm/default.nix +++ b/home-manager/cli/vifm/default.nix @@ -2,9 +2,11 @@ { home.packages = with pkgs; [ vifm - chafa + chafa # Preview images + poppler_utils # Preview PDF file ]; home.file.".config/vifm/vifmrc".source = ./files/vifmrc; home.file.".config/vifm/colors/base16-default-dark.vifm".source = ./files/base16-default-dark.vifm; + home.file.".config/vifm/devicons.vifm".source = ./files/devicons.vifm; } diff --git a/home-manager/cli/vifm/files/base16-default-dark.vifm b/home-manager/cli/vifm/files/base16-default-dark.vifm index 41a106e..e772b7f 100644 --- a/home-manager/cli/vifm/files/base16-default-dark.vifm +++ b/home-manager/cli/vifm/files/base16-default-dark.vifm @@ -1,18 +1,18 @@ highlight clear highlight Win cterm=none ctermfg=7 ctermbg=0 -highlight OtherWin cterm=none ctermfg=20 ctermbg=18 +highlight OtherWin cterm=none ctermfg=20 ctermbg=0 highlight Border cterm=none ctermfg=7 ctermbg=0 -highlight AuxWin cterm=none ctermfg=7 ctermbg=18 +highlight AuxWin cterm=none ctermfg=7 ctermbg=0 -highlight TopLine cterm=bold ctermfg=7 ctermbg=18 -highlight TopLineSel cterm=bold ctermfg=0 ctermbg=5 +highlight TopLine cterm=bold ctermfg=8 ctermbg=0 +highlight TopLineSel cterm=bold ctermfg=9 ctermbg=10 highlight CmdLine cterm=none ctermfg=7 ctermbg=0 highlight ErrorMsg cterm=bold ctermfg=1 ctermbg=0 highlight StatusLine cterm=none ctermfg=7 ctermbg=18 highlight JobLine cterm=bold ctermfg=5 ctermbg=0 -highlight SuggestBox cterm=bold ctermfg=7 ctermbg=8 +highlight SuggestBox cterm=none ctermfg=7 ctermbg=11 highlight WildMenu cterm=bold ctermfg=7 ctermbg=18 highlight CurrLine cterm=bold,inverse ctermfg=default ctermbg=default @@ -22,8 +22,8 @@ highlight LineNr cterm=none ctermfg=7 ctermbg=0 highlight Directory cterm=bold ctermfg=4 ctermbg=default highlight Link cterm=none ctermfg=6 ctermbg=default -highlight BrokenLink cterm=none ctermfg=6 ctermbg=default -highlight Socket cterm=bold ctermfg=16 ctermbg=default -highlight Device cterm=none ctermfg=1 ctermbg=default +highlight BrokenLink cterm=none ctermfg=1 ctermbg=default +highlight Socket cterm=bold ctermfg=5 ctermbg=default +highlight Device cterm=none ctermfg=3 ctermbg=default highlight Fifo cterm=none ctermfg=5 ctermbg=default highlight Executable cterm=bold ctermfg=2 ctermbg=default diff --git a/home-manager/cli/vifm/files/devicons.vifm b/home-manager/cli/vifm/files/devicons.vifm new file mode 100644 index 0000000..7a81a55 --- /dev/null +++ b/home-manager/cli/vifm/files/devicons.vifm @@ -0,0 +1,71 @@ +" Ranger devicons for ViFM +" https://github.com/cirala/vifm_devicons +" +" Filetypes/directories +set classify=' :dir:/, :exe:, :reg:, :link:,? :?:, ::../::' + +" 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::' +set classify+=' ::dropbox::' +set classify+=' ::favicon.*,,README,,readme::' +set classify+=' ::.vim,,.vimrc,,.gvimrc,,.vifm::' +set classify+=' ::gruntfile.coffee,,gruntfile.js,,gruntfile.ls::' +set classify+=' ::gulpfile.coffee,,gulpfile.js,,gulpfile.ls::' +set classify+=' ::ledger::' +set classify+=' ::license,,copyright,,copying,,LICENSE,,COPYRIGHT,,COPYING::' +set classify+=' ::node_modules::' +set classify+=' ::react.jsx::' + +" File extensions +set classify+='λ ::*.ml,,*.mli::' +set classify+=' ::*.styl::' +set classify+=' ::*.scss::' +set classify+=' ::*.py,,*.pyc,,*.pyd,,*.pyo::' +set classify+=' ::*.php::' +set classify+=' ::*.markdown,,*.md::' +set classify+=' ::*.json::' +set classify+=' ::*.js::' +set classify+=' ::*.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::' +set classify+=' ::*.ejs,,*.htm,,*.html,,*.slim,,*.xml::' +set classify+=' ::*.mustasche::' +set classify+=' ::*.css,,*.less,,*.bat,,*.conf,,*.ini,,*.rc,,*.yml,,*.cfg::' +set classify+=' ::*.rss::' +set classify+=' ::*.coffee::' +set classify+=' ::*.twig::' +set classify+=' ::*.c++,,*.cpp,,*.cxx,,*.h::' +set classify+=' ::*.cc,,*.c::' +set classify+=' ::*.hs,,*.lhs::' +set classify+=' ::*.lua::' +set classify+=' ::*.jl::' +set classify+=' ::*.go::' +set classify+=' ::*.ts::' +set classify+=' ::*.db,,*.dump,,*.sql::' +set classify+=' ::*.sln,,*.suo::' +set classify+=' ::*.exe::' +set classify+=' ::*.diff,,*.sum,,*.md5,,*.sha512::' +set classify+=' ::*.scala::' +set classify+=' ::*.java,,*.jar::' +set classify+=' ::*.xul::' +set classify+=' ::*.clj,,*.cljc::' +set classify+=' ::*.pl,,*.pm,,*.t::' +set classify+=' ::*.cljs,,*.edn::' +set classify+=' ::*.rb::' +set classify+=' ::*.fish,,*.sh,,*.bash::' +set classify+=' ::*.dart::' +set classify+=' ::*.f#,,*.fs,,*.fsi,,*.fsscript,,*.fsx::' +set classify+=' ::*.rlib,,*.rs::' +set classify+=' ::*.d::' +set classify+=' ::*.erl,,*.hrl::' +set classify+=' ::*.ai::' +set classify+=' ::*.psb,,*.psd::' +set classify+=' ::*.jsx::' +set classify+=' ::*.aac,,*.anx,,*.asf,,*.au,,*.axa,,*.flac,,*.m2a,,*.m4a,,*.mid,,*.midi,,*.mp3,,*.mpc,,*.oga,,*.ogg,,*.ogx,,*.ra,,*.ram,,*.rm,,*.spx,,*.wav,,*.wma,,*.ac3::' +set classify+=' ::*.avi,,*.flv,,*.mkv,,*.mov,,*.mp4,,*.mpeg,,*.mpg,,*.webm,,*.av1::' +set classify+=' ::*.epub,,*.pdf,,*.fb2,,*.djvu::' +set classify+=' ::*.7z,,*.apk,,*.bz2,,*.cab,,*.cpio,,*.deb,,*.gem,,*.gz,,*.gzip,,*.lh,,*.lzh,,*.lzma,,*.rar,,*.rpm,,*.tar,,*.tgz,,*.xz,,*.zip,,*.zst::' +set classify+=' ::*.cbr,,*.cbz::' +set classify+=' ::*.log::' +set classify+=' ::*.doc,,*.docx,,*.adoc::' +set classify+=' ::*.xls,,*.xlsmx::' +set classify+=' ::*.pptx,,*.ppt::' + diff --git a/home-manager/cli/vifm/files/vifmrc b/home-manager/cli/vifm/files/vifmrc index 1ffab40..d946abf 100644 --- a/home-manager/cli/vifm/files/vifmrc +++ b/home-manager/cli/vifm/files/vifmrc @@ -168,11 +168,14 @@ command! reload :write | restart full " " You can also add %CLEAR if you want to clear screen before running FUSE " program. There is also %FOREGROUND, which is useful for entering passwords. - fileviewer .*/,*/ ls --group-directories-first --classify --color %c fileviewer {*.pdf}, pdftotext -nopgbrk %c - +filetype {*.pdf}, + \ xdg-open fileviewer {*.bmp,*.jpg,*.jpeg,*.png,*.gif,*.xpm}, \ chafa -f sixel -s %pwx%ph %c:p %pd %N 2>/dev/null +filetype {*.bmp,*.jpg,*.jpeg,*.png,*.gif,*.xpm}, + \ xdg-open fileviewer *.zip,*.jar,*.war,*.ear,*.oxt tar -tf %f fileviewer *.tgz,*.tar.gz tar -tzf %c fileviewer *.tar.bz2,*.tbz2 tar -tjf %c @@ -185,12 +188,12 @@ fileviewer {*.rar}, unrar v %c fileviewer {*.7z}, 7z l %c fileviewer bat --color always --wrap never --pager never %c -p -filetype * xdg-open +fileviewer * echo "Unknown file type..." " Customize view columns a bit (enable ellipsis for truncated file names) set viewcolumns=-{name}..,6{}. " Show vertical border -set fillchars=vborder:│ +set fillchars=vborder: " Filter-out build and temporary files " filter! {*.lo,*.o,*.d,*.class,*.pyc,*.pyo,.*~} @@ -294,6 +297,9 @@ nnoremap :sync %c " Swap panes nnoremap x +" source somes plugins +source ~/.config/vifm/devicons.vifm + " ------------------------------------------------------------------------------ " Various customization examples " ------------------------------------------------------------------------------