E 'possibile modificare una larghezza della colonna di Visualizza lista Finder in AppleScript?

4

Voglio creare un AppleScript che apra cinque cartelle predefinite in cinque diverse schede in una nuova finestra del Finder con limiti predefiniti, quindi sposta la scheda attiva di questa finestra nella scheda uno. Mi piacerebbe anche che i nomi di file completi (dei file in tutte e cinque le cartelle) fossero visualizzati senza alcun troncamento. Uso esclusivamente la visualizzazione elenco nel Finder.

Quest'ultima condizione può essere eseguita in AppleScript o automatizzata in qualsiasi modo?

La larghezza della colonna "Nome" predefinita è troppo stretta; i nomi dei file completi dei miei file sono sempre tagliati. Per risolvere il problema, ogni volta che apro una cartella, devo trascinare il separatore "Nome" manualmente a destra o fare doppio clic sul separatore stesso (che regola automaticamente la larghezza per mostrare la voce più lunga per intero).

La mia comprensione è che è impossibile modificare la larghezza predefinita della colonna "Nome" di Visualizzazione elenco su un Mac. In caso contrario, potrei semplicemente impostare la larghezza predefinita di questa colonna in modo che sia più grande e questa larghezza sia impostata come predefinita su tutte le cartelle.

  • Tenendo premuto il tasto mentre si trascina un separatore di colonna (per salvarne la larghezza) è inutile.

  • Ho provato a impostare la dimensione della colonna più ampia come predefinita premendo comando ⌘ + J in Finder & selezionando "Usa come valori predefiniti". Ma questo non ha funzionato.

  • Ho provato ad aumentare ogni valore di larghezza "Nome" nel mio file com.apple.finder.plist e quindi a salvare nuovamente il file, come descritto nel commento più recente dall'utente azeotropo (del 2012) di questa pagina web (dal 2003) . Ma la vecchia, stretta "Name" width rimane.

OS X El Capitan, versione 10.11.6.

    
posta rubik's sphere 11.03.2017 - 22:38
fonte

2 risposte

2

La risposta all'argomento della tua domanda "È possibile modificare la larghezza di una colonna dell'elenco dei Finder in AppleScript?" è sì. Anche la risposta alla tua domanda sull'utilizzo di AppleScript per impostare la larghezza della colonna del nome in modo che possa visualizzare i nomi senza troncare è sì. Non sono sicuro di come gestire le schede nella finestra del Finder ma suona come se avessi già uno script che indirizza le schede.

Una grande sorpresa (per me) era che dovevo chiudere e riaprire la finestra del Finder per vedere il cambiamento.

Ecco uno script che opera nella finestra del Finder in primo piano. La larghezza della colonna "Nome" è impostata su 7.5 * (numero di caratteri nel nome più lungo nella finestra). Non è la larghezza perfetta ma funziona per me finché utilizzo un testo di 12 punti nel Finder. Stiamo impostando la larghezza della colonna su un determinato numero di pixel e ogni carattere richiede un numero diverso di pixel poiché il Finder non sta usando un font a larghezza fissa, quindi non possiamo essere esattamente a destra quando impostiamo la larghezza. Ma 7,5 * il numero di caratteri nel nome più lungo sembra funzionare piuttosto bene. Puoi regolarlo ovviamente.

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
    
risposta data 05.05.2018 - 16:53
fonte
1

Questo codice seguente imposta la colonna del nome, nella visualizzazione elenco, per adattare la dimensione del nome file più lungo in ogni finestra aperta o in ogni scheda in ogni finestra nell'app Finder. Se nessuna finestra del Finder è aperta, aprirà una nuova finestra del Finder nella visualizzazione elenco e imposterà la larghezza della colonna del nome in modo appropriato

Questo codice richiede "Cliclick" è l'abbreviazione di "Click-Line Interface Click". Si tratta di una piccola shell / applicazione terminale che emula i clic del mouse o una serie di clic del mouse (compresi i doppi apici e i clic di controllo) su coordinate dello schermo arbitrarie. Inoltre, ti consente di spostare il mouse, ottenere le coordinate del mouse corrente, premere i tasti modificatori ecc. , che è gratuito per il download e facile da installare.

Sul mio sistema che ho. clicchi nella seguente directory: / usr / local / bin / cliclick. A causa di questa posizione, nel mio codice AppleScript e nell'app Terminal, ho bisogno di utilizzare il percorso completo per clic clic per chiamare il comando. Ad esempio: script di shell "/ usr / local / bin / cliclick rc :." In AppleScript sta dicendo clic clic per fare clic con il pulsante destro del mouse.

Questo funziona per me usando l'ultima versione di macOS Mojave.

Le coordinate xey usate nel seguente script sono state impostate mentre la risoluzione del mio schermo era 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

    
risposta data 25.10.2018 - 00:15
fonte

Leggi altre domande sui tag