Alternar archivos ocultos sin reiniciar el buscador

1

Soy bastante nuevo aquí, y busqué una respuesta a esta pregunta, y encontré algunas respuestas pero ninguna parecía funcionar para mí.

Quiero poder ejecutar un script de Apple que alterne los archivos ocultos y actualice inmediatamente todas las ventanas abiertas del buscador.

Usando los scripts en estos hilos:

enlace

enlace

enlace

Se me ha ocurrido algo que se parece a esto:

try
    set state to (do shell script "defaults read com.apple.finder AppleShowAllFiles") as boolean
on error
    set state to false
end try

do shell script "defaults write com.apple.finder AppleShowAllFiles " & (not state)

tell application "Finder"
    set theWindows to every window
    repeat with i from 1 to number of items in theWindows
        set this_item to item i of theWindows
        set theView to current view of this_item
        if theView is list view then
            set current view of this_item to icon view
        else
            set current view of this_item to list view
        end if
        set current view of this_item to theView
    end repeat
end tell

Sin embargo, a partir de mi versión de OS X (10.11.5), esto no activa los archivos ocultos. Necesito relanzar el buscador para ver los cambios. Sé cómo hacer esto en el script con: do shell script "killall Finder" , pero no sé cómo recuperar todas mis ventanas actuales y volver a colocarlas donde estaban.

TL; DR : ¿Existe una buena forma de forzar la actualización de las ventanas del Finder sin tener que reiniciar el Finder? O si no lo hay, ¿cómo puedo mantener mis ventanas después de reiniciar?

    
pregunta user2189005 23.06.2016 - 19:57

1 respuesta

1

El truco de cambiar de vista funcionó bien en Yosemite pero ya no en El Capitán.

He tenido que volver a lo simple, pero molesto

set newHiddenVisiblesState to "YES"
try
    set oldHiddenVisiblesState to do shell script "defaults read com.apple.finder AppleShowAllFiles"
    if oldHiddenVisiblesState is in {"1", "YES"} then
        set newHiddenVisiblesState to "NO"
    end if
end try
do shell script "defaults write com.apple.finder AppleShowAllFiles " & newHiddenVisiblesState & "; killall Finder"

En lugar de la versión mucho mejor que funcionaba antes

set newHiddenVisiblesState to "YES"
try
    set oldHiddenVisiblesState to do shell script "defaults read com.apple.finder AppleShowAllFiles"
    if oldHiddenVisiblesState is in {"1", "YES"} then
        set newHiddenVisiblesState to "NO"
    end if
end try
do shell script "defaults write com.apple.finder AppleShowAllFiles " & newHiddenVisiblesState    

tell application "Finder"
    set theWindows to every Finder window
    repeat with i from 1 to number of items in theWindows
        set this_item to item i of theWindows
        set theView to current view of this_item
        if theView is list view then
            set current view of this_item to icon view
        else
            set current view of this_item to list view

        end if
        set current view of this_item to theView
    end repeat
end tell

Honestamente, me encantaría que esta respuesta esté mal

Por cierto, Windows debería volver a abrirse exactamente donde estaban, pero no si los tienes repartidos en más de un Espacio; eso no es posible.

    
respondido por el Tetsujin 23.06.2016 - 20:28

Lea otras preguntas en las etiquetas