Tengo una colección de arte de 8000 fotos, las tengo divididas en carpetas de unas 200 cada una. Voy a utilizar Python para seleccionar aleatoriamente una de estas carpetas para que mi salvapantallas me muestre continuamente la obra de un nuevo artista en lugar de mezclar aleatoriamente todos los artistas. Para ello tengo que cambiar la carpeta que utiliza el salvapantallas con Python, que a su vez cambiará la carpeta mediante Terminal.
He leído este artículo y parece que se puede hacer mediante este comando:
https://krypted.com/mac-security/mac-setting-screen-saver-from-the-cli/
defaults -currentHost write com.apple.screensaver modulePath -string "/users/kylefoley/pictures/art/art 2/impressionism/claude monet/"
Pero eso no funcionó. Además, estoy usando MacOS 10.14
ACTUALIZACIÓN
Cuando introduzco: /usr/bin/defaults -currentHost read com.apple.ScreenSaverPhotoChooser
Obtengo el resultado esperado, es decir, la carpeta real que utiliza el salvapantallas. Cuando introduzco: /usr/bin/defaults -currentHost write com.apple.ScreenSaverPhotoChooser SelectedFolderPath -string "/users/kylefoley/pictures/art/art 2/impressionism/claude monet/"
a continuación, introduzca /usr/bin/defaults -currentHost read com.apple.ScreenSaverPhotoChooser
Me sale
{
CustomFolderDict = {
identifier = "/Users/kylefoley/Pictures/art/complete art 2";
name = "complete art 2";
};
SelectedFolderPath = "/users/kylefoley/pictures/art/art 2/impressionism/claude monet/";
SelectedSource = 4;
ShufflesPhotos = 1;
}
Lo cual es erróneo porque la ruta del CustomFolderDict['identificador'] debería ser la misma que la del SelectedFolderPath
Entonces hice una suposición y lo intenté:
/usr/bin/defaults -currentHost write com.apple.ScreenSaverPhotoChooser CustomFolderDict -identifier "/users/kylefoley/pictures/art/art 2/impressionism/claude monet/"
que dio como resultado Unexpected argument
. Si creo que podría averiguar cómo arreglar ese CustomFolderDict con la línea de comandos entonces eso podría resolver el problema.
ACTUALIZACIÓN 2
He introducido:
/usr/bin/defaults -currentHost write com.apple.ScreenSaverPhotoChooser CustomFolderDict -dict-add identifier "/users/kylefoley/pictures/art/art 2/impressionism/claude monet/"
/usr/bin/defaults -currentHost write com.apple.ScreenSaverPhotoChooser CustomFolderDict -dict-add name "claude monet"
Y aunque me dan
{
CustomFolderDict = {
identifier = "/users/kylefoley/pictures/art/art 2/impressionism/claude monet/";
name = "claude monet";
};
LastViewedPhotoPath = "";
SelectedFolderPath = "/users/kylefoley/pictures/art/art 2/impressionism/claude monet/";
SelectedSource = 3;
ShufflesPhotos = 1;
}
Cuando introduzco
/usr/bin/defaults -currentHost read com.apple.ScreenSaverPhotoChooser
El nuevo resultado es sólo una pantalla en blanco con el nombre de mi ordenador.
0 votos
Este artículo de OSXDaily muestra todas las ubicaciones comunes para los archivos de salvapantallas - supongo que si pones un softlink en el lugar correcto en ~/Librería apuntando a la ruta anterior podrían ser recogidos.
0 votos
Eso es para los salvapantallas que hacen algo raro como algún fractal, yo solo quiero que se desplace por un conjunto de imágenes que ya lo hace solo que no puedo averiguar la ruta a esa carpeta de imágenes.
0 votos
Oh, también puedes añadir tu propia carpeta - en Salvapantallas escoge un modo - por ejemplo Ken Burns - a la derecha bajo la fuente hay una opción de elegir carpeta - puedes seleccionar una carpeta de tu elección (y encontrará todas las imágenes allí).
0 votos
He dicho en mi post, que tengo unas 8000 fotos divididas en 200 carpetas. Quiero que las carpetas cambien aleatoriamente cada hora más o menos. Para ello necesito poner un script de Python en bucle infinito y que cada hora elija una nueva carpeta usando el módulo de subproceso. Necesito saber cómo cambiar las carpetas usando la terminal.
0 votos
No has dicho qué versión de OSX - he probado una idea de los foros JAMF - ver respuesta.
0 votos
Bien - aquí hay un ejemplo de cómo actualizar el diccionario
/usr/bin/defaults -currentHost write com.apple.ScreenSaverPhotoChooser CustomFolderDict -dict-add name XX
. Esto establece la clave de nombre al valor XX en CustomFolderDict ... quieres la otra clave, pero el mismo concepto.0 votos
Ver actualización 2...
0 votos
NOTA: Sólo hice el
defaults read ...
para ver su configuración sospecho que no tiene el salvapantallas correcto activado - ¿qué hace/usr/bin/defaults -currentHost read com.apple.ScreenSaver
dar (nota que es sin PhotoChooser) ... el mío tiene esta configuraciónmoduleName = iLifeSlideshows;
entre otros [yo usaría las Preferencias del Sistema para configurarlo, luego usaría la escritura en las teclas]0 votos
No estoy seguro de qué configuraciones en las Preferencias del Sistema debo cambiar.
0 votos
elija una de las imágenes de la izquierda - si ves una pantalla negra con el nombre de tu máquina significa que tienes seleccionado el de Mensajes (está justo al final de la lista de scrolly de la izquierda)..
0 votos
Sí, ya lo he arreglado. Alguna idea sobre cómo hacer que el ordenador cambie las carpetas del salvapantallas sólo con la línea de comandos. No veo por qué la pantalla se queda en negro cuando cambio el CustomFolderDict.
0 votos
Bien, he resuelto el problema. Hay que cerrar la aplicación de preferencias del sistema. Puedes tomar el crédito por la respuesta si quieres.
0 votos
Uf - me estaba preocupando - me produjo el mismo problema que a ti - pero ahora que tengo los prefs cerrados también es bueno.