better statusline

This commit is contained in:
Dylan Araps 2020-08-06 11:09:55 +03:00
parent 9d86a19f34
commit c285271d05
No known key found for this signature in database
GPG Key ID: 46D62DD9F1DE636E
1 changed files with 20 additions and 12 deletions

32
shfm
View File

@ -58,7 +58,7 @@ term_scroll_down() {
line_print "$((y - 1))" "$@"
printf '\n'
line_print "$y" "$@"
status_line "($y/$#) $PWD"
status_line "$#"
;;
esac
}
@ -78,7 +78,7 @@ term_scroll_up() {
esac
line_print "$y" "$@"
status_line "($y/$#) $PWD"
status_line "$#"
;;
esac
}
@ -160,7 +160,7 @@ list_print() {
redraw() {
list_print "$@"
status_line "($y/$#) $PWD"
status_line "$#"
}
status_line() {
@ -172,7 +172,15 @@ status_line() {
*) esc SGR 34 7 ;;
esac
printf '%-*s' "$COLUMNS" "$1"
printf '%s ' "($y/$1)"
case $ltype in
'') printf %s "$PWD" ;;
*) printf %s "$ltype"
esac
printf '%*s' "$COLUMNS" ""
esc SGR
esc DECRC
}
@ -269,7 +277,7 @@ main() {
l?|C2|"$esc") # ARROW RIGHT
if [ -d "$cur" ] && cd "$cur" >/dev/null 2>&1; then
set -- *
y=1 y2=1 cur=$1 search=0
y=1 y2=1 cur=$1 ltype=
redraw "$@"
elif [ -e "$cur" ]; then
@ -280,9 +288,9 @@ main() {
h?|D2|"$bs_char"?) # ARROW LEFT
old_pwd=$PWD
case $search in
1) search=0 ;;
*) cd .. || continue ;;
case $ltype in
'') cd .. || continue ;;
*) ltype= ;;
esac
set -- *
@ -334,9 +342,9 @@ main() {
/?)
prompt / r
set -- "$ans"*
y=1 y2=1 cur=$1 search=1
y=1 y2=1 cur=$1 ltype="search $PWD/$ans*"
redraw "$@"
status_line "($y/$#) search $ans"
status_line "$#"
;;
-?)
@ -375,9 +383,9 @@ main() {
'. - toggle hidden files' \
'? - show keybinds'
y=1 y2=1 cur=$1 search=1
y=1 y2=1 cur=$1 ltype=keybinds
redraw "$@"
status_line "($y/$#) keybinds"
status_line "$#"
;;
q?)