我希望彻底删除某些服务,或者至少从“键盘”偏好设置窗格的列表中删除它们。我尝试过:
- 服务洗涤器。它仅从菜单中删除服务 — 自 10.6 以来,您便可以从系统偏好设置中执行此操作。
- 删除
~/Library/Services/
和中的文件/Library/Services/
。只是大多数第三方应用程序不会将其服务放在那里。 defaults delete /Applications/SomeApp.app/Contents/Info NSServices
。它确实会从“系统偏好设置”列表中删除服务。但它也会使软件包的代码签名无效,并且更改可以通过更新恢复。
我想你只能选择最后一个选项,并在codesign
需要时分配新签名。但是有没有更简单的方法呢?
答案1
#!/bin/sh
applist="Path Finder
Skim
TextWrangler"
IFS=$'\n'
for appname in $applist; do
apppath=$(mdfind -onlyin /Applications/ -onlyin ~/Applications/ \
-onlyin /Developer/Applications/ -onlyin /System/Library/CoreServices/ \
'kMDItemKind == Application' | grep -i "/$appname.app$" | head -1)
echo $apppath
date=$(date '+%y%m%d%-H%M%S')
cp "$apppath/Contents/Info.plist" "$apppath/Contents/Info-$date.plist"
defaults delete "$apppath/Contents/Info" NSServices
codesign -f -s - "$apppath"
done