diff options
Diffstat (limited to 'etc/completions/_fbi')
-rw-r--r-- | etc/completions/_fbi | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/etc/completions/_fbi b/etc/completions/_fbi index 0751e5a..dd45c42 100644 --- a/etc/completions/_fbi +++ b/etc/completions/_fbi @@ -3,11 +3,8 @@ ## Daniel Friesel <derf@derf.homelinux.org> ## https://derf.homelinux.org/~derf/dotfiles/completion/_fbi -typeset arguments -typeset IFS=$'\n' -typeset fonts - -fonts='fc-list | cut -d ":" -f 1' +typeset -a arguments +typeset expl lstate arguments=( -{1,once}"[don't loop]" @@ -20,7 +17,7 @@ arguments=( '-comments[display image comments]' -{d,device}'[set framebuffer device]:framebuffer device:_path_files -W /dev -g "fb*"' -{e,edit}'[enable editing]' - -{f,font}'[set font]:font:($(eval $fonts))' + -{f,font}'[set font]:font:->font' '-fitwidth[zoom to width only]' -{g,gamma}'[gamma correction]:gamma: ' -{h,help}'[show help]' @@ -41,3 +38,16 @@ arguments=( ) _arguments -s $arguments + +while [[ -n $state ]]; do + lstate=$state + state='' + case $lstate in + font) + typeset IFS=$'\n' + typeset -a fonts + _wanted font expl 'font' \ + compadd $(fc-list | cut -d ":" -f 1 2>&1) + ;; + esac +done |