Conoce el estado de tu batería en MacOS Sierra gracias a AppleScript

Con las últimas versiones de MacOS Sierra, el sistema operativo de Apple para sus ordenadores portátiles y de sobremesa, los usuarios han encontrado que el indicador de batería es confuso y ofrece información insuficiente.

Muchos usuarios no encuentran una solución para volver a obtener toda la información de sus baterías y desconocen que el propio sistema operativo les ofrece una solución utilizando una de las herramientas del sistema MacOS que lo convierten en uno de los sistemas ooperativos más versátiles del mercado, nos referimos a Apple script

Aprender Apple script no es demasiado complicado pero puede que no tengas tiempo para ello. Por esa razón Tyflos Accessible Software ha desarrollado un script que verbaliza bien con la voz del sistema o la voz de VoiceOver, el lector de pantallas para MacOS, el estado actual de la batería de tu equipo Apple.

Puedes descargar el archivo comprimido del
script para conocer el estado de la batería(Español)
e instalarlo en tu sistema MacOS.

Una vez descomprimido el archivo copia el fichero appleScript en la carpeta para scripts de tu carpeta biblioteca de usuario. Una vez allí puedes crear un flujo de Automator para que se ejecute con una pulsación de teclas.

Si eres usuario de VoiceOver es más sencillo de utilizar. Descomprime el archivo dentro de la carpeta de scripts de tu biblioteca, es necesario activar el soporte de scripts de VoiceOver y añadir un comando para VoiceOver asociado a este script. Para ello, dentro de las opciones de VoiceOver, encontrarás el mecanismo para asociar un atajo de teclado a un comando de VoiceOver en la categoría comandos de la ventana de configuración de VoiceOver.

Cómo reproducir un sonido al iniciar sesión en OSX

Aunque el sistema operativo OSX posee muchas características de accesibilidad y usabilidad hay que reconocer que el número de eventos del sistema asociados a un sonido es insuficiente.

Por suerte para sus usuarios existen herramientas y aplicaciones para solucionar total o parcialmente este problema.

Sonido al iniciar la sesión

Uno de los eventos de sonido más reconocidos en el sistema operativo Windows de Microsoft es el inicio de sesión. Es habitual escuchar una fanfarria notificando que la sesión del usuario se ha abierto.

Detectar cuando sucede este evento es sencillo. Podemos lanzar una aplicación cuando el sistema operativo arranque. Para ello las preferencias del sistema posee un apartado en la que se indican qué aplicaciones se arrancarán con la sesión del usuario.

Crear aplicaciones con Automator no es demasiado complicado.

Al abrir Automator y pulsar el botón de nuevo documento debemos seleccionar aplicación como tipo de documento .

Al abrirse la interfaz de Automator nos aparece una acción ya creada con el texto Una aplicación recibe archivos y carpetas como datos de entrada. Debemos ignorar esto ya que la entrada de datos en nuestra aplicación para reproducir un sonido será ignorada.

Reproduciendo un sonido desde la terminal de OSX

Para que nuestra aplicación creada con Automator reproduzca un sonido utilizaremos un comando de la terminal de OSX que tiene esta funcionalidad. Es el comando afplay. Este comando puede reproducir sonidos en diversos formatos como AIFF, CAF o WAV.

Para poder utilizar un comando de la terminal en Automator debemos incluir una acción de tipo Ejecutar el script Shell que se encuentra dentro de la categoría utilidades de la biblioteca de acciones de Automator. Debemos añadir esta acción a nuestro flujo de aplicación de Automator, para ello debemos arrastrar el elemento Ejecutar el script Shell a la zona de acciones del flujo de trabajo (donde aparece el texto Una aplicación recibe archivos y carpetas como datos de entrada). Los usuarios de VoiceOver deben usar las funciones de arrastrar y soltar que incorpora este lector de pantallas.

Una vez que tengamos la acción añadida a nuestro flujo de Automator debemos introducir nuestro código del script para reproducir un sonido. Esto lo haremos dentro del cuadro de edición en el que por defecto viene el código cat. Debemos sustituir todo ese código por el nuestro.

Para nuestro ejemplo vamos a reproducir un sonido propio del sistema operativo. Será el fichero Blow.aiff que está en la carpeta /System/Library/Sounds/. El código sería el siguiente:

afplay /System/Library/Sounds/Blow.aiff

Una vez hecho esto podemos probar que nuestra aplicación funciona, para ello sólo debemos ejecutar nuestro flujo de trabajo desde el propio Automator utilizando la opción que se encuentra en el menú Flujo de trabajo. Nos saldrá una alerta indicando que Automator requiere acceso a los parámetros del Finder, podemos ignorar la advertencia ya que cuando demos a guardar nuestra aplicación no habrá ningún problema.

Guardamos nuestra aplicación en la carpeta de aplicaciones con el nombre que decidamos.

Ejecutando nuestra aplicación al inicio de la sesión

Con nuestra aplicación lista en la carpeta de aplicaciones ahora debemos hacer que se ejecute cada vez que el sistema se inicie. Para ello debemos ir a las Preferencias del sistema y en el panel de usuarios y grupos debemos seleccionar nuestro usuario y pulsar la pestaña items de inicio. Nos aparecerá una tabla con las aplicaciones que se abren al iniciar la sesión del usuario seleccionado y un par de botones para añadir o eliminar items de inicio.

Una vez añadida nuestra aplicación podemos cerrar las preferencias del sistema y reiniciar nuestro equipo para probar que se reproduce el sonido correctamente.

Puedes descargar el ejemplo de Sonido de inicio en formato Zip para probar y seguir el ejemplo.

Automator, programación simple para usuarios de Mac OSX

Apple en su sistema operativo para ordenadores de escritorio y portátiles, más conocido como Mac OSX, incluye un lenguaje de script para poder realizar operaciones de forma controlada. Este sistema de scripts es conocido como Apple script. Con este sistema se pueden realizar varias operaciones así como ampliar funcionalidades del sistema operativo o algunas aplicaciones. El problema es que es necesario conocer el lenguaje de programación utilizado por Apple script y tener conocimientos de programación.

Apple es cosciente de las limitaciones de muchos usuarios que carecen de los conocimientos necesarios para utilizar Apple script pero conoce la necesidad de proporcionar alguna herramienta que permita a un usuario sin conocimientos en programación crear mecanismos para realizar, de forma automática, tareas monótonas y mecánicas. Por esta razón Apple ha desarrollado Automator.

Automator

Apple describe Automator de la siguiente forma:

Automator es un innovador asistente de procesos de automatización que facilita la automatización de las tareas repetitivas. Con Automator, podrá evitar las tediosas tareas de programar y crear scripts que suelen ser necesarias para crear procesos de automatización. Cada uno de los pasos de un proceso automatizado, denominados acciones, pueden ensamblarse en una tarea completa arrastrando las acciones hasta un flujo de trabajo de Automator. Puede ejecutar los flujos de trabajo finalizados tantas veces como desee e incluso compartirlos con otros usuarios.

De forma resumida podemos decir que Automator es una herramienta de desarrollo para crear macros sencillas utilizando las aplicaciones y servicios del sistema para que el ordenador realice por nosotros las tareas repetitivas y monótonas.

Automator trabaja con acciones y flujos de trabajo simplificando el proceso de crear macros y pequeños scripts.

Flujos de trabajo

Un flujo de trabajo consiste en un conjunto de tareas que deben realizarse en un orden determinado para alcanzar un objetivo. Cada una de estas tareas recibe un elemento, lo manipula, y lo pasa a la siguiente tarea del flujo de trabajo. Un ejemplo de la vida real, por ejemplo, sería el que podemos experimentar a la hora de convertir un documento de texto en un audio que escuchamos en nuestro reproductor MP3. El flujo sería algo similar a lo siguiente: descargamos el documento de texto, lo abrimos con nuestra aplicación de conversión texto a voz, cogemos los archivos MP3 generados y los pasamos a nuestro reproductor MP3 para, posteriormente, comenzar a escuchar el documento donde queramos. En este ejemplo el contenido del documento es el elemento que las distintas tareas manipulan hasta alcanzar el objetivo final.

Acciones

Las acciones son los distintos mecanismos de manipulación que Automator posee. En nuestro ejemplo serían las diversas tareas que realizamos con el contenido del documento. Automator posee una librería de acciones para crear nuestros flujos de trabajo. Esta librería se ve ampliada con cada nueva aplicación instalada en el sistema operativo que incluya compatibilidad con Apple script o Automator. Esto hace que Automator vaya siendo cada vez más potente.

Aprender con un ejemplo

En el ámbito de la programación el camino del aprendizaje suele basarse en la experimentación práctica así que aprendamos Automator con un pequeño ejemplo. Vamos a crear un servicio para el sistema que nos permita convertir ficheros de texto plano en archivos de audio en formato AIF, soportados por el reproductor de MP3 de Apple. De esta forma tendremos un rudimentario sistema para convertir ficheros de texto en audio para escucharlos donde queramos.

Para ayudar a los usuarios con discapacidad visual a seguir este pequeño tutorial se incluirán indicaciones para los usuarios de VoiceOver, el lector de pantallas de Mac OSX para usuarios con discapacidad visual. Aquellos usuarios que no utilicen este producto de apoyo pueden ignorar estas indicaciones.

Primer contacto con Automator

En primer lugar debemos abrir Automator, para ello debemos buscar la aplicación en la carpeta de aplicaciones del sistema.

Una vez abierto nos mostrará un asistente que nos preguntará que tipo de flujo de trabajo queremos crear. La ventana del asistente proporciona una descripción de cada tipo de flujo de trabajo disponible. Si leemos la descripción para el tipo Servicio podremos leer lo siguiente:

Los servicios son flujos de trabajo contextuales disponibles a través de Mac OS X. Aceptan texto o archivos de la aplicación activa o del Finder. Los servicios están disponibles en el menú Servicios

. Esta descripción es la más cercana a lo que necesitamos para nuestro ejemplo por lo que seleccionaremos esta opción y pulsaremos el botón Seleccionar.

El área de trabajo

A continuación nos aparecerá la ventana de trabajo de Automator con el flujo de trabajo Sin título. Ha de recorddarse que Automator es una herramienta de desarrollo por lo que el consumo de recursos para crear flujos de trabajo es grande así que no os asusteis si el equipo empieza a ir lento.

En el centro de la ventana veremos una tabla con las tareas de nuestro flujo de trabajo. Esta tabla es reconocida por voiceOver con el texto Sin título flujo de trabajo. Al profundizar sobre esta tabla encontraremos nuestra primera acción del flujo. Es una tarea de recepción identificada por el texto El servicio recibe la selección de. VoiceOver identificará esta tarea con el texto texto en El servicio recibe la selección de cualquier aplicación Reemplaza el texto seleccionado grupo (1 de 1). Podemos modificar algunos parámetros de esta tarea para ajustarlos a nuestras necesidades. Los usuarios de VoiceOver deberán profundizar en la tarea para cambiar los diversos parámetros que posee.

Ajustando la acción a nuestros requisitos

Para nuestro servicio queremos recibir un documento de texto desde el Finder, que es nuestro explorador de archivos. En el primer parámetro seleccionaremos Documento y para el segundo parámetro seleccionaremos Finder. VoiceOver verbalizará, al leer la tarea, lo siguiente: documentos en El servicio recibe la selección de Finder Reemplaza el texto seleccionado grupo (1 de 1)

Para cambiar el valor de cada parámetro debemos hacer click sobre él y nos aparecerá una lista desplegable con todos los posibles valores.

Añadiendo más acciones

Ahora debemos añadir, a continuación de la acción para recibir el documento, una nueva acción para convertir el fichero de texto plano en un fichero de audio. Mac OSX proporciona un comando del terminal para verbalizar mensajes de voz, es el comando say. Este comando, entre sus parámetros, nos permite crear un fichero de audio en lugar de verbalizar el texto. Es la forma más rápida para convertir un texto a audio. Por esta razón utilizaremos para este ejemplo este comando del terminal.

Para poder añadir comandos del terminal en nuestro flujo de trabajo debemos utilizar una acción de tipo Ejecutar el script Shell. Para ello nos dirigiremos a la biblioteca de acciones, los usuarios de VoiceOver deben profundizar en el elemento vista dividida de descripción de acciones dividir grupo y, posteriormente, profundizar sobre vista dividida de biblioteca de acciones dividir grupo. Encontraremos una tabla de la biblioteca de acciones y una tabla de acciones. En la segunda tabla se mostrarán las acciones asociadas a la categoría que representa la primera tabla. Para nuestra acción debemos elegir la categoría Utilidades en la primera tabla, así podremos seleccionar el elemento Ejecutar el script Shell. Pulsa Enter para añadir esta nueva acción a nuestro flujo de trabajo.

Ahora debemos ajustar la nueva acción para que ejecute un pequeño script del terminal que convierta el documento de texto a un archivo de audio utilizando el comando say. La acción de ejecución del script, identificada por VoiceOver como Ejecutar el script Shell acción (2 de 2), debe recibir algunas modificaciones para que se adapte a nuestros requisitos. El parámetro Pasar datos de entrada:, con valor por defecto a string, debe tener el valor como argumentos. A continuación de dicho parámetro hay un campo de texto donde se ve un pequeño script de consola por defecto. El código por defecto del script es el siguiente:


for f in "$@"
do
echo "$f"
done

Podemos editar el código para modificar el comando echo o sustituir todo el script por el siguiente código:

Nuestro flujo de trabajo está terminado. Ahora debemos guardarlo utilizando la opciem>Guardar del menú Archivo de la barra de menú. Nos preguntará por un nombre para nuestro flujo de trabajo, podemos nombrarla como Convertir a voz

Una vez guardado pertenecerá a los servicios de Finder. Cerremos Automator y busquemos en Finder un archivo de texto plano. Al utilizar el menú contextual del archivo, los usuarios de voiceOver deben utilizar la combinación Control+ALT+Mayúsculas+M y el resto de usuarios hacer click con el botón derecho, nos aparece una opción con el nombre de nuestro flujo de trabajo. Al seleccionar esta opción comenzará a ejecutarse nuestro flujo de trabajo, visualmente se verá una rueda dentada trabajando, los usuarios de VoiceOver no tendrán ningún tipo de feedback. El proceso tardará dependiendo del tamaño del archivo que queramos convertir.

Hay muchas mejoras que se le pueden hacer a este flujo de trabajo: soportar documentos en formato RTF, poder seleccionar otra voz, añadir un feedback para los usuarios de VoiceOver, etc. Pero como iniciación a Automator creo que es suficiente.