Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Countless person-years of engineering effort, and Spotlight is still mostly useless.

All I want is to hit Command-F to quickly search the filenames in the current folder (not start a sluggish scan of my entire hard disk). There used to be workarounds for this, but then they removed "Find by Name..." from Finder just to make our lives harder. Does anyone know a workable alternative?



Finder -> Preferences -> Advanced.

When performing a search:

Search the current folder


If you have a setup script add the following to set this automatically:

    defaults write com.apple.finder FXDefaultSearchScope -string "SCcf"


I'm interested in what you mean by "setup script" - I assume you have a script of some sort you run when / if you re-install the OS? I'd love to hear more about this!


I have a simple shell script that does a bunch of setup for me to automate things.

It grabs my dot files and restores them, installs Homebrew and a bunch of programs, restores their plists (I have backup script that backs up all their plists) and writes a bunch of macOS settings via the `defaults write` command.

I can install/wipe macOS, follow the initial setting screens then when on the desktop I just connect to my NAS, copy over one script and run it in the Terminal to get my machine setup how I like it. It isn't perfect but it does about 97% of the work for me with the added bonus that it is consistent/reproducible for the most part so avoids me forgetting to change a setting some place.

I don't go crazy with it as I don't wipe my machine often enough to justify going all out with a fully automated system. Honestly it is less to save time and more to maintain consistency and have a 'documented as code' record of my environment setup (not quite infrastructure as code levels :)


Look up dotfiles on GitHub - for example https://github.com/mathiasbynens/dotfiles/blob/main/.macos


Oh, my!

  # Trackpad: enable tap to click for this user and for the login screen

  # Trackpad: map bottom right corner to right-click

  # Disable “natural” (Lion-style) scrolling


Tap to click is an abomination. I have no love left for Apple, but their trackpads are orders of magnitude better than anyone else's in the industry.

Have you tried using the trackpad at its default settings? They actually make a ton of sense.


ha-ha imagine dragging things with two fingers PRESSED INTO TRACKPAD instead of beautiful (yet hidden deeply in settings) three-finger drag

this is old-lenovo-hacker style


I added a PR to fix rsync, mosh, and some other tools, since they will be broken out of the box.

But it seems this project has fallen behind on PRs.

If you would like to have this fix, you can do this after cloning the repo:

  git clone https://github.com/mathiasbynens/dotfiles && cd dotfiles

  git fetch origin "+refs/pull/*/head:refs/remotes/origin/pr/*" && git cherry-pick origin/pr/963


Agreed. Its an embarrasment.

Use Alfred; I've been using it for years (10 maybe?) -- solves this problem and is extremely useful in general


Alfred (https://www.alfredapp.com/) and BetterTouchTool (https://folivora.ai/) really are two of the must-haves for every mac.


I have a lifetime/powerpack Alfred license, and i don't use it much, if at all. I have it installed, but in my experience Spotlight has gotten a lot better in recent years, at least to the point where i just use that.

My only excuse for using Alfred is Dash (https://kapeli.com/dash), which integrates with Alfred, but these days so does just about every editor i use (including Vim, Emacs and Sublime Text), so i very rarely find myself using Alfred for it anymore.

One tool i do use at lot though is Hook (https://hookproductivity.com/).


> BetterTouchTool

Physical function keys are a must-have for every mac imo


BTT does work with the TouchBar, but the "Touch" in the name comes from "touchpad" since it originally was used to add various macros/gestures to the touchpad and mouse. TouchBar support was added later.

Most new Macs come with full-size function keys, including a massive escape key the same size as the tab key. (At least on the en-US layout; can't speak to others.)


> > BetterTouchTool

> Physical function keys are a must-have for every mac imo

While it wasn't the case for a while, they all do now.


TipTap mapped to ctrl+tab oh lordy


Interesting. What other gestures do you use? I've tried to setup BTT to emulate cmd+tab with swipe right or left but it wasn't a smooth experience so I've made Touch-Tab https://github.com/ris58h/Touch-Tab


Made a mistake, I use TipTap for ctrl+tab aka switching tabs in browsers and IDE's.

Also four finger press for cmd+`


I used Alfred for 10+ years as well, but am a recent Raycast convert. Much larger and easier to use extension ecosystem, and looks nicer too IMO.


Raycast looks really interesting. Is there anything you miss from Alfred?


Nope, I installed a few extensions to replicate things I had in Alfred, and got a few new features for free


It’s an easy configuration change to default the search to the current folder. Alfred is great on it’s own but not needed to fix this.


+1 for Alfred. Amazing software.


++2 for Alfred. AND it has plugins so you can search your Chrome or Brave tabs with Alfred as well. I just hit CMD + Shift + T and it'll search all my open tabs without the browser being in focus. I had to pay but it wasn't much. Use it everyday! https://github.com/epilande/alfred-browser-tabs


oooh, I hadn't seen that plugin before; nice


wow - how is this not the default? It's always the behavior that I expect to happen, and I'm pretty much always surprised and disappointed when it does a global search instead.


> how is this not the default?

This is just speculation, but based on a conversation with my partner, there are two types of computer users. The first group makes use of hierarchical storage, consistent naming conventions, and other organizational tricks to give them a rough idea of where any file might be. The second group has never heard the term "file systems" and just stores everything with an arbitrary name in whatever location the originating application uses by default.

The first group would prefer to search the given directory, because the supplied context (of which folder to start the search in) drastically improves/speeds search results. The second group prefers to search the entire disk, because supplying that additional context is impossible - any file might appear anywhere.

The set intersection between the first group and "people who change their default settings" is much higher than it is with the second group. Consequently, the whole disk search is enabled by default.

Additionally, given the addition of an "All My Files" view in Finder (a feature which the first group would probably find baffling), Apple may also believe that the latter group outnumbers the former.


Reminds me of this Verge article reporting that kids growing up with iPhones don’t know what files or directories are: https://www.theverge.com/22684730/students-file-folder-direc...


Very much an intentional goal of the OS when it came out, the hope being that the concepts of files and folders might never be needed. A bold move to get rid of a mental overhead for using a computer that was never natural or intuitive to non-tech users. They eventually had to back off a bit, but it’s an amazing accomplishment that most users can still use these devices as if files weren’t a thing.


How long do you think that IT professionals will need to care about hierarchical file systems?


Yeah this is true, friends that are professors say they now have to have a basic class early in the semester that explains folders, files, and other basics to students.


Funny, I'm in the first group but I'd much rather have it search everything by default: because I organize my files, if I'm searching for one that means that I don't know where it is, so I need to look everywhere.


To me this is definitely it. Using non-technical people's computers is eye-opening. Thousands of files scattered around on the Desktop, Documents, or wherever they just happened to go. Finding something in a specific directory would be a completely foreign concept.


Well, count me in the third group: I make use of hierarchical storage, consistent naming conventions, and other organizational tricks to give me a rough idea of where any file might be. I also fail miserably at it (apart from dev/programming stuff, which all is in `~/dev/<project name>`) and rely heavily on search to find anything again.

As search is fast enough nowadays with indexing, I'd rather have it search the whole disk every time than the directory I'm in just to realize I've put it someplace else.


Funny enough, I'm in the first group but prefer Finder's default behavior for the second group.


Windows also defaults to full text file searches instead of filenames, which is super annoying when you have thousands upon thousands of documents. It's often faster to open a terminal window, type 'dir search string and open the file from the terminal.


Try everything search [0], I don't think I could use windows without it. Just search filenames, instant, whole disk.

[0] https://www.voidtools.com/support/everything/


Seconded. This is a killer app. I can't imagine using Windows without it.


Especially when global search is only ever a Cmd-Space away.


The other comments make a good point about it being optimized for dumbasses that don't even understand the basic concepts of file management.

Maybe we need a name for this behavior, I propose "idiot-driven-development".


Thanks!! Having it search my mac by default was a mild annoyance (you can click search current folder once the search starts). But this is helpful


Why isn't this the default setting? I mean, who searches their entire machine when they're inside a folder?


@hwbehrens lays out the likely reason in an earlier post https://news.ycombinator.com/item?id=33321978

Short answer Large number of users don’t use folders to organize their files. They just depend on searching everywhere to find files that may have dropped in any random location. Those people are less likely to find the setting that makes current folder the default search target.


That searches the _contents_ of the files in the current folder. I just want to search the names (the way Cmd-F works in, you know, every other application: it searches what you see in the window).


also `mdfind whatever` if you prefer the CLI


If you want by name `mdfind -name whatever`.


also fd, brew install fd


Hilarious this is not default. Thanks.


Well yes but in Ventura "Preferences" is now "Settings".

¯\_(ツ)_/¯


No they didn't. Find by Name… still exists. It's ⌃⇧⌘F (ctrl-shift-cmd-F). You might have missed it because it's a dynamic menu item (Find turns into Find by Name… once you press ⌃⇧).

Tip: Use the Help menu to search menu items. I just pressed ⌘? and typed "Find" and Find by Name… popped up.


Ctrl-Shift-Cmd-F? Are you forking kidding me? I know sometimes you can press Option to show secret menu items (which I bet <10% of Mac users know) but Ctrl and Shift too? So now you have to press 7 different combinations of modifier keys just to discover what menu commands are available. Just wow.

Thank you for showing me that menu command! That'll be a lifesaver going forward. Usability achieved despite Apple design, not because of it.


> I just pressed ⌘? and typed "Find" and Find by Name

Damn, been using macOS for 9 years now and just found out about this :o Thanks!


The "Help" menu item is a major lifesaver and especially in complex apps (that is, those which actually take advantage of macOS' native menus, which sadly isn't a given nowadays).

For example Photoshop (and its colleagues) is darn near impossible for me to use on Windows — and at least 50% of the reason is absence of the "Help" menu search feature.


very intuitive /s


The option[+shift] modifier and searchable menu bar have both been around for about 15 years


Dynamic menu items have existed for most of the history of macOS 10+.


I still wish for something like Everything on Windows (https://www.voidtools.com/)

I wrote my own solution using fd + sqlite + fzf but it's nowhere as fast as Everything, and it also requires me to focus the Terminal to use it.


Happy user of Finda here: https://keminglabs.com/finda/

Don't know if it works on Ventura, not upgrading until I know.


Fyi, it does not work. I get this error when opening Finda on macOS Ventura 13.0 (22A380):

"This version of Finda (629.0.0+df7956) is not compatible with your operating system version (22.1.0). Press Enter to download the latest version or Command+ to quit."

EDIT: e-mailed the Developer, beta release coming tomorrow...


Thank you for sharing! Neat tool!


I continue to not understand this -- The Everything app was capable of instant search on Windows in like 2008, and yet on modern devices, with SSDs, far more RAM, and faster CPUs, I have to wait a good 2-3s for results to appear.

How did one dev managed to achieve what, apparently, no corporate entity ever has?


sometimes I think MSFT should buy Everything and replace Windows search with it. There are some plugins that use it for other file managers.

But then again, they will almost certainly screw it up, given that Windows Search still can't search my start menu reliably without pauses. And their history with acquisitions and integrating tech isn't very good.


Things like that infuriate me and make me want to throw my laptop out of the window. There's no excuse for the start menu search not being instantaneous, but Windows isn't the only offender. Searching for an app on Android is also slow.

With Windows, it is death by a thousand paper cuts. With Linux, you might get your arm chopped off while getting every device (or sleep) to work flawlessly, but once it works, it stays working. And small things like search work like you expect them to.


Everything is only fast because of an index, right?

How it catches all file writes to update that index near instantaneously, I have no idea.


Everything uses NTFS journaling as far as I know.

I actually solved that by using the native macOS fsevents API which can watch the whole filesystem for changes, and I can instantly update the SQLite db I use for the index through that.

The problem is actually enumerating and searching the whole database, that's the slow part. Right now I have over 5 million rows in it and passing the SELECT results to fzf is the slowest part, taking a few seconds at least on an M1 Max.

I'm not sure how Everything presented the results so fast, with metadata and everything.


The fsevents part is interesting, didn't know that!

To your point regarding the slowness - in that case it's not really acting as an index though, is it, if you're scanning the whole list and passing it to fzf?

A proper fuzzy text search index (I think elastic and similar engines have these built-in) should yield orders of magnitude better performance.


Yes, you're right. I did try Meilisearch for this but I wanted close-to-instant Smith-Waterman fuzzy searching which is why I settled on FZF.

In the end I might have to reimplement that in Swift with an always cached index and native Spotlight like search bar to really make this as easy to use as I want.

It's not practical to reach for the browser or Terminal to do this search.


One trick is to know that spotlight indexes content and metadata separately, and most search interfaces default to content. Typing in "README.md" in system spotlight will look for documents that contain a reference to that name, while "name:README.MD" will look for ones marked as _having_ that name.

The search interface in finder has a builder for predicates (start a search then hit the plus on the right side of the search bar). There you can start to see some of the friendly prefixes for filesystem items such as extension:, kind:, date:, tag:.

You can also see the mass of file specific metadata - like width, audio bit rate, city, genre.

I have not, however, found a handy way to translate between English description, friendly prefix, and the internal query names like kMDItemContentType.

Fun aside - some of these used to work in the Mac app store - for instance, you could search for listed applications which could open exotic document types.

The "uselessness" IMHO is mostly in that it exposes the most simplistic interface possible, and people just don't know where to go from there (other than terminal users going `man mdfind` I suppose). That gap is only widened by how different it is from other filesystem-based mechanisms for power users, which have more established commonalities like regex and filesystem globbing.


I know you can specify these predicates; the problem is the absolutely terrible choice of default behaviour.


I recommend checking out Raycast as an alternative.

https://www.raycast.com/


Raycast is great. imo better than Alfred. Love the menu-search functionality.

But I still use both, because Raycast doesn't support "folder search". I use folders in general because they don't change, and I usually know what I'm looking for. It (should be)/is also faster than searching all files.

When I'm looking for a file or it's contents, I'll fall back to spotlight



I started using Alfred app recently on my work laptop. It's far superior than `Spotlight`

https://www.alfredapp.com/


It should be embarrassing how much faster Alfred's search is. Using Alfred to just search feels like using a Ferrari to pick up groceries, but it really is just better – and has been for as long as I can remember.


Doesn't Alfred just use the Spotlight in the backend for searches?


It keeps your applications in a small (i.e fast) cache, so it's more or less instant when using it as an app finder.

I think it, yes, uses the Spotlight index for finding files, although I wouldn't be surprised if Alfred does some clever stuff on top of it too.


No workaround needed, just poorly placed settings and toggles:

• Finder -> Preferences -> Advanced -> “When performing a search: Use the Previous Search Scope”

• On any Finder window, CMD-F -> Search: This Mac / [ FolderName ]

• On the loupe: “Filename” instead of “Everything”

Enjoy


Like in a Finder window? I just start typing a filename and it jumps to the letters I typed. In the column view, you can use tab and shift-tab to switch between columns, allowing quick navigation into a directory tree. I may be misunderstanding you?



Having grown tired of the design of Alfread and not wanting to commit to VC-backed Raycast, this is a nice discovery! Edit: A plugin system is on the TODO and that'd be the clincher.


I still use it as fast calculator. And sometimes it can convert units ... sometimes. That's it. I don't think it has EVERY found the file I'm looking for, but Windows search ain't much better. As someone who develops on all three OSes daily, nothing beats `find | grep` or `find | xargs grep`.


Spotlight is great for those lone cold weather nights: whenever I feel down, it will start indexing and spin up all the fans and make a lot of heat and noise, making me feel warm and loved


Personally I have Spotlight indexing completely disabled, except to index items in `/Applications` so I can use it as a quick-launcher. This was not easy to configure, and I'll probably have to do it again next time I update the OS. But it did seem to help with performance - Spotlight was often the cause of unpredictably high CPU usage spikes.


Just start typing the name. Not in the search field of Finder. You'll get focus on a file or folder that starts with whatever symbols you just typed. Very convenient and fast. Having "sort by name" by default in every folder helps a lot too.


What do you mean "still mostly useless"? Is there anything more usable on any other OS?

I moved back to Windows a couple of years back. Spotlight is the second thing I miss most from macOS, with the first being Preview.


Mentioned elsewhere, Everything search by voidtools: https://www.voidtools.com. It does funky things with monitoring some component of the NTFS filesystem to maintain a up-to-date index of every filename on your computer, and makes them searchable literally as fast as you can type.

(https://news.ycombinator.com/item?id=33321000)

There seems to be two kind of searching people do. Some people want a search tool that searches in documents. Some people want a search tool that searches filenames.

Everything search is exclusively the second. I think I can count on one hand the number of times I've wanted to search inside documents in the last 10+ years (and for those cases, grep has worked fine, even on windows!).

For some reason, searching inside documents seems to be the default for both windows and os x search, and it's super annoying.


> I think I can count on one hand the number of times I've wanted to search inside documents in the last 10+ years

If you want to search documents you have created, I can imagine that you may not use the feature much. But e.g. for research papers, the downloaded copy rarely reflects the contents/authors, so it is really handy to be able to search the contents.

> For some reason, searching inside documents seems to be the default for both windows and os x search, and it's super annoying.

Weird. For me windows don't seem to search inside documents, or at least not in all documents.


Microsoft's PowerToys has a great answer to Spotlight on Windows if you're so inclined to try it out.

[0] https://learn.microsoft.com/en-us/windows/powertoys/


>not start a sluggish scan of my entire hard disk

A Spotlight search never starts a scan of your disk. The disk is always fully indexed and returns results out of the index very fast. The only exception is typically when the system is updated (or some other big event) and it reindexes everything.

That being said, as others have pointed out, there is a setting to make a Finder window search apply only to the directory in the current window.


Basic file search is broken. Still nothing like VoidTools Everything-like SMB share indexing either. Maybe Spacedrive will have these things when released? *crosses fingers


What's crazy, is that presumably, this is the default because some definition of "most people" just randomly save files all over the place


Yep, most non tech people I've met often have files saved everywhere and anywhere. They don't know where stuff goes half the time.


Indeed. Also, Outloook for Mac also uses Spotlight to search emails and this seems to break for a lot of people.

The only way to fix it is to do some command line mumbo jumbo like rebuilding the Spotlight index and deleting index folders.


If I'm recall correctly, it was pretty much perfect in the first few releases. It got worse and worse over the years when they added smart features.

But maybe that more nostalgia than actual memories ;)


> Spotlight is still mostly useless.

I use it all the time to run binaries. For instance, "cmd-space mail". I wouldn't know the names of the files I want to search anyway.


after many years I still often type "⌘space email" and find nothing.


I'm still on Monty, does this work? https://imgur.com/a/ExV2wrP


What I typically do is remove _anything_ (web suggestions, etc.) that is not related to files. Usually fixes Spotlight across the board.


Imo grep and fd are the most consistent way, all these GUI apps do is get in the way and reinvent the wheel


As you're already using fd for find, you may like ripgrep for replacing grep.


Finder and File organization is the worst part of Mac experience, it's terrible - I still can't get used to it after 3 years. Windows Explorer is so much better. Aswell as not searching the current folder, I find it so infuriating that Save-As does not default to the Current folder, just picks a random one!!


> Does anyone know a workable alternative?

Terminal and /usr/bin/find


fd

https://github.com/sharkdp/fd#installation

assuming you are "in the current folder" in the terminal...


You can just start typing in Finder, prefix search will Just Work.


You can do name:searchitem and it'll find by name.


There’s one simple solution… buy Alfred.


I think Apple should just buy Raycast.


Or Alfred, been around much longer.


in Terminal:

find . -type f -name “somestring

but yeah that seems like more typing than one might want compared to a simple text entry field in the GUI.


For what it's worth, the terminal interface to the Spotlight database is "mdfind". It still doesn't solve GP's "only this directory" problem though.

(But your "find" will search in and below the current directory for files that exactly match "somestring".)


>For what it's worth, the terminal interface to the Spotlight database is "mdfind".

Yeah I realize that, but find is a stronger tool for the use case because it also allows wildcards to be specified in the name.

>your "find" will search in and below

Your "mdfind" will also search in and below the current directory.

find also has -depth which can be used to tell it to search only this directory.

mdfind has -onlyin to tell it what directory to search in, but it still recurses down. Does it have an option to limit this? Please do tell.

>for files that exactly match "somestring"

Well find also allows wildcards though. So not necessarily exactly… somestring is just an example.

Does mdfind allow wildcards?

Also find is fun to combine with grep to inspect file contents, especially since it has the -print0 option…

    find . -type f -name "*.py" -print0 | xargs -0 grep somestring 
Please tell me how to do this with mdfind, I would love to know!


you could also just have find run the grep for you as well

    `find . -type f -name \*.py -exec grep homestring {} \;`
It's not exactly equivalent, however, I often will just use find directly for simple actions.


mdfind searches contents by default, thanks to the Spotlight index.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: