Big update

This commit is contained in:
ant 2024-06-03 15:24:20 +02:00
parent 17dc67816a
commit 4be1762868
17 changed files with 1238 additions and 1338 deletions

168
lf.nix
View file

@ -1,58 +1,59 @@
{ config, pkgs, ... }:
{
enable = true;
commands = {
trash = ''''${{
programs.lf = {
enable = true;
commands = {
trash = ''''${{
set -f
${pkgs.trash-cli}/bin/trash $fx
}}'';
extract = ''''${{
extract = ''''${{
set -f
${pkgs.dtrx}/bin/dtrx -n $fx
}}'';
compress_gzip = ''''${{
compress_gzip = ''''${{
set -f
${pkgs.gnutar}/bin/tar Oc $(realpath --relative-to $PWD $f) | \
${pkgs.pigz}/bin/pigz -cv - > $f.tar.gz
}}'';
compress_zip = ''''${{
compress_zip = ''''${{
set -f
${pkgs.zip}/bin/zip -r $f.zip $(realpath --relative-to $PWD $f)
}}'';
compress_xz = ''''${{
compress_xz = ''''${{
set -f
${pkgs.gnutar}/bin/tar Oc $(realpath --relative-to $PWD $f) | \
${pkgs.pxz}/bin/pxz -cv - > $f.tar.xz
}}'';
compress_bzip2 = ''''${{
compress_bzip2 = ''''${{
set -f
${pkgs.gnutar}/bin/tar Oc $(realpath --relative-to $PWD $f) | \
${pkgs.pbzip2}/bin/pbzip2 -cv - > $f.tar.bz2
}}'';
compress_zstd = ''''${{
compress_zstd = ''''${{
set -f
${pkgs.gnutar}/bin/tar --zstd -cvf $f.tar.zst $(realpath --relative-to $PWD $f)
}}'';
compress_just_tar = ''''${{
compress_just_tar = ''''${{
set -f
${pkgs.gnutar}/bin/tar -cvf $f.tar $(realpath --relative-to $PWD $f)
}}'';
show_size = ''%{{
show_size = ''%{{
set -f
${pkgs.coreutils}/bin/du -sh $f
}}'';
ncdu = ''''${{
ncdu = ''''${{
set -f
${pkgs.ncdu}/bin/ncdu $f
}}'';
# find = ''''${{
# set -f
# read -p
send-warpinator = ''%{{
# find = ''''${{
# set -f
# read -p
send-warpinator = ''%{{
set -f
${pkgs.cinnamon.warpinator}/bin/warpinator-send $f
}}'';
toggle_preview = ''%{{
toggle_preview = ''%{{
if [ "$lf_preview" = "true" ]; then
lf -remote "send $id :set preview false; set ratios 1:5"
else
@ -60,7 +61,7 @@
fi
}}
'';
paste = ''&{{
paste = ''&{{
set -- $(cat ~/.local/share/lf/files)
mode="$1"
shift
@ -77,7 +78,7 @@
rm ~/.local/share/lf/files
lf -remote "send clear"
}}'';
bulk-rename = ''''${{
bulk-rename = ''''${{
old="$(mktemp)"
new="$(mktemp)"
if [ -n "$fs" ]; then
@ -100,14 +101,14 @@
rm -- "$old" "$new"
lf -remote "send $id unselect"
}}'';
alt-paste = ''&{{
alt-paste = ''&{{
if [ -n "$fs" ]; then
lf -remote "send $id $1; save-select"
fi
lf -remote "send $id paste"
}}'';
load-select = ''&{{
load-select = ''&{{
# skip if triggered via save-select from itself
if [ "$1" = "$id" ]; then
exit 0
@ -120,76 +121,77 @@
fi
}}'';
save-select = ''&{{
save-select = ''&{{
printf "%s" "$fs" > ~/.local/share/lf/select
lf -remote "send load-select $id"
}}'';
follow_link = ''%{{
follow_link = ''%{{
lf -remote "send ''${id} select '$(readlink $f)'"
}}'';
open_folder_in_sxiv = ''%{{
open_folder_in_sxiv = ''%{{
nsxiv .
}}'';
};
keybindings = {
D = "trash";
x = "extract";
Xg = "compress_gzip";
Xz = "compress_zip";
Xx = "compress_xz";
Xb = "compress_bzip2";
Xs = "compress_zstd";
Xt = "compress_just_tar";
as = "show_size";
an = "ncdu";
ar = "bulk-rename";
af = "follow_link";
ai = "open_folder_in_sxiv";
aw = "send-warpinator";
E = "$nvim";
p = "alt-paste copy";
P = "alt-paste cut";
"<space>" = ":toggle; down; save-select";
u = ":unselect; save-select";
v = ":invert; save-select";
"<tab>" = "toggle_preview";
};
# previewer.source = "${pkgs.pistol}/bin/pistol";
previewer.source = pkgs.writers.writeBash "pistol" ''
file=$1
w=$2
h=$3
x=$4
y=$5
if [[ "$( ${pkgs.file}/bin/file -Lb --mime-type "$file")" =~ ^image ]]; then
kitty +kitten icat --silent --stdin no --transfer-mode file --place \
"''${w}x''${h}@''${x}x''${y}" "$file" < /dev/null > /dev/tty
exit 1
fi
${pkgs.pistol}/bin/pistol "$file"
'';
settings = {
icons = true;
ifs = "\\n";
cleaner =
let
cleaner = pkgs.writers.writeBash "cleaner" ''
kitty +kitten icat --clear --stdin no --silent --transfer-mode file < /dev/null > /dev/tty
'';
in
"${cleaner}";
};
extraConfig = ''
load-select
setlocal ${config.xdg.userDirs.download} sortby time
setlocal ${config.xdg.userDirs.download} reverse
setlocal ${config.xdg.userDirs.download} set info size:time
'';
};
keybindings = {
D = "trash";
x = "extract";
Xg = "compress_gzip";
Xz = "compress_zip";
Xx = "compress_xz";
Xb = "compress_bzip2";
Xs = "compress_zstd";
Xt = "compress_just_tar";
as = "show_size";
an = "ncdu";
ar = "bulk-rename";
af = "follow_link";
ai = "open_folder_in_sxiv";
aw = "send-warpinator";
E = "$nvim";
p = "alt-paste copy";
P = "alt-paste cut";
"<space>" = ":toggle; down; save-select";
u = ":unselect; save-select";
v = ":invert; save-select";
"<tab>" = "toggle_preview";
};
# previewer.source = "${pkgs.pistol}/bin/pistol";
previewer.source = pkgs.writers.writeBash "pistol" ''
file=$1
w=$2
h=$3
x=$4
y=$5
if [[ "$( ${pkgs.file}/bin/file -Lb --mime-type "$file")" =~ ^image ]]; then
kitty +kitten icat --silent --stdin no --transfer-mode file --place \
"''${w}x''${h}@''${x}x''${y}" "$file" < /dev/null > /dev/tty
exit 1
fi
${pkgs.pistol}/bin/pistol "$file"
'';
settings = {
icons = true;
ifs = "\\n";
cleaner =
let
cleaner = pkgs.writers.writeBash "cleaner" ''
kitty +kitten icat --clear --stdin no --silent --transfer-mode file < /dev/null > /dev/tty
'';
in
"${cleaner}";
};
extraConfig = ''
load-select
setlocal ${config.xdg.userDirs.download} sortby time
setlocal ${config.xdg.userDirs.download} reverse
setlocal ${config.xdg.userDirs.download} set info size:time
'';
}