30 votos

¿Cómo puedo cambiar el fondo de escritorio con un comando de terminal?

Estoy tratando de agregar a mi OS X configuración de la secuencia de comandos un comando que establece que el fondo de la llanura gris oscuro, sin embargo, cuando se aplica, no sólo se establece para el monitor principal y adicionales monitores conectados actualmente a mantener su fondo actual y cualquier añadido a partir de entonces sigue recibiendo el espacio predeterminado de fondo. Lo que tengo hasta ahora es la siguiente:

# Change Desktop default BackgroundColor to grey
defaults write com.apple.desktop '{ Background = { default = {BackgroundColor = ( "0.2549019753932953", "0.4117647111415863", "0.6666666865348816" ); Change = Never; ChangePath = "/Library/Desktop Pictures/Solid Colors"; ChangeTime = 1800; DrawBackgroundColor = 1; ImageFileAlias = <00000000 00ce0003 00000000 c73804cd 0000482b 00000000 000c2624 000c2633 0000ca1c 0a310000 00000920 fffe0000 00000000 0000ffff ffff0001 000c000c 2624000c 25fc000a 0789000e 00280013 0053006f 006c0069 00640020 00470072 00610079 00200044 00610072 006b002e 0070006e 0067000f 000c0005 006f0073 00780038 00360012 00394c69 62726172 792f4465 736b746f 70205069 63747572 65732f53 6f6c6964 20436f6c 6f72732f 536f6c69 64204772 61792044 61726b2e 706e6700 00130001 2f00ffff 0000>; ImageFilePath = "/Library/Desktop Pictures/Solid Colors/Solid Gray Dark.png"; NewChangePath = "/Library/Desktop Pictures/Solid Colors"; NewImageFilePath = "/Library/Desktop Pictures/Solid Colors/Solid Gray Dark.png"; NoImage = 0; Placement = Crop; Random = 0; }; }; }'

¿Cómo se establece el valor predeterminado de la el fondo gris oscuro a través de un comando de terminal? ¿Cómo puedo cambiar todos los monitores ya configurado a gris a través de un comando de terminal?

27voto

Udi Puntos 6298

Ninguna de estas soluciones funciona en Mavericks ya porque Apple mover la configuración de un DB sqlite. Pero eso está bien porque ahora es más fácil, el png puede estar en cualquier lugar del sistema de archivos, y todos los escritorios (virtual) se actualizan.

 #!/usr/bin/env bash
 sqlite3 ~/Library/Application\ Support/Dock/desktoppicture.db "update data set value = '/path/to/any/picture.png'";
 killall Dock;

O, de añadir una función a su ~/.bash_profile y llamarlo como una terminal de comandos con cualquier no-ruta de acceso relativa.

#   Update all Wallpapers
function wallpaper() {
    sqlite3 ~/Library/Application\ Support/Dock/desktoppicture.db "update data set value = '$1'" && killall Dock 
}

wallpaper ~/path/to/any/picture.png

21voto

Julius Canute Puntos 26

Esto debería funcionar para usted:

osascript
tell application "Finder"
set desktop picture to POSIX file "/Library/Desktop Pictures/Solid Colors/Solid Gray Dark.png"
end tell

Hay varias otras maneras en esto de Mac Rumores hilo, pero su camino es el más fácil.

15voto

JustJeff Puntos 190

La forma más sencilla de hacerlo en una sola línea:

osascript -e 'tell application "Finder" to set desktop picture to POSIX file "/Library/Desktop Pictures/Earth Horizon.jpg"'

1voto

Gaurav Puntos 365

Los caminos deben ser debidamente referenciadas mediante POSIX file para /posix/paths o as alias con Old:Mac:Style:Paths.

Escoja su veneno...

POSIX ruta:

set desktopImage to POSIX file "/Library/Desktop Pictures/Solid Colors/Solid Gray Dark.png"
tell application "Finder"
    set desktop picture to desktopImage
end tell

Mac ruta:

set localLibrary to path to library folder from local domain as string
set desktopImage to localLibrary & "Desktop Pictures:Solid Colors:Solid Gray Dark.png" as alias

tell application "Finder"
    set desktop picture to desktopImage
end tell

Usted puede fácilmente convertir cualquier de los de arriba Applescripts en una terminal de comandos usando osascript [-e statement]:

osascript -e 'set desktopImage to POSIX file "/Library/Desktop Pictures/Solid Colors/Solid Gray Light.png"
tell application "Finder"
    set desktop picture to desktopImage
end tell'

Para configurar los escritorios múltiples, usted puede tratar de algo como tell application "System Events" to set picture of every desktop to "<path>". Desafortunadamente, esto parece ser roto en 10.7, así acabará obteniendo el siguiente error: Expected class name but found application constant or consideration.

0voto

Tom Leys Puntos 10453

Un script en perl para lograr el mismo:

#!/usr/bin/perl
use Cwd;

if ($#ARGV != 1) {
    die "\nUsage: ./changedesktop <filename> <startup disk> \nwhere <filename> may be    any JPEG, PNG, GIF, TIFF or PSD and <startup disk> is the name of your boot volume.\n\n";
}

my $filename = $ARGV[0];
my $bootdisk = $ARGV[1];
my $directory = getcwd;
my $file = $bootdisk.$directory."/".$filename;
$file =~ tr/\//:/;
system("osascript -e \'tell application \"Finder\"\' -e \'set theFile to \"$file\"\' -   e     \'set desktop picture to \(theFile as alias\)\' -e \'end tell'");

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X