Merge pull request #1209 from LeeBigelow/xdg-mime-completion

add xdg-mime completion file
This commit is contained in:
Shohei YOSHIDA 2025-12-24 12:22:21 +09:00 committed by GitHub
commit d20ceda628
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 70 additions and 0 deletions

70
src/_xdg-mime Normal file
View File

@ -0,0 +1,70 @@
#compdef xdg-mime
# Description:
# ZSH Completion for xdg-mime 1.2.1 from
# xdg-utils (https://gitlab.freedesktop.org/xdg/xdg-utils)
#
# Authors:
# ligelowbee@gmail.com
_xdg-mime_query() {
_arguments \
"1:Query Type:((
filetype\:'Returns mime-type of a file'
default\:'Returns default application for a mime-type'))" \
"*::arg:->args"
case $line[1] in
filetype) _files ;;
default) _mime_types ;;
esac
}
_xdg-mime() {
local line
local -a appdirs=(
/usr/share/applications
"$HOME/.local/share/applications"
)
_arguments -C \
"--help[Show help info]" \
"--version[Show version info]" \
"--manual[Show manual page]" \
"1:xdg-mime command:(query default install uninstall)" \
"*::arg:->args"
case $line[1] in
query) _xdg-mime_query ;;
default)
_arguments \
"1:Application:_files -W appdirs -g '*.desktop'" \
'2: :_mime_types'
;;
install)
_arguments \
"--mode=[Install for user or system]: :((
user\:'Install for this user only'
system\:'Install for all users'))" \
"--novendor[Don't check mimetype-file for vendor prefix]" \
'*:XML mimetypes file:_files -g "*.xml"'
;;
uninstall)
_arguments \
"--mode=[Uninstall for user or whole system]: :((
user\:'Uninstall for this user only'
system\:'Uninstall for all users'))" \
'*:XML mimetypes file:_files -g "*.xml"'
;;
esac
}
_xdg-mime "$@"
# Local Variables:
# mode: Shell-Script
# sh-indentation: 2
# indent-tabs-mode: nil
# sh-basic-offset: 2
# End:
# vim: filetype=zsh expandtab softtabstop=2 tabstop=2 shiftwidth=2