tags:

views:

1117

answers:

4

I've got bunches of auxiliary files that are generated by code and LaTeX documents that I dearly wish would not be suggested by SpotLight as potential search candidates. I'm not looking for example.log, I'm looking for example.tex!

So can Spotlight be configured to ignore, say, all .log files?

(I know, I know; I should just use QuickSilver instead…)


@diciu That's an interesting answer. The problem in my case is this:

Figure out which importer handles your type of file

I'm not sure if my type of file is handled by any single importer? Since they've all got weird extensions (.aux, .glo, .out, whatever) I think it's improbable that there's an importer that's trying to index them. But because they're plain text they're being picked up as generic files. (Admittedly, I don't know much about Spotlight's indexing, so I might be completely wrong on this.)


@diciu again: TextImporterDontImportList sounds very promising; I'll head off and see if anything comes of it.

Like you say, it does seem like the whole UTI system doesn't really allow not searching for something.


@Raynet Making the files invisible is a good idea actually, albeit relatively tedious for me to set up in the general sense. If worst comes to worst, I might give that a shot (but probably after exhausting other options such as QuickSilver). (Oh, and SetFile requires the Developer Tools, but I'm guessing everyone here has them installed anyway :) )

+1  A: 

Not sure how to do it on a file type level, but you can do it on a folder level:

Source: http://lists.apple.com/archives/spotlight-dev/2008/Jul/msg00007.html

Make spotlight ignore a folder

If you absolutely can't rename the folder because other software depends on it another technique is to go ahead and rename the directory to end in ".noindex", but then create a symlink in the same location pointing to the real location using the original name.

Most software is happy to use the symlink with the original name, but Spotlight ignores symlinks and will note the "real" name ends in *.noindex and will ignore that location.

Perhaps something like:

mv OriginalName OriginalName.noindex ln -s OriginalName.noindex
OriginalName

ls -l

lrwxr-xr-x 1 andy admin 24 Jan 9 2008 OriginalName -> OriginalName.noindex drwxr-xr-x 11 andy admin 374 Jul 11 07:03 Original.noindex

D2VIANT
+2  A: 

Here's how it might work.

Note: this is not a very good solution as a system update will overwrite changes you will perform.

Get a list of all importers

cristi:~ diciu$ mdimport -L
2008-09-03 10:42:27.144 mdimport[727:10b] Paths: id(501) (
    "/System/Library/Spotlight/Audio.mdimporter",
    "/System/Library/Spotlight/Chat.mdimporter",
    "/Developer/Applications/Xcode.app/Contents/Library/Spotlight/SourceCode.mdimporter",

Figure out which importer handles your type of file (example for the Audio importer):

cristi:~ diciu$ cat /System/Library/Spotlight/Audio.mdimporter/Contents/Info.plist 




[..]
      CFBundleTypeRole
      MDImporter
      LSItemContentTypes
      
       public.mp3
       public.aifc-audio
       public.aiff-audio

Alter the importer's plist to delete the type you want to ignore.

Reimport the importer's types so the system picks up the change:

mdimport -r /System/Library/Spotlight/Chat.mdimporter
diciu
+1  A: 
diciu
+1  A: 

The only option probably is to have them not indexed by spotlight as from some reason you cannot do negative searches. You can search for files with specifix file extension, but you cannot not search for ones that don't match.

You could try making those files invisible for Finder, Spotlight won't index invisible files. Command for setting the kIsInvisible flag on files is:

SetFile -a v [filename(s)]

Raynet