La solución es crear un LaunchAgent ( man launchctl
para obtener más información) que ejecute el script anterior a través de la línea de comandos. Esencialmente, desea almacenar el script anterior en un archivo, diga 'killfinder.scpt' y luego ejecute el comando osascript /path/to/killfinder.scpt
.
Queremos hacer esto automáticamente al iniciar sesión, así que usamos un LaunchAgent. Ya que quiero usar esto porque uso Pathfinder y mi esposa no, lo pondré en ~/Library/LaunchAgents
, pero si quieres que sea para todo el sistema, ponlo en /Library/LaunchAgents
.
Tendrás tres archivos:
- Un script de UNIX
-
Un AppleScript (opcional)
- Una lista XML de LaunchAgent
Archivo de script
- Ponga esto en un camino apropiado. Por ejemplo, lo almacené en
~/dev/scripts/killfinder.bash
.
-
Crea el archivo y agrega este contenido:
#!/bin/bash
osascript /path/to/AppleScriptFile.scpt
-
Asegúrese de que los permisos sean correctos (es decir, chmod ug+x killfinder.bash
)
Archivo AppleScript
Puede llamar a osascript directamente con el código AppleScript como argumento. Dejo eso como un ejercicio para el lector; En ese caso, puedes crear este archivo. Pero si quieres hacerlo de esta manera:
1. Ponga esto en un camino apropiado.
2. Crea el archivo y agrega 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 sean correctos (es decir,
chmod ugo+r Finder\ Remove.scpt
)
LaunchAgent XML plist
-
Ponga esto en ~/Library/LaunchAgents
o /Library/LaunchAgents
dependiendo de si solo desea este comportamiento para su 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 'cadena' después de la clave Label
sea correcto, así como la ruta al script de Unix.
¡Ahora todo lo que tienes que hacer es salir e iniciar sesión y debería funcionar!