mirror of
https://github.com/Gator96100/ProxSpace.git
synced 2025-07-30 11:38:41 -07:00
71 lines
2.2 KiB
Bash
71 lines
2.2 KiB
Bash
# xdg-mime(1) completion -*- shell-script -*-
|
|
|
|
_xdg_mime_mimetype()
|
|
{
|
|
COMPREPLY+=( $( compgen -S / -W 'application audio font image message model
|
|
multipart text video' -- "$cur" ) )
|
|
[[ $COMPREPLY == */ ]] && compopt -o nospace
|
|
}
|
|
|
|
_xdg_mime()
|
|
{
|
|
local cur prev words cword
|
|
_init_completion || return
|
|
|
|
local args
|
|
_count_args
|
|
|
|
if [[ $args -eq 1 ]]; then
|
|
if [[ $cur == -* ]]; then
|
|
COMPREPLY=( $( compgen -W '--help --manual --version' -- "$cur" ) )
|
|
return
|
|
fi
|
|
COMPREPLY=( $( compgen -W \
|
|
'query default install uninstall' -- "$cur" ) )
|
|
return
|
|
fi
|
|
|
|
case ${words[1]} in
|
|
query)
|
|
if [[ $args -eq 2 ]]; then
|
|
COMPREPLY=( $( compgen -W 'filetype default' -- "$cur" ) )
|
|
return
|
|
fi
|
|
case ${words[2]} in # TODO and $args -eq 3 (takes only one arg!)
|
|
filetype) _filedir ;;
|
|
default) _xdg_mime_mimetype ;;
|
|
esac
|
|
;;
|
|
default)
|
|
if [[ $args -eq 2 ]]; then
|
|
local IFS=$' \t\n' reset=$(shopt -p nullglob); shopt -s nullglob
|
|
local -a desktops=( /usr/share/applications/*.desktop )
|
|
desktops=( "${desktops[@]##*/}" )
|
|
$reset
|
|
IFS=$'\n'
|
|
COMPREPLY=( $( compgen -W '${desktops[@]}' -- "$cur" ) )
|
|
else
|
|
_xdg_mime_mimetype
|
|
fi
|
|
;;
|
|
install)
|
|
if [[ $cur == -* ]]; then
|
|
COMPREPLY=( $( compgen -W '--mode --novendor' -- "$cur" ) )
|
|
elif [[ $prev == --mode ]]; then
|
|
COMPREPLY=( $( compgen -W 'user system' -- "$cur" ) )
|
|
else
|
|
_filedir xml
|
|
fi
|
|
;;
|
|
uninstall)
|
|
if [[ $cur == -* ]]; then
|
|
COMPREPLY=( $( compgen -W '--mode' -- "$cur" ) )
|
|
elif [[ $prev == --mode ]]; then
|
|
COMPREPLY=( $( compgen -W 'user system' -- "$cur" ) )
|
|
else
|
|
_filedir xml
|
|
fi
|
|
;;
|
|
esac
|
|
} &&
|
|
complete -F _xdg_mime xdg-mime
|