Linux lhjmq-records 5.15.0-118-generic #128-Ubuntu SMP Fri Jul 5 09:28:59 UTC 2024 x86_64
Your IP : 3.148.145.219
# bash completion for feh(1) -*- shell-script -*-
_feh()
{
local cur prev words cword split
_init_completion -s || return
case "$prev" in
--image-bg|-B)
COMPREPLY=( $(compgen -W 'checks white black' -- "$cur") )
return
;;
--filelist|--output|--output-only|--start-at|-!(-*)[foO\|])
_filedir
return
;;
--caption-path|--fontpath|--output-dir|-!(-*)[KCj])
_filedir -d
return
;;
--font|--menu-font|--title-font|-!(-*)[eM@])
# expect string like "dejavu.ttf/12"
if [[ "$cur" == */* ]]; then # expect integer value
COMPREPLY=( $(compgen -P "$cur" -W '{0..9}') )
compopt -o nospace
return
fi
local font_path
# font_path="$(imlib2-config --prefix 2>/dev/null)/share/imlib2/data/fonts"
# COMPREPLY=( $(cd "$font_path" 2>/dev/null; compgen -f \
# -X "!*.@([tT][tT][fF])" -S / -- "$cur") )
for (( i=${#words[@]}-1; i>0; i-- )); do
if [[ ${words[i]} == -@(C|-fontpath) ]]; then
font_path="${words[i+1]}"
COMPREPLY+=( $(cd "$font_path" 2>/dev/null; compgen -f \
-X "!*.@([tT][tT][fF])" -S / -- "$cur") )
fi
done
compopt -o nospace
return
;;
--theme|-!(-*)T)
local conf_path=~/.config/feh/themes
local theme_name theme_opts
[[ -r $conf_path ]] || return
while read theme_name theme_opts; do
if [[ "$theme_name" == '#'* || "$theme_name" == "" ]]; then
continue
fi
COMPREPLY+=( $(compgen -W "$theme_name" -- "$cur") )
done <"$conf_path"
return
;;
--sort|-!(-*)S)
COMPREPLY=( $(compgen -W 'name filename mtime width height
pixels size format' -- "$cur") )
return
;;
--reload|--limit-height|--limit-width|--thumb-height|--thumb-width|\
--thumb-redraw|--magick-timeout|-!(-*)[RHWEyJ])
# expect integer value
COMPREPLY+=( $(compgen -W '{0..9}') )
compopt -o nospace
return
;;
--zoom)
# expect integer value or "max", "fill"
COMPREPLY=( $(compgen -W 'max fill' -- "$cur") )
if [[ ! $cur || ! $COMPREPLY ]]; then
COMPREPLY+=( $(compgen -W '{0..9}') )
compopt -o nospace
fi
return
;;
--alpha|-!(-*)a)
COMPREPLY=( $(compgen -W '{0..255}' -- "$cur") )
return
;;
--bg|-!(-*)b)
_filedir
COMPREPLY+=( $(compgen -W 'trans' -- "$cur") )
return
;;
--geometry|--max-dimension|--min-dimension|-!(-*)g)
# expect string like 640x480
if [[ $cur && "$cur" != *x* ]]; then
COMPREPLY=( x )
fi
COMPREPLY+=( $(compgen -W "{0..9}") )
compopt -o nospace
return
;;
--customlist|--index-info|--info|--slideshow-delay|--thumb-title|\
--title|-!(-*)[LD~^])
# argument required but no completions available
return
;;
esac
$split && return
if [[ "$cur" == -* ]]; then
# Some versions of feh just output "See 'man feh'" for --help :(
COMPREPLY=( $(compgen -W '$(_parse_help "$1" --help)' -- "$cur") )
[[ $COMPREPLY == *= ]] && compopt -o nospace
[[ $COMPREPLY ]] && return
fi
# FIXME: It is hard to determine correct supported extensions.
# feh can handle any format that imagemagick can plus some others
_filedir 'xpm|tif?(f)|png|p[npgba]m|iff|?(i)lbm|jp?(e)g|jfi?(f)|gif|bmp|arg?(b)|tga|xcf|ani|ico|?(e)ps|pdf|dvi|txt|svg?(z)|cdr|[ot]tf'
} &&
complete -F _feh feh
# ex: filetype=sh
|