
Blog · · Actualizado el · Por Matt Senter
Lluvia detrás de tus ventanas, sin grabar la pantalla
Weatherling no necesita permiso de Grabación de pantalla ni ningún otro para poner lluvia detrás de tus ventanas. Nunca ve lo que hay en la pantalla. Usa el contorno de cada ventana, que macOS comparte con todas las apps, y funciona en el App Sandbox de Apple sin acceso a la red.
Puede parecer demasiado bueno. Cuando ves una gota aterrizar en una barra de título, bajar por el lado y ocultarse tras la ventana de delante, es razonable preguntarse cómo sabe la app qué hay en pantalla. La respuesta breve es que no lo sabe. Sabe dónde están las cosas, y eso es todo lo que necesita la lluvia.
Geometría de ventanas, no su contenido
Cualquier app de Mac puede pedir a macOS una lista de las ventanas visibles. Weatherling lo hace mediante CGWindowListCopyWindowInfo, la misma llamada pública de la que parten gestores de ventanas y herramientas de captura. Lee cinco cosas de cada ventana, y nada más:
- Límites. Dónde está la ventana y cuánto mide.
- Capa. Si es una ventana normal, un menú o parte de la interfaz del sistema.
- Alfa. Si es visible o completamente transparente.
- Número de ventana. Un identificador para seguir la ventana al moverse.
- Identificador del proceso propietario. Un número usado solo para distinguir las ventanas de Weatherling de las tuyas.
La lista llega ordenada de delante hacia atrás, la otra mitad del truco. Una gota que pasa junto al borde de una ventana delantera y cae en otra más alejada simplemente se comprueba contra el siguiente contorno de la lista. Así llueve delante de una ventana y detrás de otra sin que la app vea un solo píxel de ninguna.
La lista también ofrece el título de la ventana, el nombre de su app y si se está compartiendo. Weatherling nunca lee esos campos. La lluvia no los necesita, y dejarlos de lado es parte de lo que evita pedir permisos.
Por qué los títulos necesitarían Grabación de pantalla
Desde macOS Catalina, el título de la ventana de otra app cuenta como contenido de pantalla. Puede incluir el asunto de un correo, el nombre de un documento o la página que lees, así que macOS solo facilita títulos a las apps autorizadas en Grabación de pantalla. Sin ese permiso, el campo vuelve vacío.
Ese límite define el diseño. Una app que quisiera comportarse de forma distinta ante tu correo y tu editor necesitaría títulos o capturas y tendría que pedir permiso. A Weatherling no le importa qué es una ventana, solo dónde está, así que permanece del lado que no necesita avisos. Tampoco solicita Accesibilidad: no lee nada dentro de otras apps ni las controla. Sin vigilar el teclado, acceder a la entrada ni automatizar.
En un sandbox, sin extras
Las apps del Mac App Store usan el App Sandbox de Apple y declaran lo que necesitan mediante autorizaciones: red, cámara, archivos fuera de su contenedor y demás. Weatherling declara com.apple.security.app-sandbox ycom.apple.security.files.user-selected.read-write. Esta última permite guardar una tarjeta de puntuación en el archivo que elijas en el diálogo Guardar. (La firma de Apple añade además los identificadores de app y equipo a todas las apps del App Store, sin conceder acceso adicional).
Lo ausente importa tanto como lo presente. Una app en sandbox sin autorización de cliente de red no puede abrir conexiones salientes, así que macOS impone que Weatherling no haga solicitudes; no es solo una promesa. No hay cuenta, análisis ni servicio de informes de fallos. Los ajustes de intensidad y viento viven en el almacenamiento aislado de la app en tu Mac.
El sonido funciona igual. La grabación viene incluida en la app y se desvanece cuando estás en una llamada. Weatherling lo detecta comprobando si alguna app usa el micrófono: un sí o no que macOS informa sobre el dispositivo. Nunca abre el micrófono, captura audio ni solicita acceso a él.
Compruébalo tú
No tienes que fiarte sin más. Tres comprobaciones llevan aproximadamente un minuto:
- Abre Ajustes del Sistema, Privacidad y seguridad y Grabación de pantalla (Grabación de pantalla y audio del sistema en versiones recientes). Weatherling no aparece porque nunca lo ha solicitado.
- Comprueba Accesibilidad y Micrófono en la misma sección. Tampoco aparece.
- En Terminal, ejecuta
codesign -d --entitlements - /Applications/Weatherling.app. Aparte de los identificadores de app y equipo que añade Apple, las autorizaciones son App Sandbox y acceso a archivos elegidos por el usuario para guardar tarjetas. No hay autorización de red.
Si una versión futura necesitara más, primero verías un aviso. macOS no permite adquirir estos permisos en silencio.
El coste de observar ventanas
Leer la lista de ventanas es barato. Weatherling la solicita unas diez veces por segundo cuando están quietas, y durante breves momentos más rápido si algo se mueve, para que el agua siga una ventana arrastrada sin quedarse atrás. Entre comprobaciones solo conserva los contornos, que desaparecen en cuanto se cierra la ventana.
Una decoración de escritorio no debería exigir negociar la privacidad. Activa la lluvia, ajústala a tu ánimo y vuelve a lo que hacías. Weatherling no necesita saber qué era.
Puedes probarlo sin instalar nada en la página principal, donde las ventanas arrastrables representan la misma idea en el navegador. Los detalles de lo que almacena y lo que no están en la política de privacidad, y por qué merece la pena está en Por qué la lluvia en el escritorio puede resultar relajante.