Desarrollo de workflows en Alfred App por @sarofr

Autor: | Última modificación: 9 de abril de 2024 | Tiempo de Lectura: 5 minutos
Temas en este post:
¿Sabes de qué va el desarrollo de workflows en Alfred App? Alfred para quien aún no la conozca (por sorprendente que esto pueda ser), es una aplicación enfocada a mejorar la productividad. Permite lanzar aplicaciones, buscar y abrir ficheros en nuestro Mac e incluso hacer búsquedas en Internet. Se trata, a grosso modo, de un Spotlight supervitaminado y mineralizado. Se trata de una aplicación gratuita a la que, si se quiere, se pueden aumentar sus posibilidades mediante la compra del PowerPack. La versión 1 está disponible en el App Store, pero debido a las restricciones que impone Apple en su tienda de descargas, la versión 2 sólo está disponible desde su propia web Sin duda, la posibilidad de usar de flujos de trabajo (workflows) ya vale, de por sí sola, las 17 libras (unos 21,5€) que cuesta la licencia individual aunque existen otras licencias.

Alfred vs Spotlight en OSX Yosemite

Aunque, tras  la presentación de OSX Yosemite en la pasada WWDC, muchos auguraron el fin de Alfred en pro del “nuevo” Spotlight, no parece que a Andrew y Vero Pepperell  (equipo que está detrás de Alfred) les haya supuesto preocupación alguna (al menos aparentemente) si nos fiamos del post que publicaron en su blog y que traduzco a continuación:

Hay que recordar que el objetivo principal de Spotlight es buscar en tus ficheros y un pequeño número de fuentes web. Mientras que el objetivo principal de Alfred es hacerte más productivo en tu Mac con excepcionales y potentes funcionalidades como historial de portapapeles, comandos de sistema, reproductor iTunes Mini, favoritos de 1Password, integración con Terminal,  flujos de trabajo creados por el usuario a medida y personalizables y mucho, mucho más. Estás funcionalidades permiten moldear Alfred a tus necesidades, y esto no cambia sin importar si usas las versión gratuita de Alfred o el PowerPack. Y tengo que decir que, personalmente, estoy bastante de acuerdo con los argumentos que exponen.

Sin desmerecer al nuevo Spotlight, creo que le falta un largo camino como para llegar a eclipsar a Alfred. Pero ya sabemos como se las gasta Apple… Es en estos flujos de trabajo en lo que vamos a centrar el contenido de este post y donde veremos que, con poco esfuerzo, se pueden conseguir cosas bastante interesantes.

Workflows

Como ya hemos dicho, para poder crear y/o importar workflows personalizados es necesario haber comprado previamente el PowerPack. Antes de ponernos a desarrollar nuestro propio workflow vale la pena perder 5 minutos echando un vistazo a http://www.packal.org/ y  http://www.alfredworkflow.com/ por aquello de no reinventar la rueda. Si no hemos encontrado nada que nos sirva (o asemeje) a lo que necesitamos, o simplemente nos apetece sentir la satisfacción que produce el DIY, entonces lo que tendremos que hacer es crear nuestro propio workflow. Para procesos sencillos Alfred ofrece una serie de plantillas que se pueden utilizar como punto de partida aunque, si nos va el rollo hard, también podemos elegir el “workflow en blanco”. Una vez elegido una plantilla o el workflow en blanco tenemos cuatro objetos que podemos añadir: Objects_Desarrollo de workflows en Alfred App  

Triggers

Son el punto de partida de cualquier workflow, se encargan de capturar el evento que lanzará la ejecución del mismo. Disponemos de cinco tipos: Triggers

Hotkey

Permiten ejecutar acciones sin necesidad de mostrar Alfred, o mostrar Alfred con información predefinida. Veamos con un ejemplo muy sencillo: queremos que cuando se pulse cierta combinación de teclas se nos abra la web de Agbo per en un navegador en concreto (en este caso le diremos que sea Chrome). Lo primero que haremos será añadir un objeto Hotkey. Definiremos la combinación de teclas que utilizaremos y le decimos que sea Pass through to workflow para que de esta manera se lance sin necesidad de mostrar Alfred y, en este caso, Argument None: Hotkey Una vez definida la Hotkey añadimos una Action (lo veremos en el próximo post pero lo necesitamos para probar ahora) de tipo Open URL. Definiremos la URL que queremos que se muestre y en que Browser: OpenURL Por último, para enlazar los dos objetos, situamos el puntero del ratón cerca del lateral derecho de la Hotkey y cuando aparezca la «protuberancia» pulsamos y arrastramos hasta la Action: LinkObjects Podemos comprobar que si pulsamos ^???C se abre la URL definida, en Chrome. Para acabar con las Hotkeys vamos a realizar un pequeño cambio de manera que ahora sí se muestre Alfred. Se le pasará un prefijo «define» (que invoca un workflow interno) y el texto que tengamos seleccionado en el momento: Hotkey2 Comprobamos que si seleccionamos un texto y pulsamos ^???C , se lanza Alfred mostrando la definición para el texto seleccionado: Define

External

Los External Triggers ofrecen un modo para que, usando AppleScript, aplicaciones externas le digan a Alfred qué hacer. Siguiendo con el ejemplo anterior, añadimos el objeto external con el Identifier que queramos y vemos como Sample Code  se rellena automáticamente. Este es el código de deberemos utilizar para invocar la ejecución del workflow desde cualquier aplicación externa: External LinkObjects2 Usando el Editor AppleScript podemos comprobar que, efectivamente, se lanza la URL en Chrome:

File Action

Los File Action triggers  se añaden a la lista de resultados de manera que, cuando se selecciona un fichero en Alfred, se pueden ejecutar acciones personalizadas sobre él. Por ejemplo, vamos a crear un workflow que seleccionando un fichero (sólo .jpg o .png)  lo copie a una carpeta determinada dentro de nuestra carpeta de Dropbox. Empezamos añadiendo el objeto File Action. Para definir el tipo de ficheros que se aceptan arrastramos un fichero de cada uno de los tipos (en este caso JPG y PNG): FileAction Para este ejemplo, además, crearemos un Action de tipo Run Script (lo veremos en el próximo post) que se encargará de copiar el fichero: Unimos el Trigger con la Action… LinkObjects3 … y comprobamos que si lanzamos Alfred buscando un fichero de tipo JPG o PNG nos aparece la nueva acción pero no así si buscamos un fichero de tipo TXT: AlfredFileAction AlfredFileAction2

Contact Action

No vale la pena perder mucho tiempo en este ya que es prácticamente idéntico que para el File Action pero para campos concretos de un contacto. Por ejemplo, al seleccionar el número de teléfono del contacto podemos hacer que se inicie una llamada vía FaceTime al usuario. LinkObjects4Contact Action

Fallback Search

 Por último, las Fallback Searches permiten añadir workflows personalizados al desplegable de búsqueda. En nuestro caso, vamos a buscar un término en la web de la RAE. Para ello, como siempre, añadimos el objeto (en este caso Fallback Search):   FallbackSearch Definimos la Action Open URL: OpenURL2 Las enlazamos: LinkObjects5 Por último y MUY IMPORTANTE porque no está demasiado bien explicado en la documentación y, si no, no funciona bien todo esto: Features -> Default Results -> Setup fallback results y añadimos nuestra búsqueda Workflow Trigger -> Buscar {query} en la RAE. Features Ahora, si lanzamos Alfred y escribimos una palabra que no reconoce nos permitirá abrirla en la web de la RAE: BuscarEnRAE

Inputs

Los Inputs son los diferentes «valores» de entrada que se pueden pasar a un workflow. Disponemos de tres tipos:

Keywords

Los Keywords son los valores de entrada más comunes o, mejor dicho, más comúnmente usados en Alfred. El funcionamiento es muy sencillo: una palabra que provoca que se lance un workflow. Esta palabra puede ir acompañada o no de uno o más parámetros (separados por espacio). Veamos un ejemplo. Queremos que al escribir «term» (sin comillas) en Alfred y una path nos lo abra en la aplicación Terminal. Para ello y como siempre, añadimos el objeto: Keyword Añadimos una Action y unimos los objetos: AppleScriptLinkObjects Compramos que si lanzamos Alfred y escribimos «term [path]» nos abrirá la aplicación Terminal en la ruta indicada: AlfredTerminal

File Filter

Como su propio nombre indica, permite filtrar la búsqueda de ficheros que se pasan como parámetro al workflow. Por ejemplo, vamos a filtrar para que sólo aparezcan ficheros de tipo JPG: FileFilter Si lanzamos Alfred y escribimos «img», veremos como aparece nuestro filtro: Alfred

Script Filter

Por último, los Script Filters se utilizan para la creación de workflows basados en scripts más complejos. En el próximo post veremos como hacer cosas más «virgueras» utilizando Actions más complejas y Outputs.