Spotlight

From macwrench

Spotlight[edit]

Spotlight ist die neue, mit MacOS 10.4 (aka Tiger) eingeführe Suchengine

Tastaturshortcuts[edit]

Spotlight-Suche starten Cmd+Space (konfigurierbar)
Spotlight-Suche in neuem Fenster starten Cmd+ Shift+Space

Im Ergebnisfenster:

Top-Treffer direkt öffnen Cmd+Return
Zum ersten Treffer der nächsten Kategorie wechseln Cmd+
Zum ersten Treffer der vorigen Kategorie wechseln Cmd+
Zum ersten Treffer der Liste wechseln Ctrl+
Zum letzten Treffer der Liste wechseln Ctrl+
Eintrag im Finder zeigen Cmd+click
1x: Suchefeld und -ergebnisse löschen
2x: das Ergebnisfenster schließen
Esc

Suchoperatoren[edit]

In den Spotlight Suchanfragen können Begriffe auch geklammert sowie andere boolesche Operatoren verwendet werden:

Außerdem kann durch Verwendung des Präfix "art:" nach Dateityp gefiltert werden:

Name Operator Beispiel
AND (Leerzeichen) begriff1 begriff2
NOT (-) begriff1 (-begriff3)
OR | begriff1 | begriff4
Dateityp art:

art:programm
art:bild, art:bilder
art:lesezeichen
art:mail, art:email, art:e-mail
art:film, art:filme
art:schrift, art:schriften
art:kontakt
art:musik
art:ordner
art:präsentation
art:einstellungen, art:systemeinstellungen
art:ereignis
art:aufgabe

Beispiele
(Schinken|Salami) Pizza(-Aufschnitt)

Der jeweilige Typ einer Datei ist dabei lokalisiert in der jeweilgen Systemsprache (I lässt sich dabei im Terminal mit Hilfe des Kommandos mdls herausfinden:

 mdls | grep "^kMDItemKind"

Indizierung[edit]

Spotlight indiziert die folgenden Verzeichnisse:

  /Library/PreferencePanes/
  /System/Library/PreferencePanes/
  /Developer/Applications/
  /Developer/Examples/

Das Benutzerverzeichnis (Home) ~/ mit den Unterverzeichnissen

  Documents/   
  Movies/ 
  Music/ 
  Pictures/ 
  Library/Metadata/ 
  Library/Caches/Metadata/ 
  Library/Mail/ 
  Library/Caches/com.apple.AddressBook/Metadata/ 
  Library/PreferencePanes/

unabhängig davon, ob das Homeverzeichnis lokal, mit filevault verschlüsselt oder per Netzwerkfreigabe eingebunden verwendet wird.

Spotlight indiziert nicht die folgenden Systemverzeichnisse:

/automout/ 
/bin/ 
/cores/
/dev/ 
/private/ 
/sbin/
/tmp/ 
/usr/ 
/var/ 
/Previous Systems/ (für ein bei der 10.4 Installation ggf. erstelltes Backup) 
/Network/

ebenso werden bei den folgenden Verzeichnissen diejenigen darunterliegenden Strukturen nicht indiziert, die oben nicht explizit aufgeführt wurden:

~/Library/ (ausser die oben genannten Verzeichniss) 
iPod_Control/ (in gemounteten iPods) 
/System/ (ausser die oben genannten Verzeichniss) 
/Library/ (ausser die oben genannten Verzeichniss) 
/Developer/ (ausser die oben genannten Verzeichniss) 

Um Ordner aus der Indizierung auszuschliessen benennt man diese in ".noindex" um. Als Beispiel: "MeinOrdner.noindex" Wir sind immernoch auf der Suche "/sw" aus der Indizierung auszuschliessen ohne diesen umzubennen

PHP Dateien indizieren mit Spotlight[edit]

Bearbeiten der info.plist mit dem Preferences Editor

terminal öffnen und mit

open /Library/Spotlight/SourceCode.mdimporter/Contents/Info.plist

den PropertyEditor öffnen, dort unter

Root/CFBundleDocumentTypes/0/LSItemContentTypes

ein neues Sibling anlegen. Der key 7 wird automatisch vergeben und muss den folgenden Wert enthalten:

public.php-script

Abschliessend mit

 mdimport -r /Library/Spotlight/SourceCode.mdimporter

den SpotlightServer dazu veranlassen das plugin neu einzulesen.

Mülleimer ausschliessen[edit]

Für manche mag es von nutzen sein, dass auch der/die Mülleimer (~/Trash/) indiziert werden. Wer aber häufig den selben Namen verwendet für seine Notizen o.ä. und diese gleich benennt und dann wieder wegschmeisst, kann mit dieser Funktion wahrscheinlich nicht sehr viel anfangen. Deshalb empfiehlt es sich dann, den Mülleimer aus der Indizierung auszuschliessen.

  • Im Finder Cmd+ Shift+G
  • und im Eingabe Feld "Gehe zu:" dann
~/.Trash

eingeben.

  • In den Spotlight-Einstallungen auf Privatsphäre klicken
  • Den Ordner Trash aus der Menuleiste im Finder auf die Privatsphäre ziehen

Spotlight Tuning[edit]

Die Suche beschleunigen[edit]

Die Spotlight Suche ist so gebaut, dass jeder Buchstabe eine neue Suchanfrage auslöst. Die Suche kann also spürbar beschleunigt werden, indem man einen Suchstring ausserhalb zusammenbaut und dann komplett in das Suchfenster kopiert. Noch besser ist, dann einfach mit Opt+ Shift+F die Suche direkt starten.

Noch besser geht das, wenn Quicksilver installiert ist:

  1. Quicksilver starten
  2. Mit . in die Texteingabe wechseln
  3. Suchstring eingeben
  4. Mit Tab ins nächste Feld wechseln.
  5. "Spotlight Suche" auswählen. (mit Ctrl+click lässt sich das dann auch als default für die Texteingabe wählen.

Anm.: nur bei installiertem Spotlight-Plugin - hagbard

Am schnellsten schliessen lässt sich das Ergebnis- und das Suchfenster durch zweimaliges drücken von Esc

Spotlight aus der Menubar entfernen[edit]

Im Moment gibt es keine Möglichkeit, die Spotlightlupe aus der Menubar zu entfernen, ohne die Funktionalität zu verlieren.

Erweiterte Informationen[edit]

In der Spotlight- Suche, kann durch drücken auf das "i" die erweiterten Informationen zu diesem Ergebnis angezeigt werden. Hält man beim klicken zusätzlich Opt, so werden die erweiterten Informationen aller der Gruppe angehörenden Elemente. Alternativ geht dies auch mit sowie Opt+

Spotlight und launcher utilities (Quicksilver, Butler, Launchbar)[edit]

Als Quicksilver Benutzer starte ich meine Anwendungen immer noch mit Quicksilver. Zuerst wollte ich komplett auf Spotlight wechseln, aber da ist Spotlight einfach zu träge. Deshalb hab ich also in den Spotlight-Einstellungen Anwendungen und Systemeinstellungen deaktiviert und in Quicksilver dafür Adressbuch, Mail etc. deaktiviert.

Spotlight deaktivieren[edit]

Über das Terminal kann Spotlight (z.B. aus Performancegründen oder in einer virtuellen Maschine) komplett deaktiviert werden:

Mac OS 10.4 / 10.5[edit]

Folgende Zeilen sind im Terminal einzugeben um ...

... Spotlight vorübergehend zu deaktivieren:

sudo launchctl unload /System/Library/LaunchDaemons/com.apple.metadata.mds.plist
launchctl unload /System/Library/LaunchAgents/com.apple.Spotlight.plist
sudo launchctl unload -w /System/Library/LaunchAgents/com.apple.Spotlight.plist

... Spotlight permanent zu deaktivieren:

sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.metadata.mds.plist
launchctl unload /System/Library/LaunchAgents/com.apple.Spotlight.plist
sudo launchctl unload -w /System/Library/LaunchAgents/com.apple.Spotlight.plist

... Spotlight vorübergehend wieder zu aktivieren:

sudo launchctl load /System/Library/LaunchDaemons/com.apple.metadata.mds.plist
launchctl load /System/Library/LaunchAgents/com.apple.Spotlight.plist
sudo launchctl load -w /System/Library/LaunchAgents/com.apple.Spotlight.plist

... Spotlight permanent wieder zu aktivieren:

sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.metadata.mds.plist
launchctl load /System/Library/LaunchAgents/com.apple.Spotlight.plist
sudo launchctl load -w /System/Library/LaunchAgents/com.apple.Spotlight.plist

siehe auch:

Mac OS 10.5 Quickfix[edit]

Diese beiden Dateien an einen anderen Ort verschieben:

   /System/Library/LaunchAgents/com.apple.Spotlight.plist
   /System/Library/LaunchDaemons/com.apple.metadata.mds.plist

Nach einem Systemupdate ist dies ggf. zu wiederholen

Mac OS 10.6[edit]

Unter 10.6 ist über folgendes Kommando Spotlight zu (de-)aktivieren:

sudo mdutil -a -i off
sudo mdutil -a -i on

Mac OS 10.7[edit]

Folgende Zeilen sind im Terminal einzugeben um ...

... Spotlight vorübergehend zu deaktivieren:

sudo launchctl unload /System/Library/LaunchDaemons/com.apple.metadata.mds.plist

... Spotlight permanent zu deaktivieren:

sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.metadata.mds.plist

... Spotlight vorübergehend wieder zu aktivieren:

sudo launchctl load /System/Library/LaunchDaemons/com.apple.metadata.mds.plist

... Spotlight permanent wieder zu aktivieren:

sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.metadata.mds.plist

Spotlight-Index neu aufbauen[edit]

Dies hilft auch oftmals, wenn der Mac App Store Aktualisierungen von längst deinstallierten Programmen anzeigt, dazu sind im Terminal folgende Anweisungen nacheinander einzugeben:

Spotlight-Indizierung deaktivieren:

sudo mdutil -a -i off

Spotlight-daemon beenden:

sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.metadata.mds.plist

Spotlight-daemon erneut laden:

sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.metadata.mds.plist

anschließend die Indizierung neu starten:

sudo mdutil -a -i on

Nun sollte der Index neu aufgebaut werden, was unter Umständen eine Weile dauern kann.

Benutzung in der Shell[edit]

Spotlight Kommandozeilen-Tools[edit]


mdfind Spotlight-Suche
mdls Anzeige der Metadaten einer Datei im Index
mdimport Ordnerstrukturen in den Metadaten-Index aufnehmen (==indizieren)
mdutil Verwaltungstool für den Spotlight Metadaten-Index
mdcheckschema Gültigkeit eines Importschemas für Spotlight überprüfen

Beispiele[edit]

Hier sollen in Zukunft ein paar Beispiele entstehen, die man immer mal wieder gut gebrauchen kann.


Alle Audiodateien im Home anzeigen, sortieren und doppelte aussortieren:

mdfind 'kMDItemMediaTypes == "Sound" ' -onlyin "/~" | sort -fd | uniq return

Anmerkungen zu Spotlight[edit]

Spotlight in Multi-Boot Systemen[edit]

Bei Multi-Boot Systemen (also Systemen mit mehreren MacOS Installationen) ist recht nervig, dass Spotlight die von der Indizierung ausgeschlossenen Ordner und Volumes (Systemeinstellungen > Spotlight) nicht für jede Installation getrennt speichert sondern scheinbar direkt im Index.

Das hat zur Folge, das entwder Spotlight nicht funktioniert oder immer alle Installationen im Index sind, was insbesondere bei verschiedenen MacOS Versionen zu Komplikationen führen kann.

Ideen zur Abhilfe sind willkommen.

Weitere Informationen[edit]

Spotlight Plugins[edit]

  • Apple Downloads: Spotlight Plugins (MD-Importer)
  • Xcode Plugin: Spotlight importer für AppleScript, Xcode Projekte und Interface Builder Dateien (NIB, XIB)

Grundlagen[edit]

Entwicklung[edit]

Tools und Hilfsmittel[edit]

  • mdfind2: mdfind-Ersatz mit XML-Ausgabe der Suchergebnisse

Manpages[edit]