mirror of
https://github.com/fish-shell/fish-shell.git
synced 2024-12-25 03:03:58 +08:00
bb6160bae4
macOS 11+ (possibly 12+) has an additional place where certain applications will be installed, `/System/Applications`. This is a sealed system volume and includes the following applications: - `App Store.app` - `Automator.app` - `Books.app` - `Calculator.app` - `Calendar.app` - `Chess.app` - `Clock.app` - `Contacts.app` - `Dictionary.app` - `FaceTime.app` - `FindMy.app` - `Font Book.app` - `Freeform.app` - `Home.app` - `Image Capture.app` - `Launchpad.app` - `Mail.app` - `Maps.app` - `Messages.app` - `Mission Control.app` - `Music.app` - `News.app` - `Notes.app` - `Photo Booth.app` - `Photos.app` - `Podcasts.app` - `Preview.app` - `QuickTime Player.app` - `Reminders.app` - `Shortcuts.app` - `Siri.app` - `Stickies.app` - `Stocks.app` - `System Settings.app` - `TextEdit.app` - `Time Machine.app` - `TV.app` - `Utilities` - `VoiceMemos.app` - `Weather.app` The change here adds `/System/Applications` to the search locations for `-a` and `-b` options on the macOS completions for `open`. There are possibly other locations that may be considered (I’m not using `mdls` or `mdfind` in my functions for "reasons"), but this is partially based on https://github.com/halostatue/fish-macos/blob/main/functions/__macos_app_find.fish
15 lines
1.1 KiB
Fish
15 lines
1.1 KiB
Fish
if test (uname) = Darwin # OS X
|
|
complete -c open -s a -d 'specify app name' -r -a "(mdfind -onlyin /Applications -onlyin ~/Applications -onlyin /System/Applications -onlyin /Developer/Applications 'kMDItemContentType==com.apple.application-*' | string replace -r '.+/(.+).app' '\$1')"
|
|
complete -c open -s b -d 'specify app bundle id' -x -a "(mdls (mdfind -onlyin /Applications -onlyin ~/Applications -onlyin /System/Applications -onlyin /Developer/Applications 'kMDItemContentType==com.apple.application-*') -name kMDItemCFBundleIdentifier | string replace -rf 'kMDItemCFBundleIdentifier = \"(.+)\"' '\$1')"
|
|
complete -c open -s e -d 'open in TextEdit'
|
|
complete -c open -s t -d 'open in default editor'
|
|
complete -c open -s f -d 'open stdin with editor'
|
|
complete -c open -s F -d 'open app with fresh state'
|
|
complete -c open -s W -d 'wait for app to exit'
|
|
complete -c open -s R -d 'reveal in Finder'
|
|
complete -c open -s n -d 'open new instance of app'
|
|
complete -c open -s g -d 'open app in background'
|
|
complete -c open -s h -d 'open library header file' -r
|
|
complete -c open -l args -d 'pass remaining args to app' -x
|
|
end
|