6 votos

¿Es posible cambiar el ancho de una columna de la vista de lista del Finder en AppleScript?

Quiero crear un AppleScript que abra cinco carpetas predefinidas en cinco pestañas diferentes en una nueva ventana del Finder con límites predefinidos y que luego cambie la pestaña activa de esta ventana a la pestaña uno. También me gustaría que se mostraran los nombres de archivo completos (de los archivos de las cinco carpetas) sin ningún truncamiento. Yo uso exclusivamente la vista de lista en el Finder.

¿Puede cumplirse esta última condición en AppleScript o automatizarse de alguna manera?

El ancho de la columna "Nombre" por defecto es demasiado estrecho; los nombres completos de mis archivos siempre quedan cortados. Para solucionarlo, cada vez que abro cualquier carpeta, tengo que arrastrar manualmente el separador "Nombre" dramáticamente hacia la derecha o hacer doble clic en el propio separador (que ajusta automáticamente el ancho para mostrar la entrada más larga en su totalidad).


Tengo entendido que es imposible para cambiar el ancho por defecto de la columna "Nombre" de la Vista de Lista en un Mac. De lo contrario, podría simplemente establecer el ancho por defecto de esta columna para que sea mayor y este ancho se establecería como el predeterminado en todas las carpetas.

  • Manteniendo pulsada la tecla option mientras se arrastra un separador de columna (para guardar su anchura) es infructuoso.

  • Intenté establecer el tamaño de columna más amplio como predeterminado pulsando command + J en el Finder y seleccionando "Usar como predeterminado". Pero, esto no funcionó.

  • He probado a aumentar todos los valores de anchura de "Nombre" en mi com.apple.finder.plist y luego volver a guardar el archivo, como se describe en el comentario más reciente del usuario azeotropo (de 2012) de esta página web (de 2003) . Pero, la antigua y estrecha anchura del "Nombre" permanece.

OS X El Capitan, versión 10.11.6.

3voto

Seif Puntos 121

La respuesta al tema de su pregunta "¿Es posible cambiar el ancho de una columna de la vista de lista del Finder en AppleScript?" es SÍ. La respuesta a tu pregunta sobre el uso de AppleScript para establecer el ancho de la columna de nombres para que sea lo suficientemente grande como para mostrar los nombres sin truncarlos es también sí. No estoy seguro de cómo manejar las pestañas en la ventana del Finder, pero parece que ya tienes un script que se ocupa de las pestañas.

Una gran sorpresa (para mí) fue que tuve que cerrar y volver a abrir la ventana del Finder para ver el cambio.

Aquí hay un script que opera en la ventana más frontal del Finder. El ancho de la columna "Nombre" se establece en 7,5 * (número de caracteres del nombre más largo de la ventana). No es el ancho perfecto, pero a mí me funciona siempre que utilice texto de 12 puntos en el Finder. Estamos estableciendo el ancho de la columna a un cierto número de píxeles, y cada carácter toma un número diferente de píxeles ya que el Finder no está usando una fuente de ancho fijo, por lo que no podemos ser exactamente correctos al establecer el ancho. Pero 7,5 * el número de caracteres del nombre más largo parece funcionar bastante bien. Puedes ajustarlo, por supuesto.

tell application "Finder"
    activate
    set the_window to window 1
    set current view of the_window to list view
    set the_options to list view options of the_window
    set the_name_column to first column of the_options whose name is name column
    set the_items to name of every item of the_window
    -- get the longest name (count of characters)
    set longest_name to 0
    repeat with I from 1 to count of the_items
        --check for invisible files, which we don't need to consider
        if character 1 of item I of the_items is not "." then
            if (count of characters of item I of the_items) > longest_name then
                set longest_name to count of characters of item I of the_items
            end if
        end if
    end repeat
    -- this only works if the text size is 12. The multiplier 7.5 could be changed
    -- if the text size is something else. 
    set desired_width to longest_name * 7.5
    set width of the_name_column to desired_width
    -- we have to close and reopen the window in order to see any changes.
    -- there might be a "refresh window" command but I don't know it.
    set the_target to target of the_window
    close the_target
    open the_target
end tell

2voto

wch1zpink Puntos 11

Este código siguiente establecerá la columna del nombre, en la vista de lista, para que se ajuste al tamaño del nombre de archivo más largo en cada ventana abierta o en cada pestaña de cada ventana de la aplicación Finder. Si no hay ventanas del Finder abiertas, se abrirá una nueva ventana del Finder en la vista de lista y se ajustará el ancho de la columna de nombres de forma adecuada.

Este código requiere la utilidad de terceros, Haga clic en .

"Clic" es la abreviatura de " C ommand- L ine I nterfaz Haga clic en ". Es una pequeña aplicación de shell/Terminal que emulará los clics del ratón o series de clics del ratón (incluyendo los dobles clics y los clics de control) en coordenadas arbitrarias de la pantalla. Además, permite mover el ratón, obtener las coordenadas actuales del ratón, pulsar teclas modificadoras, etc.

Su descarga es gratuita, pero es donationware y es fácil de instalar.

En mi sistema tengo cliclick en el siguiente directorio: /usr/local/bin/ . Debido a esta ubicación, en mi código AppleScript y en la aplicación Terminal, necesito utilizar la ruta completa a cliclick para llamar al comando. Por ejemplo:  do shell script "/usr/local/bin/cliclick rc:."  En AppleScript se dice cliclick para hacer clic con el botón derecho.

A mí me funciona con la última versión de macOS Mojave.

El x y y utilizadas en el siguiente script se establecieron con una resolución de pantalla de 1280 x 800.

global thisWindow

tell application "Finder"
    activate
    if not (exists of Finder window 1) then
        make new Finder window to path to documents folder
    end if
    set theWindows to name of windows
    repeat with i from 1 to count of theWindows
        set thisWindow to item i of theWindows
        set index of Finder window thisWindow to 1
        tell its Finder window thisWindow
            set currentView to current view
            if currentView is not list view then
                set current view to list view
            end if
        end tell
        my setColumnWidth()
    end repeat
end tell

on setColumnWidth()
    tell application "System Events"
        repeat while not (exists of scroll area 1 of splitter group 1 of splitter group 1 ¬
            of window thisWindow of application process "Finder")
            delay 0.1
        end repeat
        set frameBounds to value of attribute "AXFrame" of UI element 2 of row 2 ¬
            of outline 1 of scroll area 1 of splitter group 1 of splitter group 1 ¬
            of window thisWindow of application process "Finder"
    end tell

    set x to (item 1 of frameBounds) - 1
    set y to (item 2 of frameBounds) - 13

    do shell script "/usr/local/bin/cliclick dc:" & x & "," & y -- Double Click At Coordinates
end setColumnWidth

enter image description here

enter image description here

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X