OS Xのサービスを削除する


15

一部のサービスを完全に削除するか、少なくとも「キーボード」環境設定パネルのリストから削除したい。私はもう試した:

  1. サービススクラバー。メニューからサービスを削除するだけです-10.6以降、システム環境設定からできることです。
  2. ~/Library/Services/およびのファイルを削除しています/Library/Services/。それは、ほとんどのサードパーティのアプリがサービスをそこに置いていないということです。
  3. defaults delete /Applications/SomeApp.app/Contents/Info NSServices。システム環境設定のリストからサービスを削除します。ただし、バンドルのコード署名も無効になり、更新によって変更が元に戻される可能性があります。

最後のオプションに落ち着いて、codesign必要なときに新しい署名を割り当てるだけでよいと思います。しかし、もっと簡単な方法はありますか?


ああ、シンプルであるべきことを複雑にしているOS Xの美しさ。
クレゴックス

OS Xのどのバージョンを実行していますか?OS Xの内部は、メジャーバージョン間で大幅に変更される傾向があります。
マジェンコ

5
@Cawas:サービスの削除は簡単です。システム環境設定のリストに移動して、チェックを外します。何らかの理由でLriがやりたいことは、それらを削除し、復元できないようにすることです。なぜ物を壊しやすいのですか?
LaC

@LaCこの場合、おそらく好みの問題です。私の場合、古き良き時代の公開を望んでいました。しかし、あなたの質問を逆にしてみましょう:サービスをそのリストに追加するのは簡単です- 管理者が望むなら、それを完全に削除してきれいに保つのは簡単ではないのはなぜですか?
クレゴックス

AFAICT、それは同じくらい簡単です。サービスを追加するには、サービスをライブラリ/サービスに配置するか、それを提供するアプリケーションをインストールします。サービスを削除するには、サービスをライブラリ/サービスから削除するか、それを提供するアプリケーションを削除します。
LaC

回答:


3
#!/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

手順2で特定の証明書の種類はありますか?
ダニエルベック
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.