#compdef fastfetch function _fastfetch() { whence python3 &> /dev/null if [ $? -ne 0 ] then return fi local state local -a opts=("${(f)$( python3 <colors") elif type == "command": print(f"{command_prefix}::module:->modules") elif type == "config": print(f"{command_prefix}:preset:->presets") elif type == "enum": temp: str = " ".join(flag["arg"]["enum"]) print(f'{command_prefix}:type:({temp})') elif type == "logo": print(f"{command_prefix}:logo:->logos") elif type == "structure": print(f"{command_prefix}:structure:->structures") elif type == "path": print(f"{command_prefix}::path:_files") else: print(f"{command_prefix}:") else: print(f"{command_prefix}") if __name__ == "__main__": try: main() except Exception: sys.exit(1) EOF )}") _arguments "$opts[@]" case $state in colors) local -a colors=(black red green yellow blue magenta cyan white default) _describe 'color' colors ;; modules) local -a modules=("${(f)$(fastfetch --list-modules autocompletion)}") modules=(${(L)^modules[@]%%:*}-format format color) _describe 'module' modules ;; presets) local -a presets=( "${(f)$(fastfetch --list-presets autocompletion)}" "none:Disable loading config file" ) _describe 'preset' presets || _files ;; structures) local -a structures=("${(f)$(fastfetch --list-modules autocompletion)}") _describe 'structure' structures ;; logos) local -a logos=( "${(f)$(fastfetch --list-logos autocompletion)}" "none:Don't print logo" "small:Print small ascii logo if available" ) _describe 'logo' logos ;; esac } _fastfetch "$@"