_wpaperctl() {
    local i cur prev opts cmd
    COMPREPLY=()
    if [[ "${BASH_VERSINFO[0]}" -ge 4 ]]; then
        cur="$2"
    else
        cur="${COMP_WORDS[COMP_CWORD]}"
    fi
    prev="$3"
    cmd=""
    opts=""

    for i in "${COMP_WORDS[@]:0:COMP_CWORD}"
    do
        case "${cmd},${i}" in
            ",$1")
                cmd="wpaperctl"
                ;;
            wpaperctl,all-wallpapers)
                cmd="wpaperctl__subcmd__all__subcmd__wallpapers"
                ;;
            wpaperctl,get)
                cmd="wpaperctl__subcmd__get__subcmd__wallpaper"
                ;;
            wpaperctl,get-all)
                cmd="wpaperctl__subcmd__all__subcmd__wallpapers"
                ;;
            wpaperctl,get-status)
                cmd="wpaperctl__subcmd__get__subcmd__status"
                ;;
            wpaperctl,get-wallpaper)
                cmd="wpaperctl__subcmd__get__subcmd__wallpaper"
                ;;
            wpaperctl,help)
                cmd="wpaperctl__subcmd__help"
                ;;
            wpaperctl,next)
                cmd="wpaperctl__subcmd__next__subcmd__wallpaper"
                ;;
            wpaperctl,next-wallpaper)
                cmd="wpaperctl__subcmd__next__subcmd__wallpaper"
                ;;
            wpaperctl,pause)
                cmd="wpaperctl__subcmd__pause__subcmd__wallpaper"
                ;;
            wpaperctl,pause-wallpaper)
                cmd="wpaperctl__subcmd__pause__subcmd__wallpaper"
                ;;
            wpaperctl,previous)
                cmd="wpaperctl__subcmd__previous__subcmd__wallpaper"
                ;;
            wpaperctl,previous-wallpaper)
                cmd="wpaperctl__subcmd__previous__subcmd__wallpaper"
                ;;
            wpaperctl,reload)
                cmd="wpaperctl__subcmd__reload__subcmd__wallpaper"
                ;;
            wpaperctl,reload-wallpaper)
                cmd="wpaperctl__subcmd__reload__subcmd__wallpaper"
                ;;
            wpaperctl,resume)
                cmd="wpaperctl__subcmd__resume__subcmd__wallpaper"
                ;;
            wpaperctl,resume-wallpaper)
                cmd="wpaperctl__subcmd__resume__subcmd__wallpaper"
                ;;
            wpaperctl,set)
                cmd="wpaperctl__subcmd__set__subcmd__wallpaper"
                ;;
            wpaperctl,set-wallpaper)
                cmd="wpaperctl__subcmd__set__subcmd__wallpaper"
                ;;
            wpaperctl,status)
                cmd="wpaperctl__subcmd__get__subcmd__status"
                ;;
            wpaperctl,toggle-pause)
                cmd="wpaperctl__subcmd__toggle__subcmd__pause__subcmd__wallpaper"
                ;;
            wpaperctl,toggle-pause-wallpaper)
                cmd="wpaperctl__subcmd__toggle__subcmd__pause__subcmd__wallpaper"
                ;;
            wpaperctl__subcmd__help,all-wallpapers)
                cmd="wpaperctl__subcmd__help__subcmd__all__subcmd__wallpapers"
                ;;
            wpaperctl__subcmd__help,get-status)
                cmd="wpaperctl__subcmd__help__subcmd__get__subcmd__status"
                ;;
            wpaperctl__subcmd__help,get-wallpaper)
                cmd="wpaperctl__subcmd__help__subcmd__get__subcmd__wallpaper"
                ;;
            wpaperctl__subcmd__help,help)
                cmd="wpaperctl__subcmd__help__subcmd__help"
                ;;
            wpaperctl__subcmd__help,next-wallpaper)
                cmd="wpaperctl__subcmd__help__subcmd__next__subcmd__wallpaper"
                ;;
            wpaperctl__subcmd__help,pause-wallpaper)
                cmd="wpaperctl__subcmd__help__subcmd__pause__subcmd__wallpaper"
                ;;
            wpaperctl__subcmd__help,previous-wallpaper)
                cmd="wpaperctl__subcmd__help__subcmd__previous__subcmd__wallpaper"
                ;;
            wpaperctl__subcmd__help,reload-wallpaper)
                cmd="wpaperctl__subcmd__help__subcmd__reload__subcmd__wallpaper"
                ;;
            wpaperctl__subcmd__help,resume-wallpaper)
                cmd="wpaperctl__subcmd__help__subcmd__resume__subcmd__wallpaper"
                ;;
            wpaperctl__subcmd__help,set-wallpaper)
                cmd="wpaperctl__subcmd__help__subcmd__set__subcmd__wallpaper"
                ;;
            wpaperctl__subcmd__help,toggle-pause-wallpaper)
                cmd="wpaperctl__subcmd__help__subcmd__toggle__subcmd__pause__subcmd__wallpaper"
                ;;
            *)
                ;;
        esac
    done

    case "${cmd}" in
        wpaperctl)
            opts="-h -V --help --version get-wallpaper get all-wallpapers get-all next-wallpaper next previous-wallpaper previous reload-wallpaper reload pause-wallpaper pause resume-wallpaper resume toggle-pause-wallpaper toggle-pause get-status status set-wallpaper set help"
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 1 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        wpaperctl__subcmd__all__subcmd__wallpapers)
            opts="-j -h --json --help"
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        wpaperctl__subcmd__get__subcmd__status)
            opts="-j -h --json --help [MONITORS]..."
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        wpaperctl__subcmd__get__subcmd__wallpaper)
            opts="-h --help <MONITOR>"
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        wpaperctl__subcmd__help)
            opts="get-wallpaper all-wallpapers next-wallpaper previous-wallpaper reload-wallpaper pause-wallpaper resume-wallpaper toggle-pause-wallpaper get-status set-wallpaper help"
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        wpaperctl__subcmd__help__subcmd__all__subcmd__wallpapers)
            opts=""
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        wpaperctl__subcmd__help__subcmd__get__subcmd__status)
            opts=""
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        wpaperctl__subcmd__help__subcmd__get__subcmd__wallpaper)
            opts=""
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        wpaperctl__subcmd__help__subcmd__help)
            opts=""
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        wpaperctl__subcmd__help__subcmd__next__subcmd__wallpaper)
            opts=""
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        wpaperctl__subcmd__help__subcmd__pause__subcmd__wallpaper)
            opts=""
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        wpaperctl__subcmd__help__subcmd__previous__subcmd__wallpaper)
            opts=""
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        wpaperctl__subcmd__help__subcmd__reload__subcmd__wallpaper)
            opts=""
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        wpaperctl__subcmd__help__subcmd__resume__subcmd__wallpaper)
            opts=""
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        wpaperctl__subcmd__help__subcmd__set__subcmd__wallpaper)
            opts=""
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        wpaperctl__subcmd__help__subcmd__toggle__subcmd__pause__subcmd__wallpaper)
            opts=""
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        wpaperctl__subcmd__next__subcmd__wallpaper)
            opts="-h --help [MONITORS]..."
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        wpaperctl__subcmd__pause__subcmd__wallpaper)
            opts="-h --help [MONITORS]..."
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        wpaperctl__subcmd__previous__subcmd__wallpaper)
            opts="-h --help [MONITORS]..."
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        wpaperctl__subcmd__reload__subcmd__wallpaper)
            opts="-h --help [MONITORS]..."
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        wpaperctl__subcmd__resume__subcmd__wallpaper)
            opts="-h --help [MONITORS]..."
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        wpaperctl__subcmd__set__subcmd__wallpaper)
            opts="-h --help <PATH> [MONITORS]..."
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        wpaperctl__subcmd__toggle__subcmd__pause__subcmd__wallpaper)
            opts="-h --help [MONITORS]..."
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
    esac
}

if [[ "${BASH_VERSINFO[0]}" -eq 4 && "${BASH_VERSINFO[1]}" -ge 4 || "${BASH_VERSINFO[0]}" -gt 4 ]]; then
    complete -F _wpaperctl -o nosort -o bashdefault -o default wpaperctl
else
    complete -F _wpaperctl -o bashdefault -o default wpaperctl
fi
