aboutsummaryrefslogtreecommitdiffstats
path: root/modules/by-name/lf
diff options
context:
space:
mode:
Diffstat (limited to 'modules/by-name/lf')
-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.nix77
-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.sh10
-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.sh14
-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.nix16
-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.sh14
-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.sh14
-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.nix27
-rw-r--r--modules/by-name/lf/lf/module.nix35
-rw-r--r--modules/by-name/lf/lf/wrappers/default.nix4
-rw-r--r--modules/by-name/lf/lf/wrappers/ll/default.nix18
-rwxr-xr-xmodules/by-name/lf/lf/wrappers/ll/ll.sh23
-rw-r--r--modules/by-name/lf/lf/wrappers/lm/default.nix18
-rwxr-xr-xmodules/by-name/lf/lf/wrappers/lm/lm.sh28
90 files changed, 1088 insertions, 121 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..42dc548e 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,7 +16,14 @@
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}";
@@ -39,20 +55,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 +79,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,9 +138,10 @@ in {
};
set_wallpaper = pipe {
name = "set_wallpaper";
- dependencies = with pkgs; [
- river # for `riverctl`
- swaybg
+ dependencies = [
+ pkgs.river-classic # for `riverctl`
+ pkgs.swaybg
+ pkgs.procps
];
};
@@ -124,27 +150,34 @@ in {
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
+ pkgs.gawk
+ pkgs.trashy
+ pkgs.gnused
+ ];
};
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..7b078c26 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
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 0b0ee573..01c31e2b 100644
--- a/modules/by-name/lf/lf/ctpv/prev/any.sh
+++ b/modules/by-name/lf/lf/ctpv/prev/any.sh
@@ -1,13 +1,23 @@
#! /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
w="$w"
# shellcheck disable=SC2269
-e="$e"
+e="${e:-[missing extension]}"
# shellcheck disable=SC2269
-m="$m"
+m="${m:-[missing mime type]}"
# shellcheck disable=SC2269
h="$h"
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..dc34d5de 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,8 @@
pkgs.xz
pkgs.zip
+ 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 e365fe0a..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,13 +1,23 @@
#! /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
w="$w"
# shellcheck disable=SC2269
-e="$e"
+e="${e:-[missing extension]}"
# shellcheck disable=SC2269
-m="$m"
+m="${m:-[missing mime type]}"
# shellcheck disable=SC2269
h="$h"
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 cad95860..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,13 +1,23 @@
#! /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
w="$w"
# shellcheck disable=SC2269
-e="$e"
+e="${e:-[missing extension]}"
# shellcheck disable=SC2269
-m="$m"
+m="${m:-[missing mime type]}"
# shellcheck disable=SC2269
h="$h"
# 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..5d8ad78f 100644
--- a/modules/by-name/lf/lf/keybindings/default.nix
+++ b/modules/by-name/lf/lf/keybindings/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>.
{
uid,
downloadDir,
@@ -73,22 +82,16 @@
ch = "chmod";
bg = "set_wallpaper";
r = ":rename; cmd-end";
- H = "cd_project_root";
R = "reload";
C = "clear";
U = "unselect";
# Movement
- gjr = "cd ~/.local/share/Trash/files";
- gus = "cd /run/user/${builtins.toString uid}";
+ Gu = "cd /run/user/${builtins.toString uid}";
+ Ge = "cd /etc";
+ Gd = "cd ${downloadDir}";
+ Gt = "cd /tmp";
+ Gh = "cd_project_root";
- gc = "cd ~/.config";
- gl = "cd ~/.local";
- gE = "cd /etc";
- gd = "cd ${downloadDir}";
-
- "gU." = "cd /usr";
- gUs = " cd /usr/share";
-
- 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..daa236e6 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,
@@ -10,6 +19,8 @@
commands = import ./commands {inherit pkgs sysLib shell_library system;};
keybindings = import ./keybindings {inherit (cfg.keymaps) uid downloadDir;};
+ packages = import ./wrappers {inherit pkgs;};
+
cfg = config.soispha.programs.lf;
in {
imports = [
@@ -49,6 +60,11 @@ in {
"lf/colors".source = ./colors;
};
+ programs.zsh.shellAliases = {
+ ll = ". ${lib.getExe packages.ll}";
+ lm = ". ${lib.getExe packages.lm}";
+ };
+
programs.lf = {
enable = true;
@@ -69,31 +85,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/default.nix b/modules/by-name/lf/lf/wrappers/default.nix
new file mode 100644
index 00000000..7257a66e
--- /dev/null
+++ b/modules/by-name/lf/lf/wrappers/default.nix
@@ -0,0 +1,4 @@
+{pkgs}: {
+ ll = pkgs.callPackage ./ll {};
+ lm = pkgs.callPackage ./lm {};
+}
diff --git a/modules/by-name/lf/lf/wrappers/ll/default.nix b/modules/by-name/lf/lf/wrappers/ll/default.nix
new file mode 100644
index 00000000..6e4ee336
--- /dev/null
+++ b/modules/by-name/lf/lf/wrappers/ll/default.nix
@@ -0,0 +1,18 @@
+# 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>.
+{writeShellApplication}:
+writeShellApplication {
+ name = "ll";
+ text = builtins.readFile ./ll.sh;
+
+ # This is sourced in the shell
+ inheritPath = true;
+ bashOptions = [];
+}
diff --git a/modules/by-name/lf/lf/wrappers/ll/ll.sh b/modules/by-name/lf/lf/wrappers/ll/ll.sh
new file mode 100755
index 00000000..9bb314c6
--- /dev/null
+++ b/modules/by-name/lf/lf/wrappers/ll/ll.sh
@@ -0,0 +1,23 @@
+#!/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>.
+
+[ -d "$XDG_RUNTIME_DIR/ll" ] || mkdir "$XDG_RUNTIME_DIR/ll"
+last_directory="$XDG_RUNTIME_DIR/ll/last_directory"
+
+command lf -last-dir-path="$last_directory" "$@"
+
+dir="$(cat "$last_directory")"
+if ! cd "$dir"; then
+ die "ll: Failed to cd to '$dir'. Does it exist?"
+fi
+
+# vim: ft=sh
diff --git a/modules/by-name/lf/lf/wrappers/lm/default.nix b/modules/by-name/lf/lf/wrappers/lm/default.nix
new file mode 100644
index 00000000..42bdc687
--- /dev/null
+++ b/modules/by-name/lf/lf/wrappers/lm/default.nix
@@ -0,0 +1,18 @@
+# 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>.
+{writeShellApplication}:
+writeShellApplication {
+ name = "lm";
+ text = builtins.readFile ./lm.sh;
+
+ # This is sourced in the shell
+ inheritPath = true;
+ bashOptions = [];
+}
diff --git a/modules/by-name/lf/lf/wrappers/lm/lm.sh b/modules/by-name/lf/lf/wrappers/lm/lm.sh
new file mode 100755
index 00000000..71213721
--- /dev/null
+++ b/modules/by-name/lf/lf/wrappers/lm/lm.sh
@@ -0,0 +1,28 @@
+#!/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>.
+
+die() {
+ echo "ERROR: $1"
+ exit 1
+}
+
+msg() {
+ echo "$1"
+}
+
+if [ -f "$XDG_RUNTIME_DIR/ll/last_directory" ]; then
+ last_dir="$(cat "$XDG_RUNTIME_DIR/ll/last_directory")"
+ cd "$last_dir" || die "$last_dir does not exist!"
+else
+ msg "No last directory saved (try using ll instead)."
+fi
+# vim: ft=sh