Solución # 2
Mi solución preferida utiliza applecript para acceder directamente a "Downloads.plist" (sin scripts de shell) y coloca un enlace en la barra de favoritos de Safari para su conveniencia.
Primero guarde estos scripts en la carpeta "~ / Library / Scripts / Folder action scripts /", luego adjúntelos
(menú contextual: configurar acciones de carpeta) a una nueva "Carpeta1" en algún lugar en el fondo de tu Mac.
Para activarlos, direccionará un "Folder2" ficticio (sin sentido) dentro de "Folder1" a través de este marcador:
file:///Path/to/first/Folder1/Folder2 [place link in your favorites bar!]
Ahora, lo que está pasando:
- El enlace de la barra de herramientas sobre el que se hace clic abrirá "Folder1" porque la "Folder2" llamada está dentro.
- Por lo tanto, se lanzan AMBOS scripts adjuntos, # -1 cerrando la ventana marcada "Folder2" ...
- ... siguiente ordenando "Eventos del sistema" para obtener todos los elementos de "DownloadEntryPath" de Safari.
- Estas rutas se acortan al nombre más la carpeta principal y se recopilan en una "alerta de diálogo".
- (Esperando la "ventana de diálogo" :) La secuencia de comandos # -2 inmediatamente en la ventana emergente lo mueve hacia la parte superior derecha.
on opening folder this_folder
tell application "Finder" to close front window
tell application "System Events"
set the plist_path to "~/Library/Safari/Downloads.plist"
set the plist_file to property list file plist_path
set downloadItems to property list items of property list item ¬
"DownloadHistory" of plist_file
set DL_display to ""
set AppleScript's text item delimiters to {"/"}
repeat with i from 1 to number of items in downloadItems
set DL_item to (get text items -2 thru -1 of ((value of ¬
property list item "DownloadEntryPath" of property ¬
list item i of property list item 1 of plist_file) as string))
set DL_display to DL_display & return & "[" & ¬
text item 1 of DL_item & ":]" & return & text item 2 of ¬
DL_item & return
end repeat
tell application "Finder" to display dialog DL_display as string ¬
buttons {"Close"} default button 1 -- NEW: tell appl. "Finder" to
end tell
end opening folder
Si adjunta este segundo "script de acción de carpeta", moverá el "cuadro de diálogo" a la derecha / arriba de su pantalla:
on opening folder this_folder
tell application "Finder"
set screenRgt to bounds of the window of desktop
set rightEdge to (item 3 of screenRgt) - 425
end tell
tell application "System Events" to tell process "Finder"
repeat while not (exists window "Recent downloads")
end repeat
delay 0.1 -- wait (and make sure...) for "dialog window" !
set position of window "Recent downloads" to {rightEdge, 61}
end tell
end opening folder
El único inconveniente de esta solución IMO es que, por un momento, cada una de las carpetas abiertas y la alerta "parpadean" en su pantalla ...