Archivo de la etiqueta: Finder

Cómo compartir scripts de AppleScript con ficheros de sonido, texto y demás usando paquetes de scripts

Ya hemos visto cómo crear scripts y aplicaciones a partir de nuestros scripts para realizar y automatizar tareas y, por ahora, podemos compartirlos con otros usuarios sin demasiados problemas ya que siempre hemos accedido a elementos del sistema. Pero imaginemos que queremos crear un script con sus propios sonidos, ficheros de texto o ficheros de recursos y que siga ejecutándose sin problemas en nuestro Mac y el de nuestros amigos. En este artículo veremos cómo hacerlo.

Usar un paquete de scripts en lugar de un script de AppleScript

El editor de AppleScript nos permite guardar nuestro script de diversas formas, por ejemplo como script, como aplicación, como texto o como un paquete de scripts.

Un paquete de scripts es el formato idóneo para compartir nuestros scripts con amigos ya que es un formato que consiste en un conjunto de ficheros cuyo fichero principal es un archivo de script que se ejecutará al abrirlo con Finder.

En este paquete de scripts podemos incluir casi cualquier tipo de archivo que necesitemos para que nuestro script funcione perfectamente.

Creando un paquete de scripts

Para crear un paquete de scripts simplemente debemos crear un nuevo script de AppleScript desde la herramienta editor de AppleScripts y a la hora de guardarlo especificar que lo guardaremos con el formato paquete de scripts

En el editor de AppleScript se mostrará el código fuente de nuestro script como si se tratase de un script normal en lugar de un paquete de scripts.

La única diferencia es que la opción mostrar contenido del paquete del menú Visualización del editor de scripts estará disponible.

Al activar la opción mostrar contenido del paquete se nos mostrará información de nuestro paquete y una tabla con los ficheros que se incluyen dentro del paquete.

Por defecto en todos los paquetes se incluye el fichero description.rtfd y la carpeta Scripts y debemos evitar modificar estos dos elementos para mantener la estabilidad de nuestro paquete.

Añadiendo ficheros a nuestro paquete

Para agregar nuevos ficheros dentro de nuestro paquete sólo debemos arrastrar los nuevos ficheros hasta soltarlos dentro de la tabla con los ficheros de nuestro paquete. Por desgracia esta operación de arrastrar y soltar no es sencilla para los usuarios de producto de apoyo pero no es demasiado problema gracias a MacOS y su filosofía de multitud de alternativas y a la potencia de Finder.

Añadiendo ficheros a nuestro paquete a través de Finder

Podemos agregar los nuevos ficheros simplemente abriendo el contenido de nuestro paquete en Finder y tratándolo como una carpeta más en la que podemos pegar y duplicar ficheros así como cambiar sus nombres o crear carpetas.

Para hacer esto simplemente nos debemos colocar en el primer elemento de la tabla, que suele ser el fichero description.rtfd y utilizando el menú contextual activar la opción Mostrar en el Finder

Para activar el menú contextual debemos hacer una pulsación con el botón derecho del ratón o, si usamos VoiceOver, pulsar la combinación de teclas Mayúsculas + Control + Option + M

Al activar la opción Mostrar en el Finder se abrirá una carpeta en el Finder en la que podremos pegar o renombrar los archivos para nuestro paquete. Cualquier cambio que hagamos se verá reflejado en el editor de scripts

Accediendo a nuestros recursos desde nuestros scripts

Para acceder a uno de nuestros ficheros almacenados en el paquete debemos hacer referencia a él usando una referencia relativa a su ruta y a la del paquete almacenándo la ruta en una variable. Por ejemplo, imaginemos que hemos incluido el sonido prueba.caf en nuestro paquete y queremos almacenar su ruta en la variable misonido. El código sería:


set miSonido to POSIX path of (path to resource "prueba.caf")

Y para reproducir el sonido debemos crear el comando de terminal que solemos utilizar para reproducir sonidos con AppleScript incluyendo la ruta a nuestro fichero de audio. El script completo quedaría así:


on run
set miSonido to POSIX path of (path to resource "prueba.caf")
do shell script "afplay " & quoted form of miSonido
end run

Si el fichero a ejecutar no está en nuestro paquete aparecerá el mensaje de error Recurso no encontrado.

Diccionarios en AppleScript

Ya hemos visto en artículos anteriores que AppleScript nos permite realizar ciertas operaciones sobre el sistema operativo y, en algunas ocasiones, también podemos utilizar o manipular algunas aplicaciones a través de AppleScript. Esto se consigue gracias a los diccionarios de AppleScript.

Los diccionarios de AppleScript son manuales que indican al motor de AppleScript cómo poder interactuar con una aplicación utilizando AppleScript.

Estos diccionarios son creados por los propios desarrolladores de las aplicaciones para MacOS X. Las aplicaciones más comunes y todas las de Apple para MacOS X poseen sus diccionarios.

Para ver qué diccionarios tenemos disponible en nuestro equipo debemos abrir la aplicación del Editor de scripts y en el menú Archivo encontraremos la opción Abrir diccionario.

Al pulsar esa opción se nos abrirá un cuadro de diálogo que nos permite abrir un diccionario para consultar su documentación para poder escribir nuestro script de AppleScript.

En esa lista encontraremos aplicaciones ya conocidas como Automator, Finder, Pages, Keynote, Microsoft Word, xCode, System events o Safari.

Todos los diccionarios suelen estar escritos en inglés ya que es el idioma oficial para AppleScript.

Explorando un diccionario

Al abrir un diccionario nos encontraremos una barra de herramientas, una zona de selección de categorías (identificada por VoiceOver como Explorador) y una zona de lectura (identificada por VoiceOver como Contenido web).

En el explorador se encuentran las suites de comandos y los tipos y elementos disponibles. en el contenido web se puede leer la documentación del diccionario o del elemento seleccionado en el Explorador.

En la barra de herramientas encontraremos elementos para buscar términos, cambiar el tamaño de letra, cambiar el lenguaje de programación para consultar el diccionario o cambiar el modo de visualización del explorador.

Un pequeño ejemplo con Finder

El Finder es una de las aplicaciones más poderosas de MacOS X y su diccionario es muy interesante. Buscando entre sus comandos y propiedades podemos crear sin demasiada complicación un script que nos permita expulsar todas las unidades y memorias USB que estén conectadas a nuestro ordenador en ese momento. El código sería algo así:


tell application "Finder"
eject (disks whose ejectable is true)
end tell

Mejorando el ejercicio

Aunque el script anterior puede ser muy útil es mejor que el usuario pueda seleccionar qué unidad expulsar. Con los conocimientos que ya hemos visto en artículos anteriores podemos hacer ese script.

A continuación veremos un código inicial no terminado para dar pistas de cómo se podría hacer ese script.


tell application "Finder"
set unidades to (disks whose ejectable is true) as text
choose from list unidades with title "Expulsar una unidad" with prompt "Selecciona la unidad que quieras expulsar" OK button name "Expulsar"
end tell

Puedes compartir tu propuesta de solución con otros lectores en los comentarios de este artículo.

¿Cómo añadir y eliminar elementos del dock y la barra lateral sin ratón en OSX?

El sistema operativo OSX posee dos zonas de acceso rápido a elementos muy utilizadas por los usuarios. Una de ellas es el Dock que hace las veces de menú de inicio de Windows y barra de tareas. Otra de ellas es la barra lateral de Finder. Finder es el explorador de archivos que incluye OSX.

Ir al Dock con VoiceOver es tan sencillo como pulsar la combinación VO+D y desplazarnos con los cursores hasta el elemento que queramos activar o eliminar. Cuando una aplicación se está ejecutando su icono aparecerá en el Dock. Desde este icono del Dock podremos acceder a algunas operaciones especiales de la aplicación como forzar su salida, actualizar los eMails, etc. Podemos acceder a este menú contextual con VoiceOver simplemente colocándonos sobre el icono del Dock de la aplicación y pulsando VO+Mayúsculas+m con lo que nos aparecerá el menú contextual para dicho elemento. Una de los elementos de este menú se llama Opciones y dentro de este menú podremos hacer que la aplicación se ejecute al iniciar el sistema o que su icono del Dock permanezca en este aunque no se esté ejecutando la aplicación.

Pero en el Dock podemos incluir carpetas para poder navegar más rápido y encontrar rápidamente elementos que estén en carpetas conocidas. El problema es que, oficialmente, esta operación de agregar una carpeta se realiza arrastrando la carpeta desde el Finder al Dock, una operación que, aunque con VoiceOver se puede realizar, los conocimientos necesarios para llevarla a cabo son elevados. Pero nos olvidamos que OSX es un sistema operativo en el cual los atajos de teclado son muy importantes. Simplemente con buscar la carpeta o fichero que queramos añadir al Dock, nos colocamos sobre él y pulsamos la combinación Comando+Mayúsculas+T el elemento se añadirá al Dock automáticamente.

Si añadimos una carpeta y queremos poder navegarla desde el Dock con voiceOver debemos activar la vista en lista, para ello iremos al Dock con voiceOver pulsando VO+D, buscaremos la carpeta y abriremos el menú contextual con VO+Mayúsculas+M y buscaremos la opción Lista que es un elemento de la sección Ver contenido como de este submenú. Con esto conseguiremos que, cuando vayamos al Dock con VoiceOver y pulsemos la tecla enter sobre una carpeta del Dock se nos abrirá un menú de exploración del contenido de la carpeta.

La barra lateral de Finder es utilizada por algunos usuarios aunque no es del todo funcional con VoiceOver en la actualidad. Para añadir un elemento a esta barra lateral simplemente debemos colocarnos sobre él y pulsar la combinación Comando+T.

Para eliminar un elemento de la barra lateral debemos acceder al menú contextual del elemento con VO+Mayúsculas+M y buscar la opción apropiada.