fix gio completions

This commit is contained in:
Magniquick 2026-01-14 05:55:31 +05:30
parent 9f8413696d
commit 05a1cf8a8a
1 changed files with 19 additions and 6 deletions

View File

@ -58,7 +58,12 @@ _gio() {
_gio_commands
;;
(args)
case $words[1] in
local subcmd=$words[1]
if [[ $subcmd == gio ]]; then
subcmd=$words[2]
fi
case $subcmd in
(help)
_arguments \
'1:command:_gio_commands' \
@ -265,13 +270,21 @@ _gio_location() {
(( $+functions[_gio_desktop_files] )) ||
_gio_desktop_files() {
local -a desktop_files
desktop_files=(
/usr/share/applications/*.desktop(N:t)
~/.local/share/applications/*.desktop(N:t)
local -a search_path data_dirs desktop_files
data_dirs=(${(@s/:/)XDG_DATA_DIRS:-/usr/local/share:/usr/share})
search_path=(
"${XDG_DATA_HOME:-$HOME/.local/share}/applications"
${data_dirs[@]/%/\/applications}
)
_describe -t desktop-files 'desktop files' desktop_files
desktop_files=()
local dir
for dir in $search_path; do
[[ -d $dir ]] || continue
desktop_files+=($dir/*.desktop(N))
done
compadd -a -- desktop_files
}
(( $+functions[_gio_mime_types] )) ||