aboutsummaryrefslogtreecommitdiffstats
path: root/modules/by-name/lf
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--modules/by-name/lf/lf/colors2
-rw-r--r--modules/by-name/lf/lf/colors.license9
-rwxr-xr-xmodules/by-name/lf/lf/commands/base.sh22
-rw-r--r--modules/by-name/lf/lf/commands/default.nix83
-rwxr-xr-xmodules/by-name/lf/lf/commands/run.sh10
-rwxr-xr-xmodules/by-name/lf/lf/commands/scripts/archive_compress.sh10
-rwxr-xr-xmodules/by-name/lf/lf/commands/scripts/archive_decompress.sh15
-rwxr-xr-xmodules/by-name/lf/lf/commands/scripts/cd_lf_make_map.sh27
-rwxr-xr-xmodules/by-name/lf/lf/commands/scripts/cd_project_root.sh10
-rwxr-xr-xmodules/by-name/lf/lf/commands/scripts/chmod.sh10
-rwxr-xr-xmodules/by-name/lf/lf/commands/scripts/cow_cp.sh10
-rwxr-xr-xmodules/by-name/lf/lf/commands/scripts/dragon.sh10
-rwxr-xr-xmodules/by-name/lf/lf/commands/scripts/dragon_individual.sh10
-rwxr-xr-xmodules/by-name/lf/lf/commands/scripts/dragon_stay.sh10
-rwxr-xr-xmodules/by-name/lf/lf/commands/scripts/execute.sh10
-rwxr-xr-xmodules/by-name/lf/lf/commands/scripts/follow_link.sh10
-rwxr-xr-xmodules/by-name/lf/lf/commands/scripts/mk_directory.sh10
-rwxr-xr-xmodules/by-name/lf/lf/commands/scripts/mk_file.sh10
-rwxr-xr-xmodules/by-name/lf/lf/commands/scripts/mk_link.sh10
-rwxr-xr-xmodules/by-name/lf/lf/commands/scripts/mk_script.sh10
-rwxr-xr-xmodules/by-name/lf/lf/commands/scripts/open.sh15
-rwxr-xr-xmodules/by-name/lf/lf/commands/scripts/set_clipboard_path.sh10
-rwxr-xr-xmodules/by-name/lf/lf/commands/scripts/set_wallpaper.sh14
-rwxr-xr-xmodules/by-name/lf/lf/commands/scripts/stripspace.sh10
-rwxr-xr-xmodules/by-name/lf/lf/commands/scripts/trash.sh10
-rwxr-xr-xmodules/by-name/lf/lf/commands/scripts/trash_clear.sh10
-rwxr-xr-xmodules/by-name/lf/lf/commands/scripts/trash_restore.sh16
-rwxr-xr-xmodules/by-name/lf/lf/commands/scripts/view_file.sh10
-rw-r--r--modules/by-name/lf/lf/ctpv/default.nix9
-rw-r--r--modules/by-name/lf/lf/ctpv/helpers.sh11
-rw-r--r--modules/by-name/lf/lf/ctpv/prev/any.sh10
-rw-r--r--modules/by-name/lf/lf/ctpv/prev/application/archive/atool.sh10
-rw-r--r--modules/by-name/lf/lf/ctpv/prev/application/archive/default.nix18
-rw-r--r--modules/by-name/lf/lf/ctpv/prev/application/dll/default.nix9
-rw-r--r--modules/by-name/lf/lf/ctpv/prev/application/dll/dll.sh10
-rw-r--r--modules/by-name/lf/lf/ctpv/prev/application/epub/default.nix10
-rw-r--r--modules/by-name/lf/lf/ctpv/prev/application/epub/epub.sh10
-rw-r--r--modules/by-name/lf/lf/ctpv/prev/application/pdf/default.nix12
-rw-r--r--modules/by-name/lf/lf/ctpv/prev/application/pdf/pdf.sh10
-rw-r--r--modules/by-name/lf/lf/ctpv/prev/application/pgp/default.nix9
-rw-r--r--modules/by-name/lf/lf/ctpv/prev/application/pgp/pgp.sh10
-rw-r--r--modules/by-name/lf/lf/ctpv/prev/application/sqlite/default.nix9
-rw-r--r--modules/by-name/lf/lf/ctpv/prev/application/sqlite/sqlite.sh10
-rw-r--r--modules/by-name/lf/lf/ctpv/prev/application/x-bittorrent/default.nix9
-rw-r--r--modules/by-name/lf/lf/ctpv/prev/application/x-bittorrent/torrent.sh10
-rw-r--r--modules/by-name/lf/lf/ctpv/prev/application/x-pem-file/default.nix13
-rw-r--r--modules/by-name/lf/lf/ctpv/prev/application/x-pem-file/pem.sh10
-rw-r--r--modules/by-name/lf/lf/ctpv/prev/audio/audio.sh12
-rw-r--r--modules/by-name/lf/lf/ctpv/prev/audio/default.nix12
-rw-r--r--modules/by-name/lf/lf/ctpv/prev/default.nix9
-rw-r--r--modules/by-name/lf/lf/ctpv/prev/font/default.nix11
-rw-r--r--modules/by-name/lf/lf/ctpv/prev/font/font.sh10
-rw-r--r--modules/by-name/lf/lf/ctpv/prev/image/default.nix10
-rw-r--r--modules/by-name/lf/lf/ctpv/prev/image/image.sh10
-rw-r--r--modules/by-name/lf/lf/ctpv/prev/image/svg+xml/default.nix10
-rw-r--r--modules/by-name/lf/lf/ctpv/prev/image/svg+xml/svg.sh10
-rw-r--r--modules/by-name/lf/lf/ctpv/prev/image/x-xcf/default.nix9
-rw-r--r--modules/by-name/lf/lf/ctpv/prev/image/x-xcf/xcf.sh10
-rw-r--r--modules/by-name/lf/lf/ctpv/prev/inode/default.nix16
-rw-r--r--modules/by-name/lf/lf/ctpv/prev/inode/directory/default.nix19
-rw-r--r--modules/by-name/lf/lf/ctpv/prev/inode/directory/ls.sh20
-rw-r--r--modules/by-name/lf/lf/ctpv/prev/inode/fifo/default.nix19
-rw-r--r--modules/by-name/lf/lf/ctpv/prev/inode/fifo/fifo.sh16
-rw-r--r--modules/by-name/lf/lf/ctpv/prev/inode/ls.sh10
-rw-r--r--modules/by-name/lf/lf/ctpv/prev/inode/symlink.sh9
-rw-r--r--modules/by-name/lf/lf/ctpv/prev/inode/symlink/default.nix19
-rw-r--r--modules/by-name/lf/lf/ctpv/prev/inode/symlink/symlink.sh19
-rw-r--r--modules/by-name/lf/lf/ctpv/prev/inode/x-empty/default.nix19
-rw-r--r--modules/by-name/lf/lf/ctpv/prev/inode/x-empty/empty.sh16
-rw-r--r--modules/by-name/lf/lf/ctpv/prev/libreoffice.sh10
-rw-r--r--modules/by-name/lf/lf/ctpv/prev/message/rfc822/default.nix26
-rw-r--r--modules/by-name/lf/lf/ctpv/prev/message/rfc822/rfc822.sh22
-rw-r--r--modules/by-name/lf/lf/ctpv/prev/remove_default_previews.nix9
-rw-r--r--modules/by-name/lf/lf/ctpv/prev/text/bat.sh10
-rw-r--r--modules/by-name/lf/lf/ctpv/prev/text/default.nix17
-rw-r--r--modules/by-name/lf/lf/ctpv/prev/text/diff/default.nix9
-rw-r--r--modules/by-name/lf/lf/ctpv/prev/text/diff/delta.sh10
-rw-r--r--modules/by-name/lf/lf/ctpv/prev/text/glow.sh10
-rw-r--r--modules/by-name/lf/lf/ctpv/prev/text/json/default.nix9
-rw-r--r--modules/by-name/lf/lf/ctpv/prev/text/json/jq.sh10
-rw-r--r--modules/by-name/lf/lf/ctpv/prev/video/default.nix10
-rw-r--r--modules/by-name/lf/lf/ctpv/prev/video/video.sh10
-rw-r--r--modules/by-name/lf/lf/icons.license9
-rw-r--r--modules/by-name/lf/lf/keybindings/default.nix193
-rw-r--r--modules/by-name/lf/lf/module.nix75
-rw-r--r--modules/by-name/lf/lf/wrappers/ll.fish41
-rw-r--r--modules/by-name/lf/lf/wrappers/lm.fish20
87 files changed, 1220 insertions, 167 deletions
diff --git a/modules/by-name/lf/lf/colors b/modules/by-name/lf/lf/colors
index 17201e64..ed211581 100644
--- a/modules/by-name/lf/lf/colors
+++ b/modules/by-name/lf/lf/colors
@@ -58,7 +58,7 @@ ex 03;01;95 # EXEC
fi 00 # FILE
# links to hide
-~/.mozilla 01;08;30
+~/.pki 01;08;30
~/.ssh 01;08;30
# archives or compressed (dircolors defaults)
diff --git a/modules/by-name/lf/lf/colors.license b/modules/by-name/lf/lf/colors.license
new file mode 100644
index 00000000..eae6a84c
--- /dev/null
+++ b/modules/by-name/lf/lf/colors.license
@@ -0,0 +1,9 @@
+nixos-config - My current NixOS configuration
+
+Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+SPDX-License-Identifier: GPL-3.0-or-later
+
+This file is part of my nixos-config.
+
+You should have received a copy of the License along with this program.
+If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
diff --git a/modules/by-name/lf/lf/commands/base.sh b/modules/by-name/lf/lf/commands/base.sh
index 61b59a7b..e0b6216c 100755
--- a/modules/by-name/lf/lf/commands/base.sh
+++ b/modules/by-name/lf/lf/commands/base.sh
@@ -1,4 +1,14 @@
-#!/usr/bin/env sh
+#!/usr/bin/env bash
+
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
# shellcheck disable=SC2269
id="$id"
@@ -31,16 +41,15 @@ prompt() {
# set -- "$@" "$file"
# done < "$(echo "$fx" | tmp)"
tmp() {
- __base_tmp_temporary_file="$(mktemp --tmpdir="$__base_tmp_temporary_directory")"
+ __base_tmp_temporary_file="$(mktemp -t --tmpdir="$__base_tmp_temporary_directory" lf_commands_tmp_fun_XXXXXXXX)"
cat >"$__base_tmp_temporary_file"
echo "$__base_tmp_temporary_file"
}
-__base_tmp_temporary_directory="$(mktemp --directory)"
+__base_tmp_temporary_directory="$(mktemp -t --directory lf_commands_tmp_fun_XXXXXXXXXXXX)"
trap 'rm --recursive "$__base_tmp_temporary_directory"' EXIT
# Run a lf command on the current lf client
# All arguments will run in like they were typed directly into lf.
-# # TODO(@bpeetz): Escape the single quotes in the input arguments. <2025-02-02>
#
# # Type
# lf_cmd :: [String]
@@ -51,6 +60,11 @@ trap 'rm --recursive "$__base_tmp_temporary_directory"' EXIT
lf_cmd() {
arguments=""
for arg in "$@"; do
+ # We _can_ use the fancy bash syntax, but it's really hard to correctly quote the
+ # single quote in bash, and I don't really feel like it's worth it.
+ # shellcheck disable=SC2001
+ arg="$(echo "$arg" | sed "s/'/\\\'/g")"
+
if [ -z "$arguments" ]; then
arguments="'$arg'"
else
diff --git a/modules/by-name/lf/lf/commands/default.nix b/modules/by-name/lf/lf/commands/default.nix
index 0c42607b..a6c4a3f9 100644
--- a/modules/by-name/lf/lf/commands/default.nix
+++ b/modules/by-name/lf/lf/commands/default.nix
@@ -1,3 +1,12 @@
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
{pkgs, ...}: let
functionCall = {
name,
@@ -7,11 +16,24 @@
pkgs.writeShellApplication {
inherit name;
text = builtins.readFile ./base.sh + builtins.readFile ./scripts/${name}.sh;
- runtimeInputs = [pkgs.lf pkgs.mktemp pkgs.coreutils] ++ dependencies;
+ runtimeInputs =
+ [
+ pkgs.lf
+ pkgs.mktemp
+ pkgs.coreutils
+ pkgs.gnused
+ ]
+ ++ dependencies;
inheritPath = keepPath;
}
+ "/bin/${name}";
+ syscmd = command: ''
+ ''${{
+ printf "%s\n" "SYSCMD::${command}" >>"$LL_SYSCMD_SOCKET"
+ }}
+ '';
+
# closes the lf tui
shell = args: ''
''${{
@@ -39,20 +61,23 @@
in {
archive_compress = shell {
name = "archive_compress";
- dependencies = with pkgs; [
- fzf
- gnutar
- xz
- p7zip
- zip
+ dependencies = [
+ pkgs.fzf
+ pkgs.gnutar
+ pkgs.xz
+ pkgs.p7zip
+ pkgs.zip
+ pkgs.gzip
];
};
archive_decompress = pipe {
name = "archive_decompress";
- dependencies = with pkgs; [
- gnutar
- unzip
- p7zip
+ dependencies = [
+ pkgs.gnutar
+ pkgs.openjdk_headless
+ pkgs.p7zip
+ pkgs.xz
+ pkgs.gzip
];
};
@@ -60,6 +85,12 @@ in {
name = "cd_project_root";
dependencies = [pkgs.git];
};
+ cd_lf_make_map = shell {
+ name = "cd_lf_make_map";
+ dependencies = [
+ pkgs.lf-make-map
+ ];
+ };
chmod = pipe {
name = "chmod";
@@ -113,38 +144,46 @@ in {
};
set_wallpaper = pipe {
name = "set_wallpaper";
- dependencies = with pkgs; [
- river # for `riverctl`
- swaybg
+ dependencies = [
+ pkgs.river-classic # for `riverctl`
+ pkgs.swaybg
+ pkgs.procps
];
};
+ syscmd_direnv_sandbox_enable = syscmd "DIRENV::SANDBOX::ENABLE";
+ syscmd_direnv_sandbox_disable = syscmd "DIRENV::SANDBOX::DISABLE";
+
stripspace = pipe {
name = "stripspace";
dependencies = [pkgs.gnused];
};
- open = async {
- name = "open";
- dependencies = [pkgs.handlr-regex];
- };
-
trash = pipe {
name = "trash";
dependencies = [pkgs.trash-cli];
};
trash_clear = shell {
name = "trash_clear";
- dependencies = with pkgs; [conceal fzf gawk trashy];
+ dependencies = [
+ pkgs.conceal
+ pkgs.fzf
+ pkgs.gawk
+ pkgs.trashy
+ pkgs.gnused
+ ];
};
trash_restore = shell {
name = "trash_restore";
- dependencies = with pkgs; [conceal fzf gawk trashy];
+ dependencies = [
+ pkgs.conceal
+ pkgs.fzf
+ ];
};
view_file = async {
name = "view_file";
- dependencies = with pkgs; [file];
+ dependencies = [pkgs.file];
keepPath = true;
};
}
diff --git a/modules/by-name/lf/lf/commands/run.sh b/modules/by-name/lf/lf/commands/run.sh
index 6a9b8cab..06106aed 100755
--- a/modules/by-name/lf/lf/commands/run.sh
+++ b/modules/by-name/lf/lf/commands/run.sh
@@ -1,5 +1,15 @@
#!/usr/bin/env sh
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
+
# Run one of the commands for debugging purposes.
[ "$#" -gt 1 ] || {
diff --git a/modules/by-name/lf/lf/commands/scripts/archive_compress.sh b/modules/by-name/lf/lf/commands/scripts/archive_compress.sh
index c3776a80..b42688bf 100755
--- a/modules/by-name/lf/lf/commands/scripts/archive_compress.sh
+++ b/modules/by-name/lf/lf/commands/scripts/archive_compress.sh
@@ -1,3 +1,13 @@
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
+
# shellcheck shell=sh
# shellcheck disable=SC2269
diff --git a/modules/by-name/lf/lf/commands/scripts/archive_decompress.sh b/modules/by-name/lf/lf/commands/scripts/archive_decompress.sh
index 08374176..10eb0bc5 100755
--- a/modules/by-name/lf/lf/commands/scripts/archive_decompress.sh
+++ b/modules/by-name/lf/lf/commands/scripts/archive_decompress.sh
@@ -1,3 +1,13 @@
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
+
# shellcheck shell=sh
# shellcheck disable=SC2269
@@ -15,9 +25,12 @@ echo "$fx" | while read -r file; do
*.tar.gz | *.tgz) tar --extract --gzip --verbose --file="$file" ;;
*.tar.xz | *.txz) tar --extract --xz --verbose --file="$file" ;;
*.tar*) tar --extract --verbose --file="$file" ;;
- *.zip) unzip "$file" ;;
+ *.zip) jar --verbose --extract --file "$file" ;;
*.7z) 7z x "$file" ;;
*) die "'$file' is not a supported file for unarchiving." ;;
esac
+
+ lf_cmd echo "decompression of '$file' done."
done
+
# vim: ft=sh
diff --git a/modules/by-name/lf/lf/commands/scripts/cd_lf_make_map.sh b/modules/by-name/lf/lf/commands/scripts/cd_lf_make_map.sh
new file mode 100755
index 00000000..00befd3f
--- /dev/null
+++ b/modules/by-name/lf/lf/commands/scripts/cd_lf_make_map.sh
@@ -0,0 +1,27 @@
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
+
+# shellcheck shell=sh
+
+# shellcheck disable=SC2269
+f="$f"
+# shellcheck disable=SC2269
+fx="$fx"
+# shellcheck disable=SC2269
+fs="$fs"
+# shellcheck disable=SC2269
+id="$id"
+
+root="$(lf-make-map --depth 4 interactive ~/media ~/repos ~/documents ~/.config ~/.local)"
+if [ "$root" ]; then
+ lf_cmd cd "$root" || die "Bug: Failed to cd to selected path at '$root'"
+fi
+
+# vim: ft=sh
diff --git a/modules/by-name/lf/lf/commands/scripts/cd_project_root.sh b/modules/by-name/lf/lf/commands/scripts/cd_project_root.sh
index 19100947..c2de61e6 100755
--- a/modules/by-name/lf/lf/commands/scripts/cd_project_root.sh
+++ b/modules/by-name/lf/lf/commands/scripts/cd_project_root.sh
@@ -1,3 +1,13 @@
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
+
# shellcheck shell=sh
# shellcheck disable=SC2269
diff --git a/modules/by-name/lf/lf/commands/scripts/chmod.sh b/modules/by-name/lf/lf/commands/scripts/chmod.sh
index 3dc5f19c..757f3c9c 100755
--- a/modules/by-name/lf/lf/commands/scripts/chmod.sh
+++ b/modules/by-name/lf/lf/commands/scripts/chmod.sh
@@ -1,3 +1,13 @@
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
+
# shellcheck shell=sh
# shellcheck disable=SC2269
diff --git a/modules/by-name/lf/lf/commands/scripts/cow_cp.sh b/modules/by-name/lf/lf/commands/scripts/cow_cp.sh
index 98675b9e..dbe00654 100755
--- a/modules/by-name/lf/lf/commands/scripts/cow_cp.sh
+++ b/modules/by-name/lf/lf/commands/scripts/cow_cp.sh
@@ -1,5 +1,15 @@
#!/usr/bin/env bash
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
+
# shellcheck source=/dev/null
SHELL_LIBRARY_VERSION="2.1.2" . %SHELL_LIBRARY_PATH
diff --git a/modules/by-name/lf/lf/commands/scripts/dragon.sh b/modules/by-name/lf/lf/commands/scripts/dragon.sh
index 916c09ee..a4a52c72 100755
--- a/modules/by-name/lf/lf/commands/scripts/dragon.sh
+++ b/modules/by-name/lf/lf/commands/scripts/dragon.sh
@@ -1,3 +1,13 @@
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
+
# shellcheck shell=sh
# shellcheck disable=SC2269
diff --git a/modules/by-name/lf/lf/commands/scripts/dragon_individual.sh b/modules/by-name/lf/lf/commands/scripts/dragon_individual.sh
index c6b3b2a6..370e9753 100755
--- a/modules/by-name/lf/lf/commands/scripts/dragon_individual.sh
+++ b/modules/by-name/lf/lf/commands/scripts/dragon_individual.sh
@@ -1,3 +1,13 @@
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
+
# shellcheck shell=sh
# shellcheck disable=SC2269
diff --git a/modules/by-name/lf/lf/commands/scripts/dragon_stay.sh b/modules/by-name/lf/lf/commands/scripts/dragon_stay.sh
index 7296a6b9..86a19370 100755
--- a/modules/by-name/lf/lf/commands/scripts/dragon_stay.sh
+++ b/modules/by-name/lf/lf/commands/scripts/dragon_stay.sh
@@ -1,3 +1,13 @@
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
+
# shellcheck shell=sh
# shellcheck disable=SC2269
diff --git a/modules/by-name/lf/lf/commands/scripts/execute.sh b/modules/by-name/lf/lf/commands/scripts/execute.sh
index 1d5dc87f..ce62dfa0 100755
--- a/modules/by-name/lf/lf/commands/scripts/execute.sh
+++ b/modules/by-name/lf/lf/commands/scripts/execute.sh
@@ -1,3 +1,13 @@
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
+
# shellcheck shell=sh
# shellcheck disable=SC2269
diff --git a/modules/by-name/lf/lf/commands/scripts/follow_link.sh b/modules/by-name/lf/lf/commands/scripts/follow_link.sh
index 509fc2e0..71fa6825 100755
--- a/modules/by-name/lf/lf/commands/scripts/follow_link.sh
+++ b/modules/by-name/lf/lf/commands/scripts/follow_link.sh
@@ -1,3 +1,13 @@
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
+
# shellcheck shell=sh
# shellcheck disable=SC2269
diff --git a/modules/by-name/lf/lf/commands/scripts/mk_directory.sh b/modules/by-name/lf/lf/commands/scripts/mk_directory.sh
index 58921ccd..f3bd6d29 100755
--- a/modules/by-name/lf/lf/commands/scripts/mk_directory.sh
+++ b/modules/by-name/lf/lf/commands/scripts/mk_directory.sh
@@ -1,3 +1,13 @@
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
+
# shellcheck shell=sh
# shellcheck disable=SC2269
diff --git a/modules/by-name/lf/lf/commands/scripts/mk_file.sh b/modules/by-name/lf/lf/commands/scripts/mk_file.sh
index 5dafe30d..78271aaa 100755
--- a/modules/by-name/lf/lf/commands/scripts/mk_file.sh
+++ b/modules/by-name/lf/lf/commands/scripts/mk_file.sh
@@ -1,3 +1,13 @@
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
+
# shellcheck shell=sh
# shellcheck disable=SC2269
diff --git a/modules/by-name/lf/lf/commands/scripts/mk_link.sh b/modules/by-name/lf/lf/commands/scripts/mk_link.sh
index 40b2099d..35f49c38 100755
--- a/modules/by-name/lf/lf/commands/scripts/mk_link.sh
+++ b/modules/by-name/lf/lf/commands/scripts/mk_link.sh
@@ -1,3 +1,13 @@
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
+
# shellcheck shell=sh
# shellcheck disable=SC2269
diff --git a/modules/by-name/lf/lf/commands/scripts/mk_script.sh b/modules/by-name/lf/lf/commands/scripts/mk_script.sh
index bbdf6d39..a708825d 100755
--- a/modules/by-name/lf/lf/commands/scripts/mk_script.sh
+++ b/modules/by-name/lf/lf/commands/scripts/mk_script.sh
@@ -1,3 +1,13 @@
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
+
# shellcheck shell=sh
# shellcheck disable=SC2269
diff --git a/modules/by-name/lf/lf/commands/scripts/open.sh b/modules/by-name/lf/lf/commands/scripts/open.sh
deleted file mode 100755
index b494074f..00000000
--- a/modules/by-name/lf/lf/commands/scripts/open.sh
+++ /dev/null
@@ -1,15 +0,0 @@
-# shellcheck shell=sh
-
-# shellcheck disable=SC2269
-f="$f"
-# shellcheck disable=SC2269
-fx="$fx"
-# shellcheck disable=SC2269
-fs="$fs"
-# shellcheck disable=SC2269
-id="$id"
-
-# TODO: For some reason, `xdg-utils` tries to open firefox with it's default profile for
-# _everything_. Using `handlr-regex` sort-of solves this. <2025-04-04>
-handlr open "$f"
-# vim: ft=sh
diff --git a/modules/by-name/lf/lf/commands/scripts/set_clipboard_path.sh b/modules/by-name/lf/lf/commands/scripts/set_clipboard_path.sh
index 893452e1..f4cb5115 100755
--- a/modules/by-name/lf/lf/commands/scripts/set_clipboard_path.sh
+++ b/modules/by-name/lf/lf/commands/scripts/set_clipboard_path.sh
@@ -1,3 +1,13 @@
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
+
# shellcheck shell=sh
# shellcheck disable=SC2269
diff --git a/modules/by-name/lf/lf/commands/scripts/set_wallpaper.sh b/modules/by-name/lf/lf/commands/scripts/set_wallpaper.sh
index 4387cd9a..6311031e 100755
--- a/modules/by-name/lf/lf/commands/scripts/set_wallpaper.sh
+++ b/modules/by-name/lf/lf/commands/scripts/set_wallpaper.sh
@@ -1,3 +1,13 @@
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
+
# shellcheck shell=sh
# shellcheck disable=SC2269
@@ -9,8 +19,8 @@ fs="$fs"
# shellcheck disable=SC2269
id="$id"
-pid="$(pgrep swaybg)"
-[ -n "$pid" ] && kill "$pid"
+# Kill all previous instances
+pkill swaybg
# We cannot control the available commands for river.
# Thus we ensure that it can correctly start `swaybg`
diff --git a/modules/by-name/lf/lf/commands/scripts/stripspace.sh b/modules/by-name/lf/lf/commands/scripts/stripspace.sh
index 95f8f742..9253b6de 100755
--- a/modules/by-name/lf/lf/commands/scripts/stripspace.sh
+++ b/modules/by-name/lf/lf/commands/scripts/stripspace.sh
@@ -1,3 +1,13 @@
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
+
# shellcheck shell=sh
# shellcheck disable=SC2269
diff --git a/modules/by-name/lf/lf/commands/scripts/trash.sh b/modules/by-name/lf/lf/commands/scripts/trash.sh
index 958bc3f9..68b36774 100755
--- a/modules/by-name/lf/lf/commands/scripts/trash.sh
+++ b/modules/by-name/lf/lf/commands/scripts/trash.sh
@@ -1,3 +1,13 @@
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
+
# shellcheck shell=sh
# shellcheck disable=SC2269
diff --git a/modules/by-name/lf/lf/commands/scripts/trash_clear.sh b/modules/by-name/lf/lf/commands/scripts/trash_clear.sh
index a41dce27..597995f9 100755
--- a/modules/by-name/lf/lf/commands/scripts/trash_clear.sh
+++ b/modules/by-name/lf/lf/commands/scripts/trash_clear.sh
@@ -1,3 +1,13 @@
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
+
# shellcheck shell=sh
while IFS="$(printf '\n')" read -r file; do
diff --git a/modules/by-name/lf/lf/commands/scripts/trash_restore.sh b/modules/by-name/lf/lf/commands/scripts/trash_restore.sh
index cc2d4890..789ab59a 100755
--- a/modules/by-name/lf/lf/commands/scripts/trash_restore.sh
+++ b/modules/by-name/lf/lf/commands/scripts/trash_restore.sh
@@ -1,3 +1,13 @@
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
+
# shellcheck shell=sh
# shellcheck disable=SC2269
@@ -9,9 +19,5 @@ fs="$fs"
# shellcheck disable=SC2269
id="$id"
-while IFS="$(printf '\n')" read -r file; do
- set -- "$@" "$(pwd)/$file"
-done <"$(conceal list | fzf --multi --ansi | awk '{$1="";$2=""; print $0}' | sed 's/^\s*//' | tmp)"
-
-[ "$#" -ne 0 ] && trash restore --match=exact "$@"
+conceal restore --finder=fzf
# vim: ft=sh
diff --git a/modules/by-name/lf/lf/commands/scripts/view_file.sh b/modules/by-name/lf/lf/commands/scripts/view_file.sh
index 38e6b778..48cdd85e 100755
--- a/modules/by-name/lf/lf/commands/scripts/view_file.sh
+++ b/modules/by-name/lf/lf/commands/scripts/view_file.sh
@@ -1,3 +1,13 @@
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
+
# shellcheck shell=sh
# shellcheck disable=SC2269
diff --git a/modules/by-name/lf/lf/ctpv/default.nix b/modules/by-name/lf/lf/ctpv/default.nix
index 98438fba..6f9988b9 100644
--- a/modules/by-name/lf/lf/ctpv/default.nix
+++ b/modules/by-name/lf/lf/ctpv/default.nix
@@ -1,3 +1,12 @@
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
{
lib,
config,
diff --git a/modules/by-name/lf/lf/ctpv/helpers.sh b/modules/by-name/lf/lf/ctpv/helpers.sh
index 30e4483a..d0bba315 100644
--- a/modules/by-name/lf/lf/ctpv/helpers.sh
+++ b/modules/by-name/lf/lf/ctpv/helpers.sh
@@ -1,5 +1,15 @@
#! /usr/bin/env dash
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
+
# shellcheck disable=SC2269
cache_f="$cache_f"
# shellcheck disable=SC2269
@@ -21,6 +31,7 @@ chafa_run() {
# TODO: Animation support would be nice, but it would need to be supported in chafa by
# allowing us to make a call to ctpvclear after each image is displayed. <2024-11-25>
chafa --size "${w}x${h}" --animate=off "$1" | sed 's/#/\n#/g'
+ exiftool "$1"
}
send_image() {
diff --git a/modules/by-name/lf/lf/ctpv/prev/any.sh b/modules/by-name/lf/lf/ctpv/prev/any.sh
index 7ce72dcd..01c31e2b 100644
--- a/modules/by-name/lf/lf/ctpv/prev/any.sh
+++ b/modules/by-name/lf/lf/ctpv/prev/any.sh
@@ -1,5 +1,15 @@
#! /usr/bin/env dash
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
+
# shellcheck disable=SC2269
f="$f"
# shellcheck disable=SC2269
diff --git a/modules/by-name/lf/lf/ctpv/prev/application/archive/atool.sh b/modules/by-name/lf/lf/ctpv/prev/application/archive/atool.sh
index 3aebfbb3..2bf8a89f 100644
--- a/modules/by-name/lf/lf/ctpv/prev/application/archive/atool.sh
+++ b/modules/by-name/lf/lf/ctpv/prev/application/archive/atool.sh
@@ -1,5 +1,15 @@
#! /usr/bin/env dash
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
+
# shellcheck disable=SC2269
f="$f"
diff --git a/modules/by-name/lf/lf/ctpv/prev/application/archive/default.nix b/modules/by-name/lf/lf/ctpv/prev/application/archive/default.nix
index febacb7d..a5fc2c50 100644
--- a/modules/by-name/lf/lf/ctpv/prev/application/archive/default.nix
+++ b/modules/by-name/lf/lf/ctpv/prev/application/archive/default.nix
@@ -1,3 +1,12 @@
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
{pkgs, ...}: {
soispha.programs.lf.ctpv.previewers = {
atool = {
@@ -5,14 +14,19 @@
matches.mime = [
"application/gzip"
"application/java-archive"
+ "application/vnd.android.package-archive"
"application/vnd.debian.binary-package"
"application/x-7z-compressed"
+ "application/x-archive"
"application/x-bzip2"
+ "application/x-cpio"
+ "application/x-lz4"
"application/x-rar"
"application/x-tar"
"application/x-xz"
"application/zip"
"application/zlib"
+ "application/zstd"
];
matches.extension = [
@@ -80,6 +94,10 @@
pkgs.xz
pkgs.zip
+ pkgs.cabextract
+
+ pkgs.coreutils
+
# Unfree stuff
# pkgs.lha
# pkgs.rar
diff --git a/modules/by-name/lf/lf/ctpv/prev/application/dll/default.nix b/modules/by-name/lf/lf/ctpv/prev/application/dll/default.nix
index 00c7e389..121f419d 100644
--- a/modules/by-name/lf/lf/ctpv/prev/application/dll/default.nix
+++ b/modules/by-name/lf/lf/ctpv/prev/application/dll/default.nix
@@ -1,3 +1,12 @@
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
{pkgs, ...}: {
soispha.programs.lf.ctpv.previewers = {
dll = {
diff --git a/modules/by-name/lf/lf/ctpv/prev/application/dll/dll.sh b/modules/by-name/lf/lf/ctpv/prev/application/dll/dll.sh
index 5237ecec..6ec68d55 100644
--- a/modules/by-name/lf/lf/ctpv/prev/application/dll/dll.sh
+++ b/modules/by-name/lf/lf/ctpv/prev/application/dll/dll.sh
@@ -1,5 +1,15 @@
#! /usr/bin/env dash
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
+
# shellcheck disable=SC2269
f="$f"
# shellcheck disable=SC2269
diff --git a/modules/by-name/lf/lf/ctpv/prev/application/epub/default.nix b/modules/by-name/lf/lf/ctpv/prev/application/epub/default.nix
index b4df845a..43e683a9 100644
--- a/modules/by-name/lf/lf/ctpv/prev/application/epub/default.nix
+++ b/modules/by-name/lf/lf/ctpv/prev/application/epub/default.nix
@@ -1,3 +1,12 @@
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
{pkgs, ...}: {
soispha.programs.lf.ctpv.previewers = {
epub = {
@@ -9,6 +18,7 @@
pkgs.bk
pkgs.epub-thumbnailer
pkgs.chafa
+ pkgs.exiftool
pkgs.gnused
];
};
diff --git a/modules/by-name/lf/lf/ctpv/prev/application/epub/epub.sh b/modules/by-name/lf/lf/ctpv/prev/application/epub/epub.sh
index 3bec0dd1..87c33dff 100644
--- a/modules/by-name/lf/lf/ctpv/prev/application/epub/epub.sh
+++ b/modules/by-name/lf/lf/ctpv/prev/application/epub/epub.sh
@@ -1,5 +1,15 @@
#! /usr/bin/env dash
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
+
# shellcheck disable=SC2269
f="$f"
# shellcheck disable=SC2269
diff --git a/modules/by-name/lf/lf/ctpv/prev/application/pdf/default.nix b/modules/by-name/lf/lf/ctpv/prev/application/pdf/default.nix
index 24112737..cb96d7a9 100644
--- a/modules/by-name/lf/lf/ctpv/prev/application/pdf/default.nix
+++ b/modules/by-name/lf/lf/ctpv/prev/application/pdf/default.nix
@@ -1,3 +1,12 @@
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
{pkgs, ...}: {
soispha.programs.lf.ctpv.previewers = {
pdf = {
@@ -5,8 +14,9 @@
matches.mime = ["application/pdf"];
priority = 1;
dependencies = [
- pkgs.poppler_utils # for `pdftoppm`
+ pkgs.poppler-utils # for `pdftoppm`
pkgs.chafa
+ pkgs.exiftool
pkgs.gnused
pkgs.coreutils
];
diff --git a/modules/by-name/lf/lf/ctpv/prev/application/pdf/pdf.sh b/modules/by-name/lf/lf/ctpv/prev/application/pdf/pdf.sh
index 4d99f4b0..2c2e5ff9 100644
--- a/modules/by-name/lf/lf/ctpv/prev/application/pdf/pdf.sh
+++ b/modules/by-name/lf/lf/ctpv/prev/application/pdf/pdf.sh
@@ -1,5 +1,15 @@
#! /usr/bin/env dash
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
+
# shellcheck disable=SC2269
f="$f"
# shellcheck disable=SC2269
diff --git a/modules/by-name/lf/lf/ctpv/prev/application/pgp/default.nix b/modules/by-name/lf/lf/ctpv/prev/application/pgp/default.nix
index 32f42783..c9001176 100644
--- a/modules/by-name/lf/lf/ctpv/prev/application/pgp/default.nix
+++ b/modules/by-name/lf/lf/ctpv/prev/application/pgp/default.nix
@@ -1,3 +1,12 @@
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
{pkgs, ...}: {
soispha.programs.lf.ctpv.previewers = {
pgp = {
diff --git a/modules/by-name/lf/lf/ctpv/prev/application/pgp/pgp.sh b/modules/by-name/lf/lf/ctpv/prev/application/pgp/pgp.sh
index 4747a8c4..cfe359ea 100644
--- a/modules/by-name/lf/lf/ctpv/prev/application/pgp/pgp.sh
+++ b/modules/by-name/lf/lf/ctpv/prev/application/pgp/pgp.sh
@@ -1,5 +1,15 @@
#! /usr/bin/env dash
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
+
# shellcheck disable=SC2269
f="$f"
# shellcheck disable=SC2269
diff --git a/modules/by-name/lf/lf/ctpv/prev/application/sqlite/default.nix b/modules/by-name/lf/lf/ctpv/prev/application/sqlite/default.nix
index 54b8c29e..ab200dd9 100644
--- a/modules/by-name/lf/lf/ctpv/prev/application/sqlite/default.nix
+++ b/modules/by-name/lf/lf/ctpv/prev/application/sqlite/default.nix
@@ -1,3 +1,12 @@
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
{pkgs, ...}: {
soispha.programs.lf.ctpv.previewers = {
sqlite = {
diff --git a/modules/by-name/lf/lf/ctpv/prev/application/sqlite/sqlite.sh b/modules/by-name/lf/lf/ctpv/prev/application/sqlite/sqlite.sh
index 62c1abec..2d3a45fe 100644
--- a/modules/by-name/lf/lf/ctpv/prev/application/sqlite/sqlite.sh
+++ b/modules/by-name/lf/lf/ctpv/prev/application/sqlite/sqlite.sh
@@ -1,5 +1,15 @@
#! /usr/bin/env dash
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
+
# shellcheck disable=SC2269
f="$f"
# shellcheck disable=SC2269
diff --git a/modules/by-name/lf/lf/ctpv/prev/application/x-bittorrent/default.nix b/modules/by-name/lf/lf/ctpv/prev/application/x-bittorrent/default.nix
index 504623a0..dfd6911b 100644
--- a/modules/by-name/lf/lf/ctpv/prev/application/x-bittorrent/default.nix
+++ b/modules/by-name/lf/lf/ctpv/prev/application/x-bittorrent/default.nix
@@ -1,3 +1,12 @@
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
{pkgs, ...}: {
soispha.programs.lf.ctpv.previewers = {
torrent = {
diff --git a/modules/by-name/lf/lf/ctpv/prev/application/x-bittorrent/torrent.sh b/modules/by-name/lf/lf/ctpv/prev/application/x-bittorrent/torrent.sh
index f1da355a..38838d2e 100644
--- a/modules/by-name/lf/lf/ctpv/prev/application/x-bittorrent/torrent.sh
+++ b/modules/by-name/lf/lf/ctpv/prev/application/x-bittorrent/torrent.sh
@@ -1,5 +1,15 @@
#! /usr/bin/env dash
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
+
# shellcheck disable=SC2269
f="$f"
# shellcheck disable=SC2269
diff --git a/modules/by-name/lf/lf/ctpv/prev/application/x-pem-file/default.nix b/modules/by-name/lf/lf/ctpv/prev/application/x-pem-file/default.nix
index a6a32808..28b69890 100644
--- a/modules/by-name/lf/lf/ctpv/prev/application/x-pem-file/default.nix
+++ b/modules/by-name/lf/lf/ctpv/prev/application/x-pem-file/default.nix
@@ -1,8 +1,19 @@
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
{pkgs, ...}: {
soispha.programs.lf.ctpv.previewers = {
pem = {
previewer = ./pem.sh;
- matches.mime = ["application/x-pem-file"];
+ matches.mime = [
+ "application/x-pem-file"
+ ];
dependencies = [
pkgs.openssl
];
diff --git a/modules/by-name/lf/lf/ctpv/prev/application/x-pem-file/pem.sh b/modules/by-name/lf/lf/ctpv/prev/application/x-pem-file/pem.sh
index 76ee3002..2948e25a 100644
--- a/modules/by-name/lf/lf/ctpv/prev/application/x-pem-file/pem.sh
+++ b/modules/by-name/lf/lf/ctpv/prev/application/x-pem-file/pem.sh
@@ -1,5 +1,15 @@
#! /usr/bin/env dash
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
+
# shellcheck disable=SC2269
f="$f"
# shellcheck disable=SC2269
diff --git a/modules/by-name/lf/lf/ctpv/prev/audio/audio.sh b/modules/by-name/lf/lf/ctpv/prev/audio/audio.sh
index 2e9e147c..22894ca2 100644
--- a/modules/by-name/lf/lf/ctpv/prev/audio/audio.sh
+++ b/modules/by-name/lf/lf/ctpv/prev/audio/audio.sh
@@ -1,5 +1,15 @@
#! /usr/bin/env dash
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
+
# shellcheck disable=SC2269
f="$f"
# shellcheck disable=SC2269
@@ -9,7 +19,7 @@ audio() {
ffmpegthumbnailer -i "$f" -s 0 -q 5 -t 10 -o "$cache_f" 2>/dev/null
}
-x="$(ffmpeg -hide_banner -i "$f" 2>&1)"
+x="$(ffprobe -hide_banner "$f" 2>&1)"
printf '%s\n' "$x"
y=$((y + $(printf '%s\n' "$x" | wc -l)))
diff --git a/modules/by-name/lf/lf/ctpv/prev/audio/default.nix b/modules/by-name/lf/lf/ctpv/prev/audio/default.nix
index 20df04b3..b9d4ff0d 100644
--- a/modules/by-name/lf/lf/ctpv/prev/audio/default.nix
+++ b/modules/by-name/lf/lf/ctpv/prev/audio/default.nix
@@ -1,3 +1,12 @@
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
{pkgs, ...}: {
soispha.programs.lf.ctpv.previewers = {
audio = {
@@ -5,9 +14,10 @@
matches.mime = ["audio/*"];
dependencies = [
pkgs.ffmpegthumbnailer
- pkgs.ffmpeg
+ pkgs.ffmpeg-headless
pkgs.chafa
+ pkgs.exiftool
pkgs.gnused
pkgs.coreutils
];
diff --git a/modules/by-name/lf/lf/ctpv/prev/default.nix b/modules/by-name/lf/lf/ctpv/prev/default.nix
index 3e54e88a..d7e420d0 100644
--- a/modules/by-name/lf/lf/ctpv/prev/default.nix
+++ b/modules/by-name/lf/lf/ctpv/prev/default.nix
@@ -1,3 +1,12 @@
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
{
pkgs,
config,
diff --git a/modules/by-name/lf/lf/ctpv/prev/font/default.nix b/modules/by-name/lf/lf/ctpv/prev/font/default.nix
index 48bcb7ad..e2ce2cc2 100644
--- a/modules/by-name/lf/lf/ctpv/prev/font/default.nix
+++ b/modules/by-name/lf/lf/ctpv/prev/font/default.nix
@@ -1,3 +1,12 @@
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
{pkgs, ...}: {
soispha.programs.lf.ctpv.previewers = {
font = {
@@ -5,6 +14,7 @@
matches.mime = [
"font/*"
"application/vnd.ms-opentype"
+ "application/x-font-pf2"
# TODO: This should be added (ext: 'eot') <2024-12-04>
# "application/vnd.ms-fontobject"
@@ -12,6 +22,7 @@
dependencies = [
pkgs.fontforge # for `fontimage`
pkgs.chafa
+ pkgs.exiftool
pkgs.gnused
pkgs.coreutils
];
diff --git a/modules/by-name/lf/lf/ctpv/prev/font/font.sh b/modules/by-name/lf/lf/ctpv/prev/font/font.sh
index 9e5ef3c1..49e12ec7 100644
--- a/modules/by-name/lf/lf/ctpv/prev/font/font.sh
+++ b/modules/by-name/lf/lf/ctpv/prev/font/font.sh
@@ -1,5 +1,15 @@
#! /usr/bin/env dash
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
+
# shellcheck disable=SC2269
f="$f"
# shellcheck disable=SC2269
diff --git a/modules/by-name/lf/lf/ctpv/prev/image/default.nix b/modules/by-name/lf/lf/ctpv/prev/image/default.nix
index 87fba00c..765c7c83 100644
--- a/modules/by-name/lf/lf/ctpv/prev/image/default.nix
+++ b/modules/by-name/lf/lf/ctpv/prev/image/default.nix
@@ -1,3 +1,12 @@
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
{pkgs, ...}: {
soispha.programs.lf.ctpv.previewers = {
image = {
@@ -5,6 +14,7 @@
matches.mime = ["image/*"];
dependencies = [
pkgs.chafa
+ pkgs.exiftool
pkgs.gnused
];
};
diff --git a/modules/by-name/lf/lf/ctpv/prev/image/image.sh b/modules/by-name/lf/lf/ctpv/prev/image/image.sh
index 42c99c23..d021cbf6 100644
--- a/modules/by-name/lf/lf/ctpv/prev/image/image.sh
+++ b/modules/by-name/lf/lf/ctpv/prev/image/image.sh
@@ -1,5 +1,15 @@
#! /usr/bin/env dash
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
+
# shellcheck disable=SC2269
f="$f"
diff --git a/modules/by-name/lf/lf/ctpv/prev/image/svg+xml/default.nix b/modules/by-name/lf/lf/ctpv/prev/image/svg+xml/default.nix
index 90915c84..12e65337 100644
--- a/modules/by-name/lf/lf/ctpv/prev/image/svg+xml/default.nix
+++ b/modules/by-name/lf/lf/ctpv/prev/image/svg+xml/default.nix
@@ -1,3 +1,12 @@
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
{pkgs, ...}: {
soispha.programs.lf.ctpv.previewers = {
svg = {
@@ -7,6 +16,7 @@
dependencies = [
pkgs.imagemagick
pkgs.chafa
+ pkgs.exiftool
pkgs.gnused
];
};
diff --git a/modules/by-name/lf/lf/ctpv/prev/image/svg+xml/svg.sh b/modules/by-name/lf/lf/ctpv/prev/image/svg+xml/svg.sh
index ce588ada..b16e4fc5 100644
--- a/modules/by-name/lf/lf/ctpv/prev/image/svg+xml/svg.sh
+++ b/modules/by-name/lf/lf/ctpv/prev/image/svg+xml/svg.sh
@@ -1,5 +1,15 @@
#! /usr/bin/env dash
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
+
# shellcheck disable=SC2269
f="$f"
# shellcheck disable=SC2269
diff --git a/modules/by-name/lf/lf/ctpv/prev/image/x-xcf/default.nix b/modules/by-name/lf/lf/ctpv/prev/image/x-xcf/default.nix
index a3394ef4..5af6c501 100644
--- a/modules/by-name/lf/lf/ctpv/prev/image/x-xcf/default.nix
+++ b/modules/by-name/lf/lf/ctpv/prev/image/x-xcf/default.nix
@@ -1,3 +1,12 @@
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
{pkgs, ...}: {
soispha.programs.lf.ctpv.previewers = {
xcf = {
diff --git a/modules/by-name/lf/lf/ctpv/prev/image/x-xcf/xcf.sh b/modules/by-name/lf/lf/ctpv/prev/image/x-xcf/xcf.sh
index abb83a89..4ad4b34b 100644
--- a/modules/by-name/lf/lf/ctpv/prev/image/x-xcf/xcf.sh
+++ b/modules/by-name/lf/lf/ctpv/prev/image/x-xcf/xcf.sh
@@ -1,5 +1,15 @@
#! /usr/bin/env dash
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
+
# shellcheck disable=SC2269
f="$f"
# shellcheck disable=SC2269
diff --git a/modules/by-name/lf/lf/ctpv/prev/inode/default.nix b/modules/by-name/lf/lf/ctpv/prev/inode/default.nix
deleted file mode 100644
index eaade0f1..00000000
--- a/modules/by-name/lf/lf/ctpv/prev/inode/default.nix
+++ /dev/null
@@ -1,16 +0,0 @@
-{pkgs, ...}: {
- soispha.programs.lf.ctpv.previewers = {
- ls = {
- previewer = ./ls.sh;
- priority = 1;
- matches.mime = ["inode/directory"];
- dependencies = [pkgs.coreutils];
- };
- symlink = {
- previewer = ./symlink.sh;
- priority = 1;
- matches.mime = ["inode/symlink"];
- dependencies = [];
- };
- };
-}
diff --git a/modules/by-name/lf/lf/ctpv/prev/inode/directory/default.nix b/modules/by-name/lf/lf/ctpv/prev/inode/directory/default.nix
new file mode 100644
index 00000000..baf0314f
--- /dev/null
+++ b/modules/by-name/lf/lf/ctpv/prev/inode/directory/default.nix
@@ -0,0 +1,19 @@
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
+{pkgs, ...}: {
+ soispha.programs.lf.ctpv.previewers = {
+ ls = {
+ previewer = ./ls.sh;
+ priority = 1;
+ matches.mime = ["inode/directory"];
+ dependencies = [pkgs.coreutils];
+ };
+ };
+}
diff --git a/modules/by-name/lf/lf/ctpv/prev/inode/directory/ls.sh b/modules/by-name/lf/lf/ctpv/prev/inode/directory/ls.sh
new file mode 100644
index 00000000..73e036eb
--- /dev/null
+++ b/modules/by-name/lf/lf/ctpv/prev/inode/directory/ls.sh
@@ -0,0 +1,20 @@
+#! /usr/bin/env dash
+
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
+
+# shellcheck disable=SC2269
+f="$f"
+# shellcheck disable=SC2269
+cache_d="$cache_d"
+# shellcheck disable=SC2269
+cache_f="$cache_f"
+
+ls --color --group-directories-first -- "$f"
diff --git a/modules/by-name/lf/lf/ctpv/prev/inode/fifo/default.nix b/modules/by-name/lf/lf/ctpv/prev/inode/fifo/default.nix
new file mode 100644
index 00000000..70cb9132
--- /dev/null
+++ b/modules/by-name/lf/lf/ctpv/prev/inode/fifo/default.nix
@@ -0,0 +1,19 @@
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
+{...}: {
+ soispha.programs.lf.ctpv.previewers = {
+ fifo = {
+ previewer = ./fifo.sh;
+ priority = 1;
+ matches.mime = ["inode/fifo"];
+ dependencies = [];
+ };
+ };
+}
diff --git a/modules/by-name/lf/lf/ctpv/prev/inode/fifo/fifo.sh b/modules/by-name/lf/lf/ctpv/prev/inode/fifo/fifo.sh
new file mode 100644
index 00000000..594d40db
--- /dev/null
+++ b/modules/by-name/lf/lf/ctpv/prev/inode/fifo/fifo.sh
@@ -0,0 +1,16 @@
+#! /usr/bin/env dash
+
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
+
+# shellcheck disable=SC2269
+f="$f"
+
+printf "<fifo no preview>\n"
diff --git a/modules/by-name/lf/lf/ctpv/prev/inode/ls.sh b/modules/by-name/lf/lf/ctpv/prev/inode/ls.sh
deleted file mode 100644
index f5b95d13..00000000
--- a/modules/by-name/lf/lf/ctpv/prev/inode/ls.sh
+++ /dev/null
@@ -1,10 +0,0 @@
-#! /usr/bin/env dash
-
-# shellcheck disable=SC2269
-f="$f"
-# shellcheck disable=SC2269
-cache_d="$cache_d"
-# shellcheck disable=SC2269
-cache_f="$cache_f"
-
-ls --color --group-directories-first -- "$f"
diff --git a/modules/by-name/lf/lf/ctpv/prev/inode/symlink.sh b/modules/by-name/lf/lf/ctpv/prev/inode/symlink.sh
deleted file mode 100644
index fb0dea8f..00000000
--- a/modules/by-name/lf/lf/ctpv/prev/inode/symlink.sh
+++ /dev/null
@@ -1,9 +0,0 @@
-#! /usr/bin/env dash
-
-# shellcheck disable=SC2269
-f="$f"
-
-#
-# do nothing because in src/ctpv.c some kind of a "preview"
-# is already printed
-#
diff --git a/modules/by-name/lf/lf/ctpv/prev/inode/symlink/default.nix b/modules/by-name/lf/lf/ctpv/prev/inode/symlink/default.nix
new file mode 100644
index 00000000..0c1cb286
--- /dev/null
+++ b/modules/by-name/lf/lf/ctpv/prev/inode/symlink/default.nix
@@ -0,0 +1,19 @@
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
+{...}: {
+ soispha.programs.lf.ctpv.previewers = {
+ symlink = {
+ previewer = ./symlink.sh;
+ priority = 1;
+ matches.mime = ["inode/symlink"];
+ dependencies = [];
+ };
+ };
+}
diff --git a/modules/by-name/lf/lf/ctpv/prev/inode/symlink/symlink.sh b/modules/by-name/lf/lf/ctpv/prev/inode/symlink/symlink.sh
new file mode 100644
index 00000000..2629f62a
--- /dev/null
+++ b/modules/by-name/lf/lf/ctpv/prev/inode/symlink/symlink.sh
@@ -0,0 +1,19 @@
+#! /usr/bin/env dash
+
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
+
+# shellcheck disable=SC2269
+f="$f"
+
+#
+# do nothing because in src/ctpv.c some kind of a "preview"
+# is already printed
+#
diff --git a/modules/by-name/lf/lf/ctpv/prev/inode/x-empty/default.nix b/modules/by-name/lf/lf/ctpv/prev/inode/x-empty/default.nix
new file mode 100644
index 00000000..670ad38b
--- /dev/null
+++ b/modules/by-name/lf/lf/ctpv/prev/inode/x-empty/default.nix
@@ -0,0 +1,19 @@
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
+{...}: {
+ soispha.programs.lf.ctpv.previewers = {
+ empty = {
+ previewer = ./empty.sh;
+ priority = 1;
+ matches.mime = ["inode/x-empty"];
+ dependencies = [];
+ };
+ };
+}
diff --git a/modules/by-name/lf/lf/ctpv/prev/inode/x-empty/empty.sh b/modules/by-name/lf/lf/ctpv/prev/inode/x-empty/empty.sh
new file mode 100644
index 00000000..da2cd9a9
--- /dev/null
+++ b/modules/by-name/lf/lf/ctpv/prev/inode/x-empty/empty.sh
@@ -0,0 +1,16 @@
+#! /usr/bin/env dash
+
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
+
+# shellcheck disable=SC2269
+f="$f"
+
+printf "<empty file no preview>\n"
diff --git a/modules/by-name/lf/lf/ctpv/prev/libreoffice.sh b/modules/by-name/lf/lf/ctpv/prev/libreoffice.sh
index 9407aade..ade1038e 100644
--- a/modules/by-name/lf/lf/ctpv/prev/libreoffice.sh
+++ b/modules/by-name/lf/lf/ctpv/prev/libreoffice.sh
@@ -1,5 +1,15 @@
#! /usr/bin/env dash
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
+
# shellcheck disable=SC2269
f="$f"
# shellcheck disable=SC2269
diff --git a/modules/by-name/lf/lf/ctpv/prev/message/rfc822/default.nix b/modules/by-name/lf/lf/ctpv/prev/message/rfc822/default.nix
new file mode 100644
index 00000000..3cb0fcf5
--- /dev/null
+++ b/modules/by-name/lf/lf/ctpv/prev/message/rfc822/default.nix
@@ -0,0 +1,26 @@
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
+{pkgs, ...}: {
+ soispha.programs.lf.ctpv.previewers = {
+ rfc822 = {
+ previewer = ./rfc822.sh;
+ priority = 1;
+ matches.mime = [
+ "message/rfc822"
+ "application/mbox"
+ ];
+ dependencies = [
+ pkgs.coreutils
+ # pkgs.meli
+ # pkgs.util-linux
+ ];
+ };
+ };
+}
diff --git a/modules/by-name/lf/lf/ctpv/prev/message/rfc822/rfc822.sh b/modules/by-name/lf/lf/ctpv/prev/message/rfc822/rfc822.sh
new file mode 100644
index 00000000..228e01b7
--- /dev/null
+++ b/modules/by-name/lf/lf/ctpv/prev/message/rfc822/rfc822.sh
@@ -0,0 +1,22 @@
+#! /usr/bin/env dash
+
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
+
+# shellcheck disable=SC2269
+f="$f"
+# shellcheck disable=SC2269
+cache_f="$cache_f"
+
+# TODO: Actually use `meli`, currently it will just not produce output, because the script
+# never stops <2026-02-19>
+# hide_script_env meli --config /dev/null view "$f"
+
+cat "$f"
diff --git a/modules/by-name/lf/lf/ctpv/prev/remove_default_previews.nix b/modules/by-name/lf/lf/ctpv/prev/remove_default_previews.nix
index 1407386b..6614fa8d 100644
--- a/modules/by-name/lf/lf/ctpv/prev/remove_default_previews.nix
+++ b/modules/by-name/lf/lf/ctpv/prev/remove_default_previews.nix
@@ -1,3 +1,12 @@
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
{...}: {
soispha.programs.lf.ctpv.extraConfigPre = ''
remove any
diff --git a/modules/by-name/lf/lf/ctpv/prev/text/bat.sh b/modules/by-name/lf/lf/ctpv/prev/text/bat.sh
index a466c9c7..b20e9cea 100644
--- a/modules/by-name/lf/lf/ctpv/prev/text/bat.sh
+++ b/modules/by-name/lf/lf/ctpv/prev/text/bat.sh
@@ -1,5 +1,15 @@
#! /usr/bin/env dash
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
+
# shellcheck disable=SC2269
f="$f"
# shellcheck disable=SC2269
diff --git a/modules/by-name/lf/lf/ctpv/prev/text/default.nix b/modules/by-name/lf/lf/ctpv/prev/text/default.nix
index 14e74a4d..868a7460 100644
--- a/modules/by-name/lf/lf/ctpv/prev/text/default.nix
+++ b/modules/by-name/lf/lf/ctpv/prev/text/default.nix
@@ -1,3 +1,12 @@
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
{pkgs, ...}: {
soispha.programs.lf.ctpv.previewers = {
glow = {
@@ -12,7 +21,13 @@
bat = {
priority = 0;
previewer = ./bat.sh;
- matches.mime = ["text/*"];
+ matches.mime = [
+ "text/*"
+ "application/postscript"
+ "application/javascript"
+ "application/x-setupscript"
+ "application/x-wine-extension-ini"
+ ];
dependencies = [
pkgs.bat
];
diff --git a/modules/by-name/lf/lf/ctpv/prev/text/diff/default.nix b/modules/by-name/lf/lf/ctpv/prev/text/diff/default.nix
index e0fa15bb..f21acd5e 100644
--- a/modules/by-name/lf/lf/ctpv/prev/text/diff/default.nix
+++ b/modules/by-name/lf/lf/ctpv/prev/text/diff/default.nix
@@ -1,3 +1,12 @@
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
{pkgs, ...}: {
soispha.programs.lf.ctpv.previewers = {
delta = {
diff --git a/modules/by-name/lf/lf/ctpv/prev/text/diff/delta.sh b/modules/by-name/lf/lf/ctpv/prev/text/diff/delta.sh
index 3f8b5631..d30565df 100644
--- a/modules/by-name/lf/lf/ctpv/prev/text/diff/delta.sh
+++ b/modules/by-name/lf/lf/ctpv/prev/text/diff/delta.sh
@@ -1,5 +1,15 @@
#! /usr/bin/env dash
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
+
# shellcheck disable=SC2269
f="$f"
diff --git a/modules/by-name/lf/lf/ctpv/prev/text/glow.sh b/modules/by-name/lf/lf/ctpv/prev/text/glow.sh
index 30f2af78..2e8d9f58 100644
--- a/modules/by-name/lf/lf/ctpv/prev/text/glow.sh
+++ b/modules/by-name/lf/lf/ctpv/prev/text/glow.sh
@@ -1,5 +1,15 @@
#! /usr/bin/env dash
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
+
# shellcheck disable=SC2269
f="$f"
# shellcheck disable=SC2269
diff --git a/modules/by-name/lf/lf/ctpv/prev/text/json/default.nix b/modules/by-name/lf/lf/ctpv/prev/text/json/default.nix
index 7e2ef090..9538c365 100644
--- a/modules/by-name/lf/lf/ctpv/prev/text/json/default.nix
+++ b/modules/by-name/lf/lf/ctpv/prev/text/json/default.nix
@@ -1,3 +1,12 @@
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
{pkgs, ...}: {
soispha.programs.lf.ctpv.previewers = {
jq = {
diff --git a/modules/by-name/lf/lf/ctpv/prev/text/json/jq.sh b/modules/by-name/lf/lf/ctpv/prev/text/json/jq.sh
index c7090ccb..fa7c47b6 100644
--- a/modules/by-name/lf/lf/ctpv/prev/text/json/jq.sh
+++ b/modules/by-name/lf/lf/ctpv/prev/text/json/jq.sh
@@ -1,5 +1,15 @@
#! /usr/bin/env dash
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
+
# shellcheck disable=SC2269
f="$f"
diff --git a/modules/by-name/lf/lf/ctpv/prev/video/default.nix b/modules/by-name/lf/lf/ctpv/prev/video/default.nix
index f38f61c7..dc51dbdf 100644
--- a/modules/by-name/lf/lf/ctpv/prev/video/default.nix
+++ b/modules/by-name/lf/lf/ctpv/prev/video/default.nix
@@ -1,3 +1,12 @@
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
{pkgs, ...}: {
soispha.programs.lf.ctpv.previewers = {
video = {
@@ -6,6 +15,7 @@
dependencies = [
pkgs.ffmpegthumbnailer
pkgs.chafa
+ pkgs.exiftool
pkgs.gnused
];
};
diff --git a/modules/by-name/lf/lf/ctpv/prev/video/video.sh b/modules/by-name/lf/lf/ctpv/prev/video/video.sh
index d1972187..dac75205 100644
--- a/modules/by-name/lf/lf/ctpv/prev/video/video.sh
+++ b/modules/by-name/lf/lf/ctpv/prev/video/video.sh
@@ -1,5 +1,15 @@
#! /usr/bin/env dash
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
+
# shellcheck disable=SC2269
f="$f"
# shellcheck disable=SC2269
diff --git a/modules/by-name/lf/lf/icons.license b/modules/by-name/lf/lf/icons.license
new file mode 100644
index 00000000..eae6a84c
--- /dev/null
+++ b/modules/by-name/lf/lf/icons.license
@@ -0,0 +1,9 @@
+nixos-config - My current NixOS configuration
+
+Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+SPDX-License-Identifier: GPL-3.0-or-later
+
+This file is part of my nixos-config.
+
+You should have received a copy of the License along with this program.
+If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
diff --git a/modules/by-name/lf/lf/keybindings/default.nix b/modules/by-name/lf/lf/keybindings/default.nix
index c5d6427d..7d90a944 100644
--- a/modules/by-name/lf/lf/keybindings/default.nix
+++ b/modules/by-name/lf/lf/keybindings/default.nix
@@ -1,55 +1,124 @@
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
{
uid,
downloadDir,
}: {
- # Remove some defaults
- "'\"'" = null;
- ";" = null;
- "\"'\"" = null;
- c = null;
- d = null;
- e = null;
- j = null;
- k = null;
- m = null;
- f = null;
+ # v o visual-change
+ # v <esc> visual-discard
+ # v o visual-change
+ # v V visual-accept
+
+ "\\!" = "shell-wait";
+ "\\$" = "shell";
+ "\\%" = "shell-pipe";
+ "\\&" = "shell-async";
+ "\\:" = "read";
+
+ "<f-1>" = "help";
+
+ "<left>" = "updir";
+ "<right>" = "open";
+ "<down>" = "down";
+ "<up>" = "up";
+
+ "<c-f>" = "page-down";
+ "<pgdn>" = "page-down";
+ "<pgup>" = "page-up";
+ "<c-b>" = "page-up";
+
+ "[" = "jump-prev";
+ "]" = "jump-next";
+ q = "quit";
# Sorting
- kn = ":set sortby natural; set info";
- ks = ":set sortby size; set info size";
- kt = ":set sortby time; set info time";
- ka = ":set sortby atime; set info atime";
- kc = ":set sortby ctime; set info ctime";
- ke = ":set sortby ext; set info";
+ k = {
+ a = ":{{ set sortby atime; set info atime; }}";
+ b = ":{{ set sortby btime; set info btime; }}";
+ c = ":{{ set sortby ctime; set info ctime; }}";
+ e = ":{{ set sortby ext; set info; }}";
+ n = ":{{ set sortby natural; set info; }}";
+ s = ":{{ set sortby size; set info size; }}";
+ t = ":{{ set sortby time; set info time; }}";
+ };
+ z = {
+ a = "set info size:time";
+ h = "set hidden!";
+ n = "set info";
+ r = "set reverse!";
+ s = "set info size";
+ t = "set info time";
+ };
# Searching
l = "search-next";
L = "search-prev";
- # File Openers
- ee = "\$\$EDITOR \"$f\"";
- es = "\$ nvim -S \"$f\"";
+ "/" = "search";
+ "?" = "search-back";
+ F = "find-back";
+ "," = "find-prev";
+
+ # File edit
+ e = {
+ e = "\${{ $EDITOR \"$f\" }}";
+ s = "\${{ nvim -S \"$f\" }}";
+ };
+
u = "view_file";
- cc = "\$sudo -e \"$f\"";
- fe = "execute";
- fl = "follow_link";
- cp = "set_clipboard_path";
+
+ f = {
+ e = "execute";
+ l = "follow_link";
+ };
+
+ c = {
+ h = "chmod";
+ p = "set_clipboard_path";
+ s = "stripspace";
+ };
# Archive Mappings
- au = "archive_decompress";
- aa = "archive_compress";
+ a = {
+ a = "archive_compress";
+ u = "archive_decompress";
+ };
+
+ D = {
+ D = "delete";
+ };
+ d = {
+ # Trash Mappings
+ d = "trash";
- # Trash Mappings
- dd = "trash";
- jc = "trash_clear";
- jr = "trash_restore";
+ # Dragon Mapping
+ i = "dragon_individual";
+ r = "dragon";
+ s = "dragon_stay";
+ };
- # Dragon Mapping
- dr = "dragon";
- ds = "dragon_stay";
- di = "dragon_individual";
+ # that is just here for documentation
+ # i = "ctpv preview"
- cs = "stripspace";
+ # [o]perate on system commands
+ o = {
+ d = {
+ e = "syscmd_direnv_sandbox_enable";
+ d = "syscmd_direnv_sandbox_disable";
+ };
+ };
+
+ j = {
+ c = "trash_clear";
+ r = "trash_restore";
+ };
# Vim keys
h = "updir";
@@ -58,37 +127,47 @@
s = "open";
# Basic Functions
- "." = "set hidden!";
- DD = "delete";
p = "paste";
x = "cut";
y = "copy";
"<enter>" = "open";
- mk = "mk_link";
- mf = "mk_file";
- md = "mk_directory";
- ms = "mk_script";
-
- ch = "chmod";
- bg = "set_wallpaper";
- r = ":rename; cmd-end";
- H = "cd_project_root";
- R = "reload";
+ # Selecting
+ v = "invert";
+ V = "visual";
+ "<space>" = ":{{ toggle; down; }}";
C = "clear";
U = "unselect";
- # Movement
- gjr = "cd ~/.local/share/Trash/files";
- gus = "cd /run/user/${builtins.toString uid}";
+ m = {
+ d = "mk_directory";
+ f = "mk_file";
+ l = "mk_link";
+ s = "mk_script";
+ };
+
+ b = {
+ g = "set_wallpaper";
+ };
+
+ r = ":{{ rename; cmd-end; }}";
+ "<c-r>" = "reload";
+ R = "reload";
+ "<c-l>" = "redraw";
- gc = "cd ~/.config";
- gl = "cd ~/.local";
- gE = "cd /etc";
- gd = "cd ${downloadDir}";
+ # Change cursor position
+ H = "top";
+ G = "bottom";
- "gU." = "cd /usr";
- gUs = " cd /usr/share";
+ # (walking) Movement
+ w = {
+ d = "cd ${downloadDir}";
+ e = "cd /etc";
+ H = "cd ~";
+ h = "cd_project_root";
+ t = "cd /tmp";
+ u = "cd /run/user/${builtins.toString uid}";
+ };
- gt = "cd /tmp";
+ g = "cd_lf_make_map";
}
diff --git a/modules/by-name/lf/lf/module.nix b/modules/by-name/lf/lf/module.nix
index 6dc8e919..2d80f68e 100644
--- a/modules/by-name/lf/lf/module.nix
+++ b/modules/by-name/lf/lf/module.nix
@@ -1,3 +1,12 @@
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
{
pkgs,
config,
@@ -5,10 +14,36 @@
shell_library,
system,
lib,
+ libraries,
...
}: let
- commands = import ./commands {inherit pkgs sysLib shell_library system;};
- keybindings = import ./keybindings {inherit (cfg.keymaps) uid downloadDir;};
+ real_commands = import ./commands {inherit pkgs sysLib shell_library system;};
+ keybindings_raw = import ./keybindings {inherit (cfg.keymaps) uid downloadDir;};
+
+ # HACK: There is no (easy) way for me to make sure, that the `clearmaps` command is
+ # generated in the lf config before the keymapping commands.
+ # This command injection works around that. <2026-07-21>
+ commands = libraries.extra.warnMerge real_commands {
+ __clearmaps_injection = ''
+ :{{
+ clearmaps
+ }};
+ clearmaps
+ '';
+ } "lf command map";
+
+ process = prefix: attrs:
+ lib.mapAttrsToList (name: value: let
+ new_prefix =
+ if prefix == null
+ then name
+ else prefix + name;
+ in
+ if (builtins.isAttrs value)
+ then (process new_prefix value) ++ [(lib.nameValuePair new_prefix null)]
+ else (lib.nameValuePair new_prefix value))
+ attrs;
+ keybindings = builtins.listToAttrs (lib.lists.flatten (process null keybindings_raw));
cfg = config.soispha.programs.lf;
in {
@@ -43,12 +78,29 @@ in {
"d /.Trash 1777 root root"
];
+ soispha.programs.fish.integrations.lf =
+ # fish
+ ''
+ function ll
+ . ${./wrappers/ll.fish} $argv
+ end
+
+ function lm
+ . ${./wrappers/lm.fish} $argv
+ end
+ '';
+
home-manager.users.soispha = {
xdg.configFile = {
"lf/icons".source = ./icons;
"lf/colors".source = ./colors;
};
+ # programs.zsh.shellAliases = {
+ # ll = ". ${lib.getExe packages.ll}";
+ # lm = ". ${lib.getExe packages.lm}";
+ # };
+
programs.lf = {
enable = true;
@@ -69,31 +121,14 @@ in {
drawbox = true;
- # errorfmt = "\\033[1;91m==> ERROR:\\033[0m\\033[1;93m%s\\033[0m";
errorfmt = "\\033[1;91m%s\\033[0m";
hidden = true; # show hidden files
icons = true;
ifs = "\\n"; # internal field separator for shell commands
#info = "size"; # show the size of a directory
- shell = "sh";
+ shell = "${lib.getExe pkgs.dash}";
shellopts = "-eu"; # e: exit on error; u: error for unset variables
};
- extraConfig = ''
- # Dynamically generate the cd mappings.
- # This code dependends on the fact, that the lf server was started previously
- # and keep running through `autoquit = false`.
- # (Otherwise, the remote command is silently dropped: https://github.com/gokcehan/lf/issues/495)
- &{{
- tmp="$(mktemp)"
- ${lib.getExe pkgs.lf-make-map} --depth 4 generate ~/media ~/repos ~/school >"$tmp"
-
- lf -remote "send $id source $tmp"
- sleep 1
- lf -remote "send $id source $tmp"
-
- rm "$tmp"
- }}
- '';
};
};
};
diff --git a/modules/by-name/lf/lf/wrappers/ll.fish b/modules/by-name/lf/lf/wrappers/ll.fish
new file mode 100644
index 00000000..0ee34755
--- /dev/null
+++ b/modules/by-name/lf/lf/wrappers/ll.fish
@@ -0,0 +1,41 @@
+#!/usr/bin/env fish
+
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
+
+begin
+ test -d "$XDG_RUNTIME_DIR/ll"; or mkdir "$XDG_RUNTIME_DIR/ll"
+ set last_directory "$XDG_RUNTIME_DIR/ll/last_directory"
+
+ set --export LL_SYSCMD_SOCKET "$(mktemp -t fish_ll_syscmd_socket_XXXXXX)"
+ begin
+ command lf -last-dir-path="$last_directory" "$argv"
+
+ cat "$LL_SYSCMD_SOCKET" | while read -l cmd
+ switch "$cmd"
+ case "SYSCMD::DIRENV::SANDBOX::ENABLE"
+ set --global SHOULD_SANDBOX_DIRENV
+ case "SYSCMD::DIRENV::SANDBOX::DISABLE"
+ set --erase SHOULD_SANDBOX_DIRENV
+ case '*'
+ # Just pass things along, that we don't know about
+ printf "%s\n\r" "$cmd" >&2
+ end
+ end
+ end
+ rm "$LL_SYSCMD_SOCKET"
+ set --erase LL_SYSCMD_SOCKET
+
+
+ set dir "$(cat "$last_directory")"
+ if not cd "$dir"
+ echo "ll: Failed to cd to '$dir'. Does it exist?"
+ end
+end
diff --git a/modules/by-name/lf/lf/wrappers/lm.fish b/modules/by-name/lf/lf/wrappers/lm.fish
new file mode 100644
index 00000000..b590c143
--- /dev/null
+++ b/modules/by-name/lf/lf/wrappers/lm.fish
@@ -0,0 +1,20 @@
+#!/usr/bin/env fish
+
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
+
+begin
+ if test -f "$XDG_RUNTIME_DIR/ll/last_directory"
+ set last_dir "$(cat "$XDG_RUNTIME_DIR/ll/last_directory")"
+ cd "$last_dir"; or echo "$last_dir does not exist!"
+ else
+ echo "No last directory saved (try using ll instead)."
+ end
+end