La solución es crear un LaunchAgent ( man launchctl
para más información) que ejecuta el anterior script a través de la línea de comandos. Esencialmente, usted quiere almacenar el script anterior en un archivo, digamos 'killfinder.scpt' y luego ejecutar el comando osascript /path/to/killfinder.scpt
.
Queremos hacer esto automáticamente al iniciar la sesión, por lo que utilizamos un LaunchAgent. Como quiero usar esto porque yo uso Pathfinder y mi esposa no, voy a ponerlo en ~/Library/LaunchAgents
pero si quieres que sea para todo el sistema, ponlo en /Library/LaunchAgents
.
Tendrá tres archivos:
- Un script
- Un AppleScript (opcional)
- Un plist XML de LaunchAgent
script Archivo
-
Ponga esto en una ruta apropiada. Por ejemplo, yo lo guardé en ~/dev/scripts/killfinder.bash
.
-
Cree el archivo y añada este contenido:
#!/bin/bash
osascript /path/to/AppleScriptFile.scpt
-
Asegúrese de que los permisos son correctos (por ejemplo chmod ug+x killfinder.bash
)
Archivo AppleScript
Puede llamar a osascript directamente con el código AppleScript como argumento. Lo dejo como ejercicio para el lector; en ese caso, puede crear este archivo. Pero si quieres hacerlo de esta manera 1. Ponga esto en una ruta apropiada. 2. Crea el archivo y añade este contenido:
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
- Asegúrese de que los permisos son correctos (por ejemplo
chmod ugo+r Finder\ Remove.scpt
)
LaunchAgent XML plist
-
Ponga esto en ~/Library/LaunchAgents
o /Library/LaunchAgents
dependiendo de si sólo quieres este comportamiento para tu cuenta personal o para todo el sistema.
-
Cree un archivo llamado com.<whateveryouwant>.KillFinder.plist
con el siguiente contenido:
<?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>
<string>com.<whateveryouwant>.KillFinder</string>
<key>Program</key>
<string>/path/to/unixscript</string>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
Es importante asegurarse de que el valor de la 'cadena' después del Label
es correcta, así como la ruta de acceso al script.
Ahora todo lo que tienes que hacer es salir e iniciar sesión y debería funcionar.