Why does a .DS_Store file keep appearing on the desktop?
Type this in Terminal (/Applications/Utilities/Terminal.app):
defaults write com.apple.finder AppleShowAllFiles FALSE
killall Finder
The first command sets the hidden files visibility to hidden; the second one forces Finder to restart. This is needed for the first command to take effect.
You can also log out/reboot instead of killing the Finder, but the first command is needed to change a hidden preference (one that the Finder can’t change using the normal Finder view options or preferences).
There's a way to hide all "dot" files from Desktop with 3rd party app called XtraFinder.
Go to Settings → Features tab → Hide dot files on Desktop
Though I still didn't manage to hide all .DS_Store
files and keep all other dot files visible, this is a pleasant improvement.
For those who would like to still view other hidden files but hide the desktop .DS_Store file, the solution is to give the desktop version a transparent icon. The best instructions I have found are here:
https://www.scottofford.com/2013/03/hide-ds-store-on-mac/
When finished with the transparent icon, drag the icon's text to off the screen and you will never see the desktop file again.
.DS_Store is used by OS X to store directory information used by Finder such as icon position, etc.
In OS X any file name that starts with a "." is hidden, so to hide the .DS_Store file you can use the terminal command:
sudo defaults write com.apple.finder AppleShowAllFiles NO
Basically, you can ignore it. If you are copying a directory to a flash drive and looking at it in Windows, feel free to just delete it. It is Mac OS X Finder that creates this file whenever it opens a new directory.
An alternative solution would be to prevent Finder from automatically creating these files. The following terminal command changes the default setting from automatically creating them to not:
defaults write com.apple.desktopservices DSDontWriteNetworkStores TRUE
And to revert back to the default behavior:
defaults delete com.apple.desktopservices DSDontWriteNetworkStores