This commit is contained in:
2025-10-13 18:40:20 -05:00
parent ba38794ef4
commit 1d1a13d9ce
3 changed files with 91 additions and 27 deletions

View File

@@ -0,0 +1,87 @@
{
pkgs,
config,
lib,
inputs,
...
}:
{
programs.lf = {
settings = {
mouse = true;
ignorecase = true;
};
keybindings = {
ad = "mkdir";
af = "mkfile";
ab = "mkbak";
ae = "extract";
aa = "archive";
gt = "cd ~/.local/share/Trash/files";
};
extraConfig = ''
set previewer ctpv
set cleaner ctpvclear
&ctpv -s $id
&ctpvquit $id
[ = "half-up";
] = "half-down";
<delete> = "trash";
<s-delete> = "$trash restore";
'';
commands = {
extract = ''
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
}}
'';
# move files to trash
trash = ''%IFS="$(printf '\n\t')"; trash put $fx'';
# make a directory
mkdir = ''
mkdir %{{
echo "enter directory name: " ; read dir
if [ -n "$dir" ]; then
mkdir -p "$dir" && echo "'$dir' created."
else
echo "no dir name provided"
fi
}}
'';
# make a file
mkfile = ''
cmd mkfile %{{
echo "enter file name: " ; read file
if [ -n "$file" ]; then
touch "$file" && echo "'$file' created."
else
echo "no file name provided"
fi
}}
'';
# make backup
mkbak = ''
mkbak %{{
for x in $fx; do
cp -r $x $x.bak
done
}}
'';
};
};
}