Une alternative au script de grgarside, qui ne nécessite pas de redémarrer le Finder, mais simplement de rafraîchir la fenêtre ouverte.
Il peut être enregistré comme une application ou dans Automator, comme un service.
Je l'ai en tant que Service, déclenché sur Cmd H à partir de System Prefs > Keyboard > Shortcuts > Services - ce qui m'a obligé à changer la commande de touche 'Hide Finder' dans Shortcuts > App Shortcuts pour autre chose que la valeur par défaut.
Pour ajouter un service, lancez Automator puis le menu Fichier > Nouveau.
Sélectionnez Service dans la boîte de dialogue puis faites glisser Exécuter Applescript dans la nouvelle fenêtre Automator.
Copier/coller le script à l'intérieur de l'élément on run
- en remplaçant (* Votre script va ici *) & Enregistrer. Il n'a besoin que des paramètres par défaut pour tout le reste.
Dans System Prefs > Keyboard > Shortcuts > Services, il sera ajouté comme dernière ligne. Définissez la commande de touche de déclenchement que vous souhaitez.
Si vous utilisez Cmd H comme moi, vous devrez changer Hide Finder pour quelque chose d'autre - j'ai juste utilisé un raccourci inutile car je n'ai jamais besoin de cette commande
set newHiddenVisiblesState to "YES"
try
set oldHiddenVisiblesState to do shell script "defaults read com.apple.finder AppleShowAllFiles"
if oldHiddenVisiblesState is in {"1", "YES"} then
set newHiddenVisiblesState to "NO"
end if
end try
do shell script "defaults write com.apple.finder AppleShowAllFiles " & newHiddenVisiblesState
tell application "Finder"
set theWindows to every Finder window
repeat with i from 1 to number of items in theWindows
set this_item to item i of theWindows
set theView to current view of this_item
if theView is list view then
set current view of this_item to icon view
else
set current view of this_item to list view
end if
set current view of this_item to theView
end repeat
end tell
Le script lui-même lit l'état actuel du drapeau invisible (de manière moins élégante que la version de grgarside mais tout aussi efficace ;) puis bascule chaque fenêtre ouverte vers un autre type de vue - liste, icône etc. puis retour.
Edit : Le simple rafraîchissement de Windows ne fonctionne plus dans El Capitan, vous devez maintenant redémarrer le Finder.
Nouvelle version pour El Capitan
set newHiddenVisiblesState to "YES"
try
set oldHiddenVisiblesState to do shell script "defaults read com.apple.finder AppleShowAllFiles"
if oldHiddenVisiblesState is in {"1", "YES"} then
set newHiddenVisiblesState to "NO"
end if
end try
do shell script "defaults write com.apple.finder AppleShowAllFiles " & newHiddenVisiblesState & "; killall Finder"