Es posible cambiar el fondo de pantalla a través de la línea de comando con el comando
osascript -e 'tell application "Finder" to set desktop picture to POSIX file "<absolute_path_to_file>"'
donde, por supuesto, <absolute_path_to_file>
es solo un marcador de posición para la ruta completa de la imagen que se utilizará como fondo.
Estoy intentando usar este comando para escribir una función zsh, pero tengo algunos problemas para descubrir cómo escapar del nombre de la variable (por ejemplo $1
) para obtener una sustitución adecuada. Por ejemplo, usando la función
change_wallpaper () { osascript -e 'tell application "Finder" to set desktop picture to POSIX file "$1"' }
y luego
$ change_wallpaper /Users/noibe/Wallpapers/wallpaper.jpg
no funciona y me sale el error:
33:48: execution error: Finder got an error: AppleEvent handler failed. (-10000)
probablemente porque $1
no se sustituye por la ruta sino que se pasa como una cadena literal. ¿Cómo puedo hacer que esto funcione?
Respuesta1
La expansión de parámetros no puede realizarse entre comillas simples.
Intentar:
change_wallpaper() {
osascript -e 'tell application "Finder" to set desktop picture to POSIX file "'"$1"\"
}
Respuesta2
Logré hacerlo funcionar, escapando de las comillas dobles y cambiando las comillas simples por comillas dobles:
change_wallpaper() {
osascript -e "tell application \"Finder\" to set desktop picture to POSIX file \"$1\""
}