about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--hm/soispha/conf/lf/commands/default.nix6
-rwxr-xr-xhm/soispha/conf/lf/commands/scripts/view_file.sh26
-rw-r--r--hm/soispha/conf/lf/keybindings/default.nix2
3 files changed, 30 insertions, 4 deletions
diff --git a/hm/soispha/conf/lf/commands/default.nix b/hm/soispha/conf/lf/commands/default.nix
index 47bf0a12..6994f100 100644
--- a/hm/soispha/conf/lf/commands/default.nix
+++ b/hm/soispha/conf/lf/commands/default.nix
@@ -168,9 +168,9 @@ in {
       TO_BE_SHELL_LIBRARY_PATH = "%SHELL_LIBRARY_PATH"; # replacement is not recursive
     };
   };
-  open = shell {
-    name = "open";
-    dependencies = builtins.attrValues {inherit (pkgs) file xdg-utils;};
+  view_file = async {
+    name = "view_file";
+    dependencies = builtins.attrValues {inherit (pkgs) file;};
   };
   go_project_base_directory = async {
     name = "go_project_root";
diff --git a/hm/soispha/conf/lf/commands/scripts/view_file.sh b/hm/soispha/conf/lf/commands/scripts/view_file.sh
new file mode 100755
index 00000000..a7d7055d
--- /dev/null
+++ b/hm/soispha/conf/lf/commands/scripts/view_file.sh
@@ -0,0 +1,26 @@
+#!/usr/bin/env dash
+
+# shellcheck source=/dev/null
+SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH
+
+# shellcheck disable=SC2269
+f="$f"
+# shellcheck disable=SC2269
+fx="$fx"
+# shellcheck disable=SC2269
+fs="$fs"
+
+mime_type="$(file --mime-type --brief --dereference "$f")"
+case "$mime_type" in
+application/pdf)
+    "$READER" "$f"
+    ;;
+image/*)
+    "$IVIEWER" "$f"
+    ;;
+*)
+    die "Mime-Type: '$mime_type' not supported"
+    ;;
+esac
+
+# vim: ft=sh
diff --git a/hm/soispha/conf/lf/keybindings/default.nix b/hm/soispha/conf/lf/keybindings/default.nix
index c95100c4..bed42822 100644
--- a/hm/soispha/conf/lf/keybindings/default.nix
+++ b/hm/soispha/conf/lf/keybindings/default.nix
@@ -17,7 +17,7 @@ in
     # File Openers
     ee = "\$\$EDITOR \"$f\"";
     es = "\$ nvim -S \"$f\"";
-    u = "%\$IVIEWER \"$f\"";
+    u = "view_file";
     cc = "\$sudo -e \"$f\"";
 
     # Archive Mappings