From a66ef574bcb5601a101c2afe9b57de1cf3a52a63 Mon Sep 17 00:00:00 2001 From: Luca Bilke <luca@gmail.com> Date: Sat, 6 Aug 2022 13:12:51 +0200 Subject: [PATCH] add some required scripts --- .local/bin/.keep | 0 .local/bin/shortcuts | 33 +++++++++++++++++++++++++++++++++ .local/bin/vidthumb | 38 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 71 insertions(+) delete mode 100644 .local/bin/.keep create mode 100755 .local/bin/shortcuts create mode 100755 .local/bin/vidthumb diff --git a/.local/bin/.keep b/.local/bin/.keep deleted file mode 100644 index e69de29..0000000 diff --git a/.local/bin/shortcuts b/.local/bin/shortcuts new file mode 100755 index 0000000..032388e --- /dev/null +++ b/.local/bin/shortcuts @@ -0,0 +1,33 @@ +#!/bin/sh + +bmdirs="${XDG_CONFIG_HOME:-$HOME/.config}/shell/bm-dirs" +bmfiles="${XDG_CONFIG_HOME:-$HOME/.config}/shell/bm-files" + +# Output locations. Unactivated progs should go to /dev/null. +shell_shortcuts="${XDG_CONFIG_HOME:-$HOME/.config}/shell/shortcutrc" +zsh_named_dirs="${XDG_CONFIG_HOME:-$HOME/.config}/shell/zshnameddirrc" +lf_shortcuts="${XDG_CONFIG_HOME:-$HOME/.config}/lf/shortcutrc" +ranger_shortcuts="/dev/null" +qute_shortcuts="/dev/null" +fish_shortcuts="/dev/null" +vifm_shortcuts="/dev/null" + +# Remove, prepare files +rm -f "$lf_shortcuts" "$ranger_shortcuts" "$qute_shortcuts" "$zsh_named_dirs" 2>/dev/null +printf "# vim: filetype=sh\\n" > "$fish_shortcuts" +printf "# vim: filetype=sh\\nalias " > "$shell_shortcuts" +printf "\" vim: filetype=vim\\n" > "$vifm_shortcuts" + +# Format the `directories` file in the correct syntax and sent it to all three configs. +eval "echo \"$(cat "$bmdirs")\"" | \ +awk "!/^\s*#/ && !/^\s*\$/ {gsub(\"\\\s*#.*$\",\"\"); + printf(\"%s=\42cd %s && tput cuu1;tput el\42 \\\\\n\",\$1,\$2) >> \"$shell_shortcuts\" ; + printf(\"hash -d %s=%s \n\",\$1,\$2) >> \"$zsh_named_dirs\" ; + printf(\"map C%s cd \42%s\42 \n\",\$1,\$2) >> \"$lf_shortcuts\" }" + +# Format the `files` file in the correct syntax and sent it to both configs. +eval "echo \"$(cat "$bmfiles")\"" | \ +awk "!/^\s*#/ && !/^\s*\$/ {gsub(\"\\\s*#.*$\",\"\"); + printf(\"%s=\42\$EDITOR %s\42 \\\\\n\",\$1,\$2) >> \"$shell_shortcuts\" ; + printf(\"hash -d %s=%s \n\",\$1,\$2) >> \"$zsh_named_dirs\" ; + printf(\"map E%s \$\$EDITOR \42%s\42 \n\",\$1,\$2) >> \"$lf_shortcuts\" }" diff --git a/.local/bin/vidthumb b/.local/bin/vidthumb new file mode 100755 index 0000000..72143d0 --- /dev/null +++ b/.local/bin/vidthumb @@ -0,0 +1,38 @@ +#!/usr/bin/env bash +# Script to generate thumbnails for lf + +if ! [ -f "$1" ]; then + exit 1 +fi + +cache="${XDG_CACHE_HOME:-$HOME/.cache}/lf" +index="$cache/index.json" +movie="$(realpath "$1")" + +mkdir -p "$cache" + +if [ -f "$index" ]; then + thumbnail="$(jq -r ". \"$movie\"" <"$index")" + if [[ "$thumbnail" != "null" ]]; then + if [[ ! -f "$cache/$thumbnail" ]]; then + exit 1 + fi + echo "$cache/$thumbnail" + exit 0 + fi +fi + +thumbnail="$(uuidgen).jpg" + +if ! ffmpegthumbnailer -i "$movie" -o "$cache/$thumbnail" -s 0 2>/dev/null; then + exit 1 +fi + +if [[ ! -f "$index" ]]; then + echo "{\"$movie\": \"$thumbnail\"}" >"$index" +fi +json="$(jq -r --arg "$movie" "$thumbnail" ". + {\"$movie\": \"$thumbnail\"}" <"$index")" +echo "$json" >"$index" + +echo "$cache/$thumbnail" +