diff options
| author | Magniquick <67406856+Magniquick@users.noreply.github.com> | 2026-01-14 05:55:31 +0530 |
|---|---|---|
| committer | Magniquick <67406856+Magniquick@users.noreply.github.com> | 2026-01-14 06:23:07 +0530 |
| commit | 05a1cf8a8a5ae04d6bed28737e7971997a185dba (patch) | |
| tree | 60c5fdbfd982ea48db0dcac165468bbba10e95af /src | |
| parent | Add gio completion (diff) | |
| download | zsh-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/_gio | 25 |
1 files changed, 19 insertions, 6 deletions
@@ -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] )) || |
