Usuń usługi w systemie OS X


15

Chcę całkowicie usunąć niektóre usługi lub przynajmniej z listy w panelu preferencji Klawiatura. Próbowałem:

  1. Płuczka serwisowa . Usuwa tylko usługi z menu - coś, co można zrobić w Preferencjach systemowych od 10.6.
  2. Usuwanie plików w ~/Library/Services/i /Library/Services/. Po prostu większość aplikacji innych firm nie umieszcza tam swoich usług.
  3. defaults delete /Applications/SomeApp.app/Contents/Info NSServices. Usuwa usługi z listy w Preferencjach systemowych. Ale unieważnia również podpis kodu pakietu, a zmiany mogą zostać cofnięte przez aktualizacje.

Sądzę, że musiałbyś zadowolić się ostatnią opcją i przypisać nowe podpisy w codesignrazie potrzeby. Ale czy jest jakiś łatwiejszy sposób?


Ach, piękno OS X komplikuje rzeczy, które powinny być proste.
cregox

Z której wersji OS X korzystasz? Elementy wewnętrzne OS X zmieniają się dość drastycznie między głównymi wersjami.
Majenko

5
@Cawas: usuwanie usług jest proste: idź do listy w Preferencjach systemowych i odznacz je. Z jakiegoś powodu Lri chce je usunąć i uniemożliwić ich przywrócenie. Dlaczego łatwo jest zepsuć rzeczy?
LaC

@LaC w tym przypadku to prawdopodobnie kwestia gustu. W moim przypadku chciałem starego, dobrego Expose. ale pozwól, że odwrócę twoje pytanie: dodanie usługi do tej listy jest proste - dlaczego nie powinno być łatwo całkowicie ją usunąć i utrzymać w czystości, jeśli administrator sobie tego życzy?
cregox

AFAICT, to jest tak samo proste. Dodajesz usługę, umieszczając ją w bibliotece / usługach lub instalując aplikację, która ją zapewnia. Usuwasz usługę, usuwając ją z biblioteki / usług lub usuwając aplikację, która ją zapewnia.
LaC

Odpowiedzi:


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

Dowolny konkretny typ certyfikatu w kroku 2?
Daniel Beck
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.