A mí también me molesta este nuevo comportamiento. No es realmente una respuesta, pero aquí hay un fragmento del AppleScript que estoy usando para guardar las pestañas abiertas en un array fot
tell application "Finder"
set windowCount to number of windows
end tell
set fot to {}
tell application "Finder"
repeat with x from 1 to windowCount
set tn to (target of window x as alias)
copy tn to the end of the fot
end repeat
end tell
La matriz puede entonces volcarse a un archivo temporal, por ejemplo foo
, donde foo
sigue el formato de Applescript de las rutas de archivos posix utilizando dos puntos, por ejemplo set foo to "full:path:to:file"
entonces
try
set dataStream to open for access file foo with write permission
set eof of dataStream to 0
write fot to dataStream starting at eof as list
close access dataStream
on error
try
close access file foo
end try
end try
A continuación, puede leer el archivo (por ejemplo foo
) en un momento posterior para restaurar las pestañas,
set foo to "full:path:to:file"
set readdat to (read file fphds as list)
repeat with i from 1 to length of readdat
set tb to item i of readdat
tell application "Finder"
activate
open tb
end tell
end repeat
El orden de las pestañas abiertas podría cambiarse (creo que el orden es la pestaña actual seguida de las pestañas ordenadas por su fecha de creación), y que yo sepa, a diferencia de safari, el finder no tiene las propiedades de las pestañas accesibles a AppleScript (para AppleScript, las pestañas y las ventanas del finder son indistinguibles). Estoy usando el snippet con hammerspoon (una herramienta de scripting lua) para guardar/restaurar manualmente usando atajos de teclado. Hammerspoon también tiene api para detectar la ventana que pierde el foco (desactivar) por lo que esto puede ser potencialmente automatizado.
Si la velocidad no es una preocupación, usted puede tratar de hacer todo el asunto en hammerspoon (sin necesidad de archivo temporal, manteniendo las órdenes de tabulación, pero puede tomar un segundo o dos. código primitivo, puede romper en algunos casos de borde):
get_finder_ctab = [[tell application "Finder"
set tn to (target of the front window as alias)
end tell
get POSIX path of tn
]]
tab_save = {}
function h_save_finderTab()
fapp = hs.application.get'Finder'
hs.application.launchOrFocus("Finder")
num_ftab = fapp:focusedWindow():tabCount()
tab_save = {}
for i=1, num_ftab do
fapp:focusedWindow():focusTab(i)
runokay,tab_save[i],_ = hs.osascript.applescript(get_finder_ctab)
end
end
function h_restore_finderTab()
for _,t in ipairs(tab_save) do
hs.open(t)
end
end
Alternativa
Si se trata de una cosa de una sola vez como hacer clic en la cruz roja por accidente, también puede tratar de mantener pulsada la tecla de opción y luego haga clic en el icono del buscador en el muelle, a continuación, seleccione "Relanzamiento", que puede desencadenar Finder para leer el estado guardado (me parece que a veces puede no ser hasta la fecha y puede restaurar una antigua lista de pestañas)