Asepsis for Mac
Control creation of .DS_Store files.
Control creation of .DS_Store files.
Asepsis--originally a feature of TotalFinder--controls the creation of .DS_Store files by redirecting their creation to a special folder.
Why is .DS_Store a problem?
Well, it is not really a problem for most Mac users because .DS_Store files are normally hidden in Finder. But I'm a developer and I run Finder with TotalFinder and I have enabled display of hidden files. Also I run a lot of command-line tools via terminal. The problem is that sometimes .DS_Store files get into a way. I hate when my clean new folders get polluted by those small tiny files holding unimportant garbage. I hate when I zip a folder using some unix command and it includes .DS_Store files in the archive. I hate when I visit a network volume and that pollutes its content with those nasty files. To put it simply I don't want my geeky Windows friends to laugh at me because this makes me look incompetent. That is why I decided to solve this for myself and I'm sharing my solution with other Mac geeks out there to help them protect their egos :-)
Why is .DS_Store a problem?
Asepsis does .DS_Store redirection. How does it work technically? Apple implemented a private system framework DesktopServicesPriv which is responsible for creating and manipulating .DS_Store files. This framework is used mainly by Finder, but there are also other system apps which link against it and may use it (yes mdworker I'm looking at you!). DesktopServicesPriv uses standard libc calls to manipulate .DS_Store files. At core Asepsis provides a dynamic library DesktopServicesPrivWrapper which gets loaded into every process linking against DesktopServicesPriv.framework. It interposes some libc calls used by DesktopServicesPriv to access .DS_Store files. Interposed functions detect paths talking about .DS_Store files and redirect them into a special prefix folder. This seems to be transparent to DesktopServicesPriv. Additionally Asepsis implements a system-wide daemon asepsisd whose purpose is to monitor system-wide folder renames (or deletes) and mirror those operations in the prefix folder. This is probably the best we can do. This way you don't lose your settings after renaming folders because rename is also executed on folder structure in the prefix directory. The prefix folder is /usr/local/.dscage DesktopServicesPrivWrapper - a proxy library for interposing file manipulation calls in DesktopServicesPriv asepsisd - a system-wide daemon for mirroring folder renames and deletes in the prefix folder asepsisctl - a command-line utility for controlling Asepsis operation
Note: Asepsis is reported to work under OS X 10.11 El Capitan with Systen Integrity Protection disabled, but I decided to stop developing Asepsis and supporting it under El Capitan and later.
Comments
User Ratings