diff options
-rwxr-xr-x | sh/.local/bin/lessfilter | 7 | ||||
-rwxr-xr-x | tmux/.local/bin/tmux-projectr | 44 |
2 files changed, 19 insertions, 32 deletions
diff --git a/sh/.local/bin/lessfilter b/sh/.local/bin/lessfilter index 661a638..c0ea194 100755 --- a/sh/.local/bin/lessfilter +++ b/sh/.local/bin/lessfilter @@ -1,6 +1,11 @@ #!/bin/sh +if [ -d "$1" ]; then + onefetch --include-hidden --no-art --no-color-palette "$1" 2>/dev/null && exit 0 + tree -CL 3 --gitignore --noreport "$1" 2>/dev/null && exit 0 +fi + case "$1" in -*/rfc/txt/rfc*.txt) sed -e '1,+2d' -e '/\f/d' "$1" ;; +*/rfc/txt/rfc*.txt) sed -e '1,+2d' -e '/\f/d' "$1" && exit 0 ;; *) exit 1 ;; esac diff --git a/tmux/.local/bin/tmux-projectr b/tmux/.local/bin/tmux-projectr index 9dfb1b9..4f0fc8a 100755 --- a/tmux/.local/bin/tmux-projectr +++ b/tmux/.local/bin/tmux-projectr @@ -1,41 +1,23 @@ #!/bin/sh if [ "$#" -eq 0 ]; then - PREVIEW_CMD="( - onefetch --include-hidden --no-art --no-color-palette {} && - printf '\n' - tree -CL 3 --gitignore --noreport --filelimit=50 {} && - printf '\n' - case {}/ in - */dkr/*) bat -f --style=header {}/docker-compose.yml;; - */pkg/*) bat -f --style=header {}/PKGBUILD;; - *) bat -f --style=header {}/README.md;; - esac | sed '1s|File: ||' - ) 2>/dev/null" - - # shellcheck disable=2046 - set -- $( - projectr -mgt ~/.local/src --exclude-cwd | - fzf-tmux -p100,30 -- --tac --exit-0 -d/ --with-nth -1 \ - --bind "focus:transform-header(echo {} | sed 's|$HOME|~|')" \ - --preview-window='right,60,<60(hidden)' --preview="$PREVIEW_CMD" - ) - + set -- "$( + find ~/.local/src/* -prune ! -path "$(pwd)" -printf "%T+\t%p\n" | sort | cut -f2 | + fzf --tmux --tac --exit-0 -d/ --with-nth=-1 --preview='lesspipe.sh {}' + )" test -n "$1" || exit 0 fi -if [ -z "$2" ]; then - if [ -z "$(tmux list-sessions -f "#{==:#{session_path},$1}" -F '#S' 2>/dev/null)" ]; then - tmux new-session -dc "$1" - fi +if [ ! -d "$1" ]; then + exit 1 +fi - set -- "$1" "$(tmux list-sessions -f "#{==:#{session_path},$1}" -F '#S' 2>/dev/null)" -elif ! tmux has-session -t "$2" 2>/dev/null; then - tmux new-session -dc "$1" -s "$2" +if ! session="$(tmux ls -f "#{==:#{session_path},$1}" -F '#S' 2>/dev/null | grep ^)"; then + session="$(tmux new -dc "$1" -PF'#S')" fi -if [ -z "$TMUX" ] && [ -z "$2" ]; then - tmux attach-session -t "$2" -elif tmux has-session -t "$2" 2>/dev/null; then - tmux switch-client -t "$2" +if [ -z "$TMUX" ]; then + tmux attach-session -t "$session" +else + tmux switch-client -t "$session" fi |