Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

[PATCH] Update _retrieve_mac_apps for recent macOS



I noticed that completion for e.g. `open -a` doesn't show stuff like QuickTime
Player on Catalina. That's because most of the built-in apps now live under
/System/Applications (Finder just merges everything together when it displays
/Applications)

But it should have been using Spotlight anyway — it wasn't because the way we
check to see if the root volume is indexed doesn't work any more, and hasn't
worked for a long time i think

This fixes both problems

PS: I didn't address workers/45418 here, but i still plan to

dana


diff --git a/Completion/Darwin/Type/_retrieve_mac_apps b/Completion/Darwin/Type/_retrieve_mac_apps
index f24d36c3c..655170d3a 100644
--- a/Completion/Darwin/Type/_retrieve_mac_apps
+++ b/Completion/Darwin/Type/_retrieve_mac_apps
@@ -73,7 +73,7 @@ _retrieve_mac_apps() {
     typeset retrieve
     if ! zstyle -s ":completion:*:*:${service}:commands" search-method retrieve
     then
-      if [[ -d /.Spotlight-V100 ]]; then
+      if [[ "$( command mdutil -s / 2>&1 )" == *enabled* ]]; then
         # / is indexed to use Spotlight
         retrieve=_mac_apps_spotlight_retrieve
       else
@@ -88,7 +88,10 @@ _retrieve_mac_apps() {
     if ! zstyle -a ":completion:${curcontext}:" application-path app_dir_root
     then
       if [[ $retrieve = _mac_apps_old_retrieve ]]; then
-        app_dir_root=( {,/Developer,/Network,"$HOME"}/{Applications*(N),Desktop} )
+        app_dir_root=(
+          {,/Developer,/Network,/System,$HOME}/{Applications*(N),Desktop}
+        )
+        app_dir_root=( $^app_dir_root(N) )
       else
         app_dir_root=( / )
       fi



Messages sorted by: Reverse Date, Date, Thread, Author