¿Existe algún tipo de script o automatización que pueda ejecutar que me dé la posibilidad de que ciertas apps se abran al iniciar sesión pero sólo en determinados días? Por ejemplo quiero poder abrir Mail, Slack, Notion y Zoom automáticamente los días laborables pero no los fines de semana. No es un problema grave pero estaría bien. Gracias.
Respuestas
¿Demasiados anuncios?Hay un par de maneras de enfocar esto, pero requieren eliminar los elementos de Login items y patearlos de una manera diferente. Aquí están sus opciones:
-
Utilizar AppleScript . Sustituirías tus elementos de inicio de sesión por un único AppleScript que comprueba el día de la semana e inicia las aplicaciones adecuadamente. No es demasiado complicado conseguirlo. Aquí hay algunos enlaces excelentes que pueden ayudarle a empezar:
-
Utilizar un LaunchAgent gestionado por
launchd
(mi método preferido). No utilizarías Elementos de inicio de sesión para ninguna de estas aplicaciones. Aunque un poco más complejo que un AppleScript (OMI), le da un control más granular como cada aplicación se convierte, en esencia, un servicio que puede controlar individualmente.Este post es excelente, launchd plist formato para ejecutar un comando a una hora específica en un día de la semana que detalla cómo crear el .plist y en qué directorio colocarlo para obtener los resultados deseados (
~/Library/LaunchAgents
se asemejaría mucho a la función Elementos de inicio de sesión). Véase también ¿Es posible permitir el uso de una aplicación o programa durante un tiempo específico en un Mac? Se trata de permitir que las aplicaciones sólo se ejecuten en ciertos días (por lo tanto, ignora la parte de Gatekeeper), pero proporciona un excelente ejemplo de cómo estructurar el .plist para acciones específicas del día.
Pega el siguiente código AppleScript en un nuevo documento script Editor.app y ejecuta el código para comprobar que funciona y luego guárdalo como .app.
A continuación, sólo tienes que ir a Preferencias del Sistema y añadir tu nueva .app a los Elementos de inicio de sesión.
property theWeekdays : {"Monday", "Tuesday", "Wednesday", "Thursday", "Friday"}
property theApps : {"Mail", "Slack", "Notion", "Zoom"}
set currentWeekday to weekday of (get current date) as text
if currentWeekday is in theWeekdays then
repeat with thisApp in theApps
try
tell application thisApp to activate
end try
delay 10
end repeat
end if