Manteniendo el desktop limpio con Automator
Tags: automator, applescript, screenshots
Published: 2020-12-08 16:26:02

Hoy quise escribir algo diferente, pero relacionado a tecnología. He tenido un problema por mucho tiempo y decidí que era tiempo de resolverlo. 

<small>*Importante: Todos lo cambios que realicen son bajo su propio riesgo*</small>

## 🤬 Problema

Como todos, constantemente estoy tomando screenshots (capturas de pantalla) de comprobantes de pago, secciones en la aplicación o de cualquier cosa que necesite compartir. El problema es que mi desktop se empieza llenar de archivoooos y la realidad es que lo que siempre termino haciendo es moviendo todo a una carpeta. Algunas veces me tomo el tiempo en revisar las imágenes, renombrarlas y clasificarlas en carpetas, otras veces nada más borro todo y listo. 

Pero decidí subirme la mangas y encontrar alguna manera de mantener el desktop limpio.

![milhouse](https://dev-to-uploads.s3.amazonaws.com/i/5oe63yckcgdukfbryiys.gif) 

## 💡Idea

Descubrí hace poco que Mac OSx tiene un app que se llama Automator (pensaba que era un virus). Creo que es obvio lo que hace 😂, ayuda automatizar tareas repetitivas (si, existe y desde hace mucho tiempo).

## ⚙️ Solución

**Paso 1 Enviar las captura de pantalla a una nueva carpeta** 

Para mantener el desktop limpio, vamos a crear dos carpetas `screenshots/.tmp` y a cambiarla por defecto(el desktop).

Para ello, abre la terminal y corre el siguiente comando: 

`defaults write com.apple.screencapture location ~/Desktop/screenshots/.tmp`

Luego este comando para que el cambio sea aplicado

`killall SystemUIServer`

**Paso 2 Workflow**

Abrir Automator, crea un nuevo workflow de tipo folder action y replica estas acciones:

![worflow](https://dev-to-uploads.s3.amazonaws.com/i/eb37sf1tg1zm11qnzts0.png)
 
¿Que es lo que está pasando?

1. Se almacena la captura de pantalla
2. Lanzamos un popup que nos permita ingresar el nuevo nombre
3. ¿Ohhhh que es este código? ¿que clase de lenguaje es ese? bueno, les presento AppleScript, si un lenguaje de Apple, hecho para automatizar tareas. La documentación la pueden encontrar [acá]([https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/introduction/ASLR_intro.html](https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/introduction/ASLR_intro.html)) (honestamente no es la mejor)
Este código nos permitirá poner un nombre por defecto en caso de que no pongamos ninguno.

```jsx
on run {input, parameters}
	set d to short date string of (current date)
	set t to time string of (current date)
	
	if (input is {}) then
		return "Captura " & d & t as string
	end if
	
	return input as string
end run
```

4. Almacenamos el nombre en una variable que se llama `newName`

5. Obtenemos la captura de pantalla almacenada en el punto 1

6. Renombramos esa captura de pantalla usando el nuevo nombre

7. Movemos el screenshot un nivel más arriba `/screenshots`

Importante

- Tomen en cuenta las uniones que hay entre acciones, esto permite pasar el resultado de una a otr acción.

**Paso 3 Activar workflow**

1. Busca la carpeta `.tmp` 
2. Click derecho, Folder Action Setup

![blogpost 1](https://dev-to-uploads.s3.amazonaws.com/i/orc9ftqrh1efogmgtxxl.png)

3.Marquen la opcion de Folder Actions y busque el nuevo workflow

![blogpost 3](https://dev-to-uploads.s3.amazonaws.com/i/elxm43stqe4ce7opbk96.png)
  
Funciona de maravilla, pero el único pequeño problema es que toma entre 1-3 secs en correr el workflow. Es cuestión de acostumbrase. Una manera de mejorarlo, podría ser correr manualmente el workflow, y que active automáticamente el herramienta para tomar screenshots, y luego las mismas tareas.

Este flujo no necesariamente se va adaptar a todas las necesidades, pero tienes toda una paleta de funcionalidades para resolver diferentes problemas.

—

¿Quieres invitarme a un cafecito?

[![0_qyvuaXnWMWm33Ea8](https://dev-to-uploads.s3.amazonaws.com/i/5t90yzlkmfy7vnth7u58.png)](https://www.buymeacoffee.com/marianocodes)