Recientemente me he visto en la obligación de gestionar el Dock de varios Mac par añadirles diferentes elementos “por defecto” sin modificar la configuración ya creada por el usuario. Esta tarea, de forma manual, lleva bastante tiempo y es absolutamente aburrida. Abrir una carpeta, arrastrar un icono, etc … mejor automatizar este proceso. Hay un par de comandos de terminal que envían al Dock el correspondiente código para que añada el icono de un elemento al Dock, pero rizando el rizo … ¿por qué no crear un gestor de perfiles para el Dock?. Seguramente hay aplicaciones para hacer esta tarea, pero es mucho más divertido hacerla uno mismo y aprender por el camino algo de AppleScript.
Empezando por crear el Menú
En el código de este Applescript tienes las diferentes opciones para crear un menú que te permita elegir una opción para luego realizar diferentes tareas. El código está comentado para que te resulte mas sencillo saber que hace el Applescript y cómo.
–llamamos a la aplicación para crear el menú
tell application “System Events”
activate
–Definimos las opciones del menú, con esta sintaxis puedes hacer el menú tan largo como quieras añadiendo mas opciones
set theList to {“Elemento1”, “Elemento2”, “Elemento3”, “Elemento4”, “elemento5”}
–Permite elegir el elemento y define un elemento seleccionado por defecto
choose from list theList with prompt “Elige una opción” default items {“Elemento1”}
set listchoice to result as text
end tell
–define la acción por elemento elegido
if listchoice is “Elemento1” then
–aquí iría tu acción de Applescript, por ejemplo, abrir una ventana o realizar otras opciones
–Así se definen las subsiguientes acciones
else if listchoice is “Elemento2” then
–Aquí añades la acción a realizar para el segundo elemento. La estructura para los subsiguientes elementos es la misma cambiando el nombre de la variable
–ahora cerraremos el menú, estas dos líneas han de ir siempre al final del selector de opciones
end if
end
Añadiendo elementos al Dock
Añadir elementos al Dock es relativamente fácil usando los comandos de terminal defaults write com.apple.dock persistent-apps
(para aplicaciones) y defaults write com.apple.dock persistent-others
(para otros elementos). Un ejemplo de cómo añadir Safari, por ejemplo, al Dock sería:
defaults write com.apple.dock persistent-apps -array-add '<dict><key>tile-data</key><dict><key>file-data</key><dict><key>_CFURLString</key>
<string>/Applications/Safari.app</string><key>_CFURLStringType</key><integer>0</integer></dict></dict></dict>'
Hay aplicaciones que no requieren el añadir .app al final de la ruta
para luego reiniciar el Dock usando Killall Dock
Añadir otro elemento que no sea una aplicación, por ejemplo, una carpeta (o un documento, al que haríamos referencia en la ruta e incluiríamos su extensión) usaríamos:
defaults write com.apple.dock persistent-others -array-add '<dict><key>tile-data</key><dict><key>file-data</key><dict><key>_CFURLString</key><string>/Users/Dalek/Pictures</string><key>_CFURLStringType</key><integer>0</integer></dict></dict></dict>'
¿Vamos pillando la idea?
Ahora la introducción de los comandos de terminal en AppleScript sería con do shell script "aquí iría el comando"
Así que la estructura de nuestro Applescript incluiría el menú, y en cada una de las opciones del menú uno o varios do shell script con el comando para añadir las aplicaciones, documentos o carpetas para terminar con un reinicio del Dock do shell script “killall Dock
“.
Y si quieres eliminar elementos del Dock, entonces cambia write
por delete
usando defaults delete com.apple.dock persistent-apps
y defaults delete com.apple.dock persistent-others
El funcionamiento final nos mostraría una lista de opciones para parametrizar el Dock de forma automática: seleccionaríamos un perfil y se ejecutarían todos los comandos para reiniciar el Dock y mostrar todos los elementos y así disponer de un Dock parametrizado con las necesidades del usuario.
¿Hay información en algún sitio de cuáles son esos ficheros y qué controlan? Todos esos archivos tipo “com.apple.dock persistent-apps”, que son miles cuando entras en la carpeta correspondiente. Algunos de ellos ya he llegado a controlarlos de forma intuitiva, incluso he conseguido reparar el correspondiente del Mail (una cuenta se había quedado tonta y no bajaba mensajes), o guardar el que memoriza los colores personalizados que voy guardando, pero repito, es que son miles y con nombres a veces muy crípticos.
Pues generalmente hay que abrir y olisquear dentro ….