#compdef foot

_arguments \
    -s \
    '(-c --config)'{-c,--config}'[path to configuration file (XDG_CONFIG_HOME/footrc)]:config:_files' \
    '(-f --font)'{-f,--font}'[font name and style in fontconfig format (monospace)]:font:->fonts' \
    '(-t --term)'{-t,--term}'[value to set the environment variable TERM to (foot)]:term:->terms' \
    '--login-shell[start shell as a login shell]' \
    '(-g --geometry)'{-g,--geometry}'[window WIDTHxHEIGHT, in pixels (700x50)]:geometry:()' \
    '(-s --server)'{-s,--server}'[run as server; open terminals by running footclient]:server:_files' \
    '--hold[remain open after child process exits]' \
    '(-p --print-pid)'{-p,--print-pid}'[print PID to this file or FD when up and running (server mode only)]:pidfile:_files' \
    '(-l --log-colorize)'{-l,--log-colorize}'[enable or disable colorization of log output on stderr]:logcolor:(never always auto)' \
    '(-S --log-no-syslog)'{-s,--log-no-syslog}'[disable syslog logging (server mode only)]' \
    '(-v --version)'{-v,--version}'[show the version number and quit]' \
    '(-h --help)'{-h,--help}'[show help message and quit]'

case ${state} in
    fonts)
        _values 'font families' $(fc-list : family | tr -d ' ')
        ;;

    terms)
        _values 'terminal definitions' $(find /usr/share/terminfo -type f -printf "%f\n")
        ;;
esac
