mirror of
https://github.com/foo-dogsquared/dotfiles.git
synced 2025-01-31 04:57:57 +00:00
f450efa7f3
With the added interface for multiple manifests, it is now possible to set up this setup around it. In my case, I simply created an extra folder in '.vtsm'. Along with the restructuring, some configurations are changed such as the customized Newsboat config and minor updates here and there.
149 lines
3.5 KiB
Plaintext
Executable File
149 lines
3.5 KiB
Plaintext
Executable File
# Configuration for lf (https://github.com/gokcehan/lf).
|
|
# Based on the given example configuration at https://github.com/gokcehan/lf/blob/master/etc/lfrc.example.
|
|
# https://godoc.org/github.com/gokcehan/lf for documentation.
|
|
|
|
|
|
|
|
|
|
####################
|
|
# BEHAVIOR TOGGLES #
|
|
####################
|
|
|
|
# interpreter for shell commands (needs to be POSIX compatible)
|
|
set shell sh
|
|
|
|
# set '-eu' options for shell commands
|
|
# These options are used to have safer shell commands. Option '-e' is used to
|
|
# exit on error and option '-u' is used to give error for unset variables.
|
|
# Option '-f' disables pathname expansion which can be useful when $f, $fs, and
|
|
# $fx variables contain names with '*' or '?' characters. However, this option
|
|
# is used selectively within individual commands as it can be limiting at
|
|
# times.
|
|
set shellopts '-eu'
|
|
|
|
# set internal field separator (IFS) to "\n" for shell commands
|
|
# This is useful to automatically split file names in $fs and $fx properly
|
|
# since default file separator used in these variables (i.e. 'filesep' option)
|
|
# is newline. You need to consider the values of these options and create your
|
|
# commands accordingly.
|
|
set ifs "\n"
|
|
|
|
# create the borders around the panels
|
|
set drawbox true
|
|
|
|
# toggle hidden files
|
|
set hidden
|
|
|
|
set color256
|
|
set timefmt "2006-01-02 15:04:05"
|
|
set dircounts
|
|
|
|
# leave some space at the top and the bottom of the screen
|
|
set scrolloff 10
|
|
|
|
|
|
|
|
|
|
############
|
|
# COMMANDS #
|
|
############
|
|
|
|
# define a custom 'open' command
|
|
# This command is called when current file is not a directory. You may want to
|
|
# use either file extensions and/or mime types here. Below uses an editor for
|
|
# text files and a file opener for the rest.
|
|
cmd open ${{
|
|
case $(file --mime-type $f -b) in
|
|
image/svg+xml) inkscape $fx;;
|
|
image/*) sxiv $fx;;
|
|
text/*) $EDITOR $fx;;
|
|
video/*) mpv $fx;;
|
|
*) for f in $fx; do setsid $OPENER $f > /dev/null 2> /dev/null & done;;
|
|
esac
|
|
}}
|
|
|
|
# define a custom 'rename' command without prompt for overwrite
|
|
cmd rename %[ -e $1 ] && printf "file exists" || mv $f $1
|
|
|
|
# move current file or selected files to trash folder
|
|
# (also see 'man mv' for backup/overwrite options)
|
|
cmd trash %set -f; mv $fx ~/.trash
|
|
|
|
# define a custom 'delete' command
|
|
cmd delete ${{
|
|
set -f
|
|
printf "$fx\n"
|
|
printf "delete?[y/n]"
|
|
read ans
|
|
[ $ans = "y" ] && rm -rf $fx
|
|
}}
|
|
|
|
# extract the current file with the right command
|
|
# (xkcd link: https://xkcd.com/1168/)
|
|
cmd extract ${{
|
|
set -f
|
|
case $f in
|
|
*.tar.bz|*.tar.bz2|*.tbz|*.tbz2) tar xjvf $f;;
|
|
*.tar.gz|*.tgz) tar xzvf $f;;
|
|
*.tar.xz|*.txz) tar xJvf $f;;
|
|
*.zip) unzip $f;;
|
|
*.rar) unrar x $f;;
|
|
*.7z) 7z x $f;;
|
|
esac
|
|
}}
|
|
|
|
# compress current file or selected files with tar and gunzip
|
|
cmd tar ${{
|
|
set -f
|
|
mkdir $1
|
|
cp -r $fx $1
|
|
tar czf $1.tar.gz $1
|
|
rm -rf $1
|
|
}}
|
|
|
|
# compress current file or selected files with zip
|
|
cmd zip ${{
|
|
set -f
|
|
mkdir $1
|
|
cp -r $fx $1
|
|
zip -r $1.zip $1
|
|
rm -rf $1
|
|
}}
|
|
|
|
|
|
|
|
|
|
############
|
|
# MAPPINGS #
|
|
############
|
|
|
|
# file operations
|
|
map D delete
|
|
map <delete> delete
|
|
map r push :rename<space>
|
|
|
|
# use enter for shell commands
|
|
map <enter> shell
|
|
|
|
# go to usual directories
|
|
map gr cd /run/media
|
|
map g/ cd /
|
|
|
|
# execute current file (must be executable)
|
|
map x $$f
|
|
map X !$f
|
|
|
|
# dedicated keys for file opener actions
|
|
map oo open $f
|
|
map oO open --ask $f
|
|
|
|
# dedicated keys for usual application suite
|
|
# feel free to replace this accordingly to your needs
|
|
map oz !nvim $f
|
|
map ox !code $f
|
|
map oc !inkscape $f
|
|
map ov !gimp $f
|
|
map ob !blender $f
|
|
map of !firefox $f
|
|
|