diff options
Diffstat (limited to 'lf/lfrc')
-rw-r--r-- | lf/lfrc | 351 |
1 files changed, 351 insertions, 0 deletions
@@ -0,0 +1,351 @@ +set ratios 1:2:3 +set cleaner ~/.config/lf/cleaner +set previewer ~/.config/lf/preview +# Basic Settings +set preview true +set drawbox false +set icons true +set ignorecase true + +# Custom Functions +cmd open ${{ + case $(file --mime-type "$f" -bL) in + text/*|application/json) $EDITOR "$f";; + video/*) mpv "$f";; + audio/*) mpv "$f";; + application/pdf) zathura "$f" ;; + image/*) sxiv "$f" ;; + *) xdg-open "$f" ;; + esac +}} + +cmd mkdir ${{ + printf "Directory Name: " + read ans + mkdir $ans +}} + +cmd mkfile ${{ + printf "File Name: " + read ans + $EDITOR $ans +}} + +cmd chmod ${{ + printf "Mode Bits: " + read ans + + for file in "$fx" + do + chmod $ans $file + done +}} + +cmd sudomkfile ${{ + printf "File Name: " + read ans + doas $EDITOR $ans +}} + +cmd setwallpaper %cp "$f" ~/background.jpg && xwallpaper --center "$f" + +cmd fzf_jump ${{ + res="$(find . -maxdepth 3 | fzf --reverse --header='Jump to location')" + if [ -f "$res" ]; then + cmd="select" + elif [ -d "$res" ]; then + cmd="cd" + fi + lf -remote "send $id $cmd \"$res\"" +}} + +cmd broot_jump ${{ + f=$(mktemp) + res="$(broot --outcmd $f && cat $f | sed 's/cd //')" + rm -f "$f" + if [ -f "$res" ]; then + cmd="select" + elif [ -d "$res" ]; then + cmd="cd" + fi + lf -remote "send $id $cmd \"$res\"" +}} + +cmd open_config ${{ + $EDITOR $(bookmenu -b ~/.config/bookmenu/configs -f fzf -o) +}} + +cmd dragon %dragon-drop -a -x $fx +cmd dragon-stay %dragon-drop -a $fx +cmd dragon-individual %dragon-drop $fx +cmd cpdragon %cpdragon +cmd mvdragon %mvdragon +cmd dlfile %dlfile + +# Archive bindings +cmd unarchive ${{ + case "$f" in + *.zip) unzip "$f" ;; + *.tar.gz) tar -xzvf "$f" ;; + *.tar.bz2) tar -xjvf "$f" ;; + *.tar.xz) tar -xJvf "$f" ;; + *.tar) tar -xvf "$f" ;; + *) echo "Unsupported format" ;; + esac +}} + +cmd gitpull ${{ + git pull + read dummy +}} + +cmd gitadd ${{ + git add $(basename $fx) +}} + +cmd gitaddall ${{ + git add . +}} + +cmd gitpush ${{ + git push + read dummy +}} + +cmd gitcommit ${{ + git commit -S +}} + +cmd gitdiff ${{ + git diff + read dummy +}} + +cmd gitdifffile ${{ + git diff `basename $fx` + read dummy +}} + +cmd gitstatus ${{ + git status | less +}} + +cmd gitrestore ${{ + git restore `basename $fx` + read dummy +}} + +cmd gitsubmoduleupdate ${{ + git submodule update + read dummy +}} + +cmd gitsubmoduleinit ${{ + git submodule update --init + read dummy +}} + +cmd gitsubmoduleadd ${{ + read url + read folder + git submodule add "$url" "$folder" + read dummy +}} + +cmd make ${{ + make -j4 all + read dummy +}} + +cmd makeinstall ${{ + sudo make -j4 install + read dummy +}} + +cmd makeclean ${{ + make -j4 clean + read dummy +}} + +cmd openshell ${{ + zsh +}} + +cmd catclip ${{ + catclip "$fx" +}} + +cmd zip %zip -r "$f" "$f" +cmd tar %tar cvf "$f.tar" "$f" +cmd targz %tar cvzf "$f.tar.gz" "$f" +cmd tarbz2 %tar cjvf "$f.tar.bz2" "$f" + +# Trash cli bindings +cmd trash ${{ + files=$(printf "$fx" | tr '\n' ';') + while [ "$files" ]; do + # extract the substring from start of string up to delimiter. + # this is the first "element" of the string. + file=${files%%;*} + + trash-put "$(basename "$file")" + # if there's only one element left, set `files` to an empty string. + # this causes us to exit this `while` loop. + # else, we delete the first "element" of the string from files, and move onto the next. + if [ "$files" = "$file" ]; then + files='' + else + files="${files#*;}" + fi + done +}} + +cmd clear_trash %trash-empty + +cmd restore_trash ${{ + trash-restore +}} + +cmd stripspace %stripspace "$f" + +# Bindings +# Remove some defaults +map m +map o +map n +map "'" +map '"' +map d +map c +map e +map f +map , + +# ZachIR bindings +map ,gp gitpull +map ,gP gitpush +map ,gc gitcommit +map ,ga gitadd +map ,gA gitaddall +map ,gd gitdifffile +map ,gD gitdiff +map ,gu gitsubmoduleupdate +map ,gi gitsubmoduleinit +map ,gm gitsubmoduleadd +map ,gs gitstatus +map ,gr gitrestore +map ,mk make +map ,mi makeinstall +map ,mC makeclean +map ,ss openshell +map ,sc catclip + + +# Not really image preview +map - $~/.config/lf/draw_img "$f" + +cmd video_preview ${{ + CACHE=$(mktemp /tmp/thumb_cache.XXXXX) + ffmpegthumbnailer -i "$f" -o $CACHE -s 0 + ~/.config/lf/draw_img $CACHE && rm $CACHE +}} +map + :video_preview + +# File Openers +map ee $$EDITOR "$f" +map u $view "$f" + +# Archive Mappings +map az zip +map at tar +map ag targz +map ab targz +map au unarchive + +# Trash Mappings +map dd trash +map tc clear_trash +map tr restore_trash + +# Broot Mapping +map f broot_jump + +# Dragon Mapping +map dr dragon +map ds dragon-stay +map di dragon-individual +map dm mvdragon +map dc cpdragon +map dl dlfile + +map ss stripspace + +# Basic Functions +map . set hidden! +map DD delete +map p paste +map x cut +map y copy +map <enter> open +map mf mkfile +map mr sudomkfile +map md mkdir +map ms $mkscript +map ch chmod +map bg setwallpaper +map o open_config +map br $vimv $fx +map r rename +map H top +map L bottom +map R reload +map C clear +map U unselect + +# Movement +map ga cd ~/.config/awesome +map gb cd ~/.local/bin +map gc cd ~/.config +map gdc cd ~/Documents +map gdo cd ~/Downloads +map gdw cd ~/suckless/dwm +map gdb cd ~/.local/src/dwmbar +map ge cd ~/Desktop +map gE cd /etc +map gf cd ~/.var/app +map glb cd ~/.local/bin +map glc cd ~/Games/cache +map gls cd ~/.local/share +map glf cd ~/.config/lf +map gnv cd ~/.config/nvim +map gns cd ~/.natvst +map gp cd ~/Pictures +map gqc cd ~/.config/qutebrowser +map gqp cd ~/.local/share/qutebrowser-profiles +map gqt cd ~/.config/qtile +map gre cd ~/.local/src +map grs cd /etc/runit/sv +map gsc cd ~/.local/scripts +map gsh cd ~/.config/sh +map gsl cd ~/.local/src/slock +map gss cd /etc/s6/sv +map gsx cd ~/.config/sxhkd +map gtr cd ~/.local/share/Trash/files +map gU. cd /usr +map gUs cd /usr/share +map gva cd ~/.var +map gVa cd /var +map gvi cd ~/Videos +map gvs cd ~/.vst +map gv3 cd ~/.vst3 +map gwa cd ~/git/wallpapers +map gwd cd ~/.local/share/wineprefixes/default +map gwD cd ~/.local/share/wineprefixes/default/drive_c/users/zachir/Downloads +map gwr cd ~/.local/share/wineprefixes +map gww cd ~/.local/share/wineprefixes/work +map gx cd ~/.config/X11 +map gyb cd ~/.cache/yay +map gyc cd ~/.config/yay +map gzs cd ~/.config/zsh +map gzx cd ~/Documents/zachir.xyz + |