88 lines
1.7 KiB
Nix
88 lines
1.7 KiB
Nix
{
|
|
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
|
|
}}
|
|
'';
|
|
};
|
|
|
|
|
|
};
|
|
}
|