Comment puis-je supprimer automatiquement le Finder depuis le Dock lors de la connection?

Ceci est lié à cette question ici , sauf que, en plus de supprimer le Finder, je veux le faire automatiquement. Il existe plusieurs solutions sur le Web qui suggèrent d'utiliser ce script AppleScript:

tell application "System Events" tell UI element "Finder" of list 1 of process "Dock" perform action "AXShowMenu" click menu item "Remove from Dock" of menu 1 end tell end tell 

Malheureusement, l'save en tant qu'application et l'avoir exécuté lors de la connection ne fonctionne pas; Il est intéressant de noter que l'exécution dans Script Editor fonctionne, mais cela ne résout pas le problème de la suppression automatique du Finder.

La solution consiste à créer un LaunchAgent ( man launchctl pour plus d'informations) qui exécute le script ci-dessus via la command line. Essentiellement, vous voulez stocker le script ci-dessus dans un file, dites 'killfinder.scpt', puis exécutez la command osascript /path/to/killfinder.scpt .

Nous voulons le faire automatiquement lors de la connection, nous utilisons donc un LaunchAgent. Puisque je veux utiliser ceci parce que j'utilise Pathfinder et que ma femme ne le fait pas, je vais le mettre dans ~/Library/LaunchAgents , mais si vous voulez que ce soit à l'échelle du système, mettez-le dans /Library/LaunchAgents .

Vous aurez trois files:

  1. Un script UNIX
  2. Un AppleScript (optionnel)
  3. Une plaquette XML LaunchAgent

Fichier de script

  1. Mettez ceci dans un path approprié. Par exemple, je l'ai stocké dans ~/dev/scripts/killfinder.bash .
  2. Créez le file et ajoutez ce contenu:

     #!/bin/bash osascript /path/to/AppleScriptFile.scpt 
  3. Assurez-vous que les permissions sont correctes (c.-à-d chmod ug+x killfinder.bash )

Fichier AppleScript

Vous pouvez appeler osascript directement avec le code AppleScript comme argument. Je laisse cela comme un exercice au lecteur; dans ce cas, vous pouvez créer ce file. Mais si vous voulez le faire de cette façon: 1. Mettez ceci dans un path approprié. 2. Créez le file et ajoutez ce contenu:

  tell application "System Events" tell UI element "Finder" of list 1 of process "Dock" perform action "AXShowMenu" click menu item "Remove from Dock" of menu 1 end tell end tell 
  1. Assurez-vous que les permissions sont correctes (c.-à-d. chmod ugo+r Finder\ Remove.scpt )

LaunchAgent XML plist

  1. Placez ceci dans ~/Library/LaunchAgents ou /Library/LaunchAgents selon que vous souhaitez simplement ce comportement pour votre count personnel ou pour l'set du système.

  2. Créez un file appelé com.<whateveryouwant>.KillFinder.plist avec le contenu suivant:

     <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <ssortingng>com.<whateveryouwant>.KillFinder</ssortingng> <key>Program</key> <ssortingng>/path/to/unixscript</ssortingng> <key>RunAtLoad</key> <true/> </dict> </plist> 

    Il est important de s'assurer que la valeur "string" après la key Label est correcte ainsi que le path vers le script unix.

Maintenant, tout ce que vous avez à faire est de quitter et de vous connecter et ça devrait marcher!