aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMagniquick <67406856+Magniquick@users.noreply.github.com>2026-01-14 05:55:31 +0530
committerMagniquick <67406856+Magniquick@users.noreply.github.com>2026-01-14 06:23:07 +0530
commit05a1cf8a8a5ae04d6bed28737e7971997a185dba (patch)
tree60c5fdbfd982ea48db0dcac165468bbba10e95af /src
parentAdd gio completion (diff)
downloadzsh-completions-05a1cf8a8a5ae04d6bed28737e7971997a185dba.tar
zsh-completions-05a1cf8a8a5ae04d6bed28737e7971997a185dba.tar.gz
zsh-completions-05a1cf8a8a5ae04d6bed28737e7971997a185dba.tar.bz2
zsh-completions-05a1cf8a8a5ae04d6bed28737e7971997a185dba.tar.lz
zsh-completions-05a1cf8a8a5ae04d6bed28737e7971997a185dba.tar.xz
zsh-completions-05a1cf8a8a5ae04d6bed28737e7971997a185dba.tar.zst
zsh-completions-05a1cf8a8a5ae04d6bed28737e7971997a185dba.zip
fix gio completions
Diffstat (limited to 'src')
-rw-r--r--src/_gio25
1 files changed, 19 insertions, 6 deletions
diff --git a/src/_gio b/src/_gio
index 8a84404..d3b221f 100644
--- a/src/_gio
+++ b/src/_gio
@@ -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] )) ||