Rimuovere i servizi su OS X


15

Sto cercando di rimuovere completamente alcuni servizi, o almeno dall'elenco nel riquadro delle preferenze della tastiera. Ho provato:

  1. Service Scrubber . Rimuove solo i servizi dal menu, cosa che puoi fare dalle Preferenze di Sistema dal 10.6.
  2. Rimozione dei file in ~/Library/Services/e /Library/Services/. È solo che la maggior parte delle app di terze parti non mette lì i loro servizi.
  3. defaults delete /Applications/SomeApp.app/Contents/Info NSServices. Rimuove i servizi dall'elenco in Preferenze di Sistema. Ma invalida anche la firma del codice del bundle e le modifiche possono essere ripristinate dagli aggiornamenti.

Immagino che dovresti accontentarti dell'ultima opzione e assegnare nuove firme con codesignquando necessario. Ma c'è un modo più semplice?


Ah, la bellezza di OS X complica le cose che dovrebbero essere semplici.
Cregox,

Quale versione di OS X stai utilizzando? Gli interni di OS X tendono a cambiare drasticamente tra le versioni principali.
Majenko,

5
@Cawas: rimuovere i servizi è semplice: vai all'elenco in Preferenze di Sistema e deselezionali. Quello che Lri vuole fare, per qualche motivo, è rimuoverli e renderli impossibili da ripristinare. Perché dovrebbe essere facile rompere le cose?
LaC,

@LaC è probabilmente una questione di gusti in questo caso. Nel mio caso volevo il buon vecchio Expose. ma lasciami invertire la tua domanda: è semplice aggiungere il servizio a quell'elenco - perché non dovrebbe essere semplice rimuoverlo completamente e mantenerlo pulito se l' amministratore lo desidera?
Cregox,

AFAICT, è altrettanto semplice. È possibile aggiungere un servizio inserendolo in Libreria / Servizi o installando un'applicazione che lo fornisce. Si rimuove un servizio rimuovendolo da Libreria / Servizi o rimuovendo l'applicazione che lo fornisce.
LaC,

Risposte:


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

Qualche particolare tipo di certificato nel passaggio 2?
Daniel Beck
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.