Combinando el cuadro de diálogo Abrir/guardar archivo del Finder con Alfred

El cuadro de diálogo Abrir/Guardar archivo del Finder es realmente muy tonto (en términos de flexibilidad). Cuando busco un archivo o su ubicación, probablemente pueda encontrarlo mucho más rápido usando Alfred.

Sin embargo, en muchos casos, solo tiene que usar ese diálogo. No particularmente cuando abre archivos, pero por ejemplo cuando especifica el lugar para guardarlos.

Como solo uso el teclado (al menos el 99% del tiempo), me resulta tedioso iniciar Alfred y mostrar el archivo/directorio en Finder y arrastrarlo (o su ícono de proxy) al cuadro de diálogo en orden. para abrirlo/guardarlo.

¿Hay alguna manera de que pueda obtener un mecanismo de selección de archivos/carpetas de estilo de coincidencia aproximada solo con teclado para este cuadro de diálogo?

Podría imaginarme usando Alfred y AppleScript para eso, pero no sé por dónde empezar. El resultado final sería que podría seleccionar el archivo o la carpeta apropiados a través de Alfred.

Tenga en cuenta que:

  • Tengo Alfred Powerpack, por lo que AppleScript es posible.
  • Sé que Alfred tiene una acción "Abrir con...". Esto no es lo mismo.
  • Sé que puedo ir a las carpetas con G, pero es débil en comparación con lo que ofrece un shell real.
  • Sé que puedes buscar con Spotlight en ese diálogo, pero prefiero las capacidades de Alfred.

Actualización, 5 años después: vine a buscar una solución para esto y me topé con mi propia pregunta. También encontré este hilo en el que las personas sugirieron varios flujos de trabajo, pero el único que realmente funcionaría directamente ahora es un enlace muerto (¿no te encanta cuando las cosas de solo texto están alojadas en el Dropbox de alguien?).

Ni Alfred ni los diálogos de archivo son programables, por lo que dudo que puedas lograr algo menos que monstruoso solo con AppleScript.
No sabía que los diálogos eran absolutamente imposibles aquí, pero no estoy limitado a AppleScript. La parte de Alfred no debería ser el problema, supongo.

Respuestas (2)

Una vez que encuentre el archivo usando Alfred, puede copiar su ruta al portapapeles y pegar esa ruta en la herramienta Ir a la carpeta de los cuadros de diálogo abrir/guardar.

Encuentre su archivo en Alfred, presione la tecla de flecha hacia la derecha para ver la lista de operaciones para ese archivo, la tecla de flecha hacia arriba para ir a la última opción (Copiar ruta al portapapeles) y luego la tecla Intro para activar esa opción.
Vuelva al cuadro de diálogo abrir/guardar, presione cmd- shift- gpara abrir el cuadro de diálogo Ir a la carpeta, pegue la ruta y presione Intro. El archivo se seleccionará y puede presionar Enter para abrir/guardar.


Si está interesado en obtener más flexibilidad de los cuadros de diálogo Abrir/Guardar, le recomiendo la Carpeta predeterminada X. Es inmensamente poderoso y personalizable y podría eliminar la necesidad de soluciones como esta.
$35, prueba de 30 días

Desafortunadamente, no todos los cuadros de diálogo Ir a la carpeta aceptan la ruta pegada cuando se copia de Alfred (por ejemplo, Photoshop). Además, la ruta está entre comillas simples y necesitaría eliminar las comillas para que esto funcione.

Cinco años más tarde, encontré una solución utilizando un AppleScript más antiguo que se publicó aquí , que ya no funcionaba porque la ventana Ir a… usa un ComboBoxen lugar de un TextField.

He aquí cómo usar eso en Alfred:

  • Crear un nuevo flujo de trabajo
  • Insertar una acción de archivo
  • Inserte una acción Ejecutar NSApleScript y conecte los dos
  • Pegue el script a continuación
  • Guarde el flujo de trabajo y asígnele un nombre adecuado y un identificador de paquete.

Para usarlo en la práctica, espere a que se abra un cuadro de diálogo de selección de archivos, luego inicie Alfred, seleccione el archivo/carpeta que desee y ejecute la acción que acaba de crear.

Aquí está el guión:

on alfred_script(q)
set filePath to POSIX path of q as text

tell application "System Events"
    set theApplication to application processes whose frontmost is true
    set target to item 1 of theApplication
    set target to a reference to front window of target
    set target to a reference to front sheet of target
    delay 0.5
    tell target to keystroke "g" using {command down, shift down} -- Activate goto field
    delay 0.5
    tell target
        set value of combo box 1 to filePath
        delay 0.5
        key code 36 -- simulate pressing the Enter key
    end tell
end tell
end alfred_script