summaryrefslogtreecommitdiff
path: root/completions/fbi
blob: f8f7a825bfd53bf6590a6e40706996be27149a39 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# bash completion for fbi(1)                               -*- shell-script -*-

_fbi()
{
    local cur prev words cword
    _init_completion || return

    case "$prev" in
        -l|--list)
            _filedir
            return
            ;;
        -r|--resolution)
            COMPREPLY+=( $(compgen -W '{1..5}') )
            return
            ;;
        -f|--font)
            local IFS=$'\n'
            COMPREPLY=( $( compgen -W '$( fc-list 2>/dev/null )' -- "$cur" ) )
            return
            ;;
        -m|--mode)
            COMPREPLY=( $( compgen -W '$( sed \
                -n "/^mode/{s/^mode \{1,\}\"\([^\"]\{1,\}\)\"/\1/g;p}" \
                /etc/fb.modes 2> /dev/null )' -- "$cur" ) )
            return
            ;;
        -d|--device)
            COMPREPLY=( $( compgen -f -d -- "${cur:-/dev/}" ) )
            return
            ;;
        --cachemem|--blend|-T|--vt|-s|--scroll|-t|--timeout|-g|--gamma)
            # argument required but no completions available
            return
            ;;
    esac

    if [[ "$cur" == -* ]]; then
        COMPREPLY=( $(compgen -W '--help --version --store --list --text \
            --autozoom --autoup --noautoup --autodown --noautodown --fitwidth \
            --nofitwidth --verbose --noverbose --random --norandom --comments \
            --nocomments --edit --noedit --backup --nobackup --preserve \
            --nopreserve --readahead --noreadahead --cachemem --blend --vt \
            --scroll --timeout --once --noonce --resolution --gamma --font \
            --device --mode' -- "$cur") )
        [[ $COMPREPLY ]] && return
    fi

    # FIXME: It is hard to determine correct supported extensions.
    # fbi can handle any format that imagemagick can plus some others
    _filedir 'bmp|gif|jp?(e)g|pcd|png|p[pgb]m|tif?(f)|webp|xpm|xwd|?(e)ps|pdf|dvi|txt|svg?(z)'
} && complete -F _fbi fbi

# ex: ts=4 sw=4 et filetype=sh