Gimp/etc/bash_completion
Niels De Graef ff46b81f8d Add a Bash completion file
(cherry picked from commit b15538d2e6)
2026-01-22 23:31:40 +01:00

76 lines
1.9 KiB
Bash

__gimp()
{
COMPREPLY=()
local current="${COMP_WORDS[COMP_CWORD]}"
local prev="${COMP_WORDS[COMP_CWORD-1]}"
# GIMP options, sorted alphabetically
#
# Note that we don't specify short options here, since they're quite unintuitive
options=(
"--as-new"
"--batch"
"--batch-interpreter"
"--console-messages"
"--debug-handlers"
"--dump-gimprc"
"--dump-gimprc-manpage"
"--dump-gimprc-system"
"--dump-pdb-procedures-deprecated"
"--g-fatal-warnings"
"--gimprc"
"--help"
"--help-all"
"--help-gegl"
"--help-gtk"
"--license"
"--new-instance"
"--no-cpu-accel"
"--no-data"
"--no-fonts"
"--no-interface"
"--no-shm"
"--no-splash"
"--pdb-compat-mode"
"--session"
"--show-playground"
"--stack-trace-mode"
"--system-gimprc"
"--verbose"
"--version"
)
#
# Different completions for specific options
#
case "${prev}" in
# Options that shouldn't be used in combination with something else
help | license | version)
return 0
;;
# Expect a filename
gimprc | session | system-gimprc)
COMPREPLY=( $(compgen -f -- ${current}) )
return 0
;;
# Expect *some* argument, so don't complete
b | batch | display)
return 0
;;
batch-interpreter)
# FIXME: we should try to get the list of interpreters somehow
local interpreters=$(gimp --LIST_INTERPRETERS)
COMPREPLY=("python-fu-eval" "plug-in-script-fu-eval")
return 0
;;
*)
;;
esac
# Default: complete with either an option "-W" or a filename "-f"
COMPREPLY=($(compgen -W "${options[*]}" -f -- ${current}))
return 0
}
complete -F __gimp gimp