killall Dock: tutte le finestre attive vengono ingrandite e visualizzate sul desktop

0

Ho scritto script python per cambiare lo sfondo del desktop.

Dopo aver cambiato lo sfondo utilizzando il seguente codice:

app('Finder').desktop_picture.set(mactypes.File(imageAddress))

Ho aggiunto

os.system("killall Dock")

Lo sfondo cambia con successo, ma tutte le finestre attive ma ridotte al minimo si ingrandiscono. La mia domanda è  Come posso aggiornare il mio Dock senza modificare lo stato delle finestre minimizzate / ingrandite?

    
posta nakulchawla09 18.06.2017 - 08:51
fonte

1 risposta

1

Non conosco alcun modo per impedire il ripristino di finestre ridotte al minimo quando si esegue un comando killall Dock comando , con qualsiasi metodo.

La lunga soluzione è enumerare tutti i processi applicativi con finestre visibili e creare un elenco di tutte le finestre ridotte a icona prima di eseguire killall Dock e quindi utilizzare l'elenco per ridistribuire in seguito. Non consiglio seriamente di farlo, ma è fattibile se vuoi passare il tempo a codificarlo.

Detto questo, perché non utilizzare solo un metodo che non richiede l'utilizzo di killall Dock e modifica immediatamente lo sfondo?

Ecco due esempi che utilizzano AppleScript:

tell application "Finder" to set desktop picture to POSIX file "/Library/Desktop Pictures/Milky Way.jpg"

o

tell application "Finder" to set desktop picture to alias "Macintosh HD:Library:Desktop Pictures:Sierra.jpg"

Dalla riga di comando, ad es. in Terminal o script basato su shell:

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

Ognuno di questi cambia immediatamente lo sfondo senza ulteriori operazioni.

    
risposta data 18.06.2017 - 12:22
fonte

Leggi altre domande sui tag