mirror of
https://gitlab.gnome.org/GNOME/gimp.git
synced 2025-10-06 01:12:40 +02:00
In particular make it also work with the `gimp-console` and with all symlink names. Also rename the bash completion file using the full application version so that it will be possible to install several such completion files side by side.
91 lines
2.3 KiB
Bash
91 lines
2.3 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_MAIN_EXE@
|
|
if command -v @GIMP_SYMLINK1@ 2>&1 > /dev/null
|
|
then
|
|
complete -F __gimp @GIMP_SYMLINK1@
|
|
complete -F __gimp @GIMP_SYMLINK2@
|
|
fi
|
|
|
|
if command -v @GIMP_CONSOLE_EXE@ 2>&1 > /dev/null
|
|
then
|
|
complete -F __gimp @GIMP_CONSOLE_EXE@
|
|
if command -v @GIMP_CONSOLE_SYMLINK1@ 2>&1 > /dev/null
|
|
then
|
|
complete -F __gimp @GIMP_CONSOLE_SYMLINK1@
|
|
complete -F __gimp @GIMP_CONSOLE_SYMLINK2@
|
|
fi
|
|
fi
|