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

3

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 luego cambie la pestaña activa de esta ventana a la pestaña uno. También me gustaría que los nombres de archivos completos (de los archivos en las cinco carpetas) se muestren sin ningún truncamiento. Uso exclusivamente la vista de lista en el Finder.

¿Se puede cumplir esta última condición en AppleScript o automatizarse de alguna manera?

El ancho de la columna "Nombre" predeterminado es demasiado estrecho; Los nombres de archivo completos de mis archivos siempre están cortados. Para solucionar este problema, cada vez que abro una carpeta, tengo que arrastrar el separador "Nombre" manualmente hacia la derecha o hacer doble clic en el separador (que ajusta automáticamente el ancho para mostrar la entrada más larga en su totalidad).

Entiendo que es imposible cambiar el ancho predeterminado de la columna "Nombre" de la Vista de lista en una Mac. De lo contrario, simplemente podría establecer el ancho predeterminado de esta columna para que sea más grande y este ancho se establecería como el predeterminado en todas las carpetas.

  • Mantener presionada la tecla opción ⌥ mientras se arrastra un separador de columna (para guardar su ancho) es infructuosa.

  • Intenté establecer el tamaño de columna más ancho como predeterminado presionando comando ⌘ + J en Finder & seleccionando "Usar como valores predeterminados". Pero, esto no funcionó.

  • Intenté aumentar cada valor de ancho de "Nombre" en mi archivo com.apple.finder.plist y luego volver a guardar el archivo, como se describe en comentario más reciente del usuario azeotropo (de 2012) de esta página web (de 2003) . Pero, el ancho de "Nombre" antiguo y estrecho permanece.

OS X El Capitan, versión 10.11.6.

    
pregunta rubik's sphere 11.03.2017 - 22:38

2 respuestas

1

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 su pregunta sobre el uso de AppleScript para establecer el ancho de la columna de nombre para que sea lo suficientemente grande como para mostrar los nombres sin truncar también es sí. No estoy seguro de cómo manejar las pestañas en la ventana del Finder, pero suena como si ya tuviera un script que aborda 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 una secuencia de comandos que funciona en la ventana del buscador frontal. El ancho de la columna "Nombre" se establece en 7.5 * (número de caracteres en el nombre más largo de la ventana). No es el ancho perfecto, pero funciona para mí siempre que esté usando un texto de 12 puntos en el Finder. Estamos configurando 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á utilizando una fuente de ancho fijo, por lo que no podemos estar exactamente en lo correcto al establecer el ancho. Pero 7.5 * el número de caracteres en el 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
    
respondido por el Christian Boyce 05.05.2018 - 16:53
0

Este código siguiente establecerá la columna de 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 en la aplicación Finder. Si no hay ventanas del buscador abiertas, se abrirá una nueva ventana del buscador en la vista de lista y establecerá el ancho de la columna de nombre de forma adecuada

Este código requiere el "Cliclick" es la abreviatura de "Interfaz de línea de comandos". Es una pequeña aplicación de shell / terminal que emulará clics del mouse o una serie de clics del mouse (incluyendo dobleclicks y clics de control) en coordenadas de pantalla arbitrarias. Además, le permite mover el mouse, obtener las coordenadas actuales del mouse, presionar las teclas modificadoras, etc. que es gratis para descargar y fácil de instalar.

En mi sistema tengo. haga clic en el siguiente directorio: / usr / local / bin / cliclick. Debido a esta ubicación, en mi código AppleScript y en la aplicación Terminal, necesito usar la ruta completa para hacer clic y hacer clic en el comando. Por ejemplo: haga un script de shell "/ usr / local / bin / cliclick rc :." En AppleScript es hacer clic con el clic para hacer clic derecho.

Esto me funciona con la última versión de macOS Mojave.

Las coordenadas x e y usadas en este siguiente script se configuraron mientras mi resolución de pantalla era 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

    
respondido por el wch1zpink 25.10.2018 - 00:15

Lea otras preguntas en las etiquetas