La finestra popover del download di Safari può essere ingrandita?

3

Come può il massimo. larghezza (larghezza fissa≈425) della finestra di download-popover di Safari essere ampliata?

C'è un modo per accedere alla finestra di pop-up del download di Safari in modo che la dimensione massima sia maggiore di 425 px e che i nomi di file più lunghi non vengano più abbreviati?
Forse tramite AppleScriptObjC?

[[Risposte: Finora (senza l'uso di AS-objC) solo tre "soluzioni alternative" sono venute in giro ...

  • Soluzione alternativa n. 1 ... un misto di (script) shell (cat / sed), AS, Html e Automator
  • Soluzione # 1 ... utilizza solo i moduli di Automator ma contiene anche lo script di shell sopra
  • Soluzione # 2 ... con accesso diretto AS al file plist di Safari, una finestra di dialogo & un "pulsante" in Safari

WA # 2 è il mio preferito; le "finestre" degli altri sono più flessibili. Entrambi usano le scorciatoie di Automator. ]]

    
posta clemsam lang 21.11.2015 - 23:58
fonte

3 risposte

0

Soluzione alternativa n. 2

La mia soluzione preferita utilizza applescript per accedere direttamente a "Downloads.plist" (senza script di shell) e per creare un collegamento nella barra dei preferiti di Safari per comodità.
Per prima cosa salvate questi script nella cartella "~ / Library / Scripts / Folder action scripts /", poi li allegate (menu di scelta rapida: configura le azioni della cartella) in una nuova "Cartella1" in qualche punto del tuo Mac.
Per attivarli, dovrai indirizzare un (senza significato) fittizio "Cartella2" all'interno di "Cartella1" attraverso questo segnalibro:

file:///Path/to/first/Folder1/Folder2   [place link in your favorites bar!]

Ora, cosa sta succedendo:
- Il link alla barra degli strumenti cliccato aprirà "Cartella1" perché l'interno chiamato "Cartella2" è all'interno.
- Quindi vengono avviati entrambi gli script allegati, # -1 chiudendo la finestra "Folder2" con i segnalibri ...
- ... ordinando successivamente "Eventi di sistema" per ottenere tutti gli elementi "DownloadEntryPath" di Safari.
- Questi percorsi sono abbreviati per nominare più cartella principale e raccolti in un "avviso di dialogo".
- (In attesa di "finestra di dialogo" :) Lo script # -2 immediatamente su pop-up lo sposta in alto a destra.

on opening folder this_folder
    tell application "Finder" to close front window
    tell application "System Events"
        set the plist_path to "~/Library/Safari/Downloads.plist"
        set the plist_file to property list file plist_path
        set downloadItems to property list items of property list item ¬
            "DownloadHistory" of plist_file
        set DL_display to ""
        set AppleScript's text item delimiters to {"/"}

        repeat with i from 1 to number of items in downloadItems
            set DL_item to (get text items -2 thru -1 of ((value of ¬
                property list item "DownloadEntryPath" of property ¬
                list item i of property list item 1 of plist_file) as string))
            set DL_display to DL_display & return & "[" & ¬
                text item 1 of DL_item & ":]" & return & text item 2 of ¬
                DL_item & return
        end repeat

        tell application "Finder" to display dialog DL_display as string ¬
            buttons {"Close"} default button 1 -- NEW: tell appl. "Finder" to
    end tell
end opening folder

Se allega questo secondo "script azione cartella", sposta la "finestra di dialogo" a destra / in alto dello schermo:

on opening folder this_folder
    tell application "Finder"
        set screenRgt to bounds of the window of desktop
        set rightEdge to (item 3 of screenRgt) - 425
    end tell
    tell application "System Events" to tell process "Finder"
        repeat while not (exists window "Recent downloads")
        end repeat
        delay 0.1   -- wait (and make sure...) for "dialog window" !
        set position of window "Recent downloads" to {rightEdge, 61}
    end tell
end opening folder

L'unico inconveniente di questa soluzione IMO è che per un momento ciascuno della cartella aperta e l'avviso "lampeggiano" sullo schermo ...

    
risposta data 06.12.2015 - 01:43
fonte
3

Soluzione alternativa 1:

Il primo qui ha il vantaggio di utilizzare solo un'azione di Automator e consente impostazioni abbastanza precise della finestra di proprietà di Safari risultante. I suoi risultati finali sono un "servizio" nei menu di Safari più una scorciatoia da tastiera.
Questi componenti sono coinvolti:

  • Safari " Download.plist " (in: Libreria / Safari)
  • Uno script di shell che esegue cat & sed, filtrando l'input del file plist in "Downloads1.html"
  • Un file Html "Downloads2.html" contenente Tag HTML di tua scelta (senza tag di finitura: < / ...)
  • Un AppleScript contenente un comando "fai script di shell", "che dice" Safari per aprire un
  • ... File Html "Downloads.html", generato dallo script di shell, al fine di ottenere finalmente ...
  • Automator per posizionare un flusso di lavoro nel menu " Servizi " di Safari.

Questo codice viene eseguito come un servizio di automazione (senza comandi di "esecuzione" è semplice AppleScript):

on run {input, parameters} 
 -- [Only if needed, place: "LANG=C; LC_CTYPE=C; LC_ALL=C;" in front of "cd"]

    do shell script "cd ˜/Users/[myName]/Library/Safari/;
             rm Downloads.html;
             cat Downloads.plist | sed -n ' { s/.*Downloads/<p>D'load => /; ¬
                     s/.*Trash/<p>Trashed => / ; s/.*Movies/<p>Movies => /; ¬
                     s/mp4.*/mp4<p>/ p; }' > Downloads1.html';
             cat Downloads2.html Downloads1.html > Downloads.html;"

    tell application "Safari"
        make new document at end of documents with properties ¬
            {URL:"file:///Users/[myName]/Library/Safari/Downloads.html"} 
        set bounds of window 1 to {700, 62, 1280, 450} 
    end tell 
    return input 
end run

(Lo script di shell e "crea un nuovo documento ..." sono pensati per essere un liner ciascuno.)

Integrati sono due "filtri" per la parte sed (. * Movies &. * Cestino) quindi la finestra del mio browser è simile a questa (puoi modificare questi filtri o / e aggiungere estensioni alle tue necessità):

+----------------------- Toolbar -------------------------+
|                                                         |
|  D'load => /Some_sinster_TV_series_S02E01_15.11.21_00-  |
|  40_BBC3_93_TVOON_DE.mpg.HQ.avi.otrkey                  |
|                                                         |
|  Movies => DS9.4.07_Little_green_men.mp4                |
|                                                         |
|  Trashed => /DS9.3.09_Defiant.mp4                       |
|                                                         |
|  Trashed => /DS9.3.07_Civil_Defense.mp4                 |
|                                                         |
+---------------------------------------------------------+

(Quelle barre iniziali fanno schifo ... difficile da filtrare, però.)

  • La seconda riga potrebbe commentata potrebbe essere necessaria, o potrebbe non ...
  • Sostituisci [myName] con il tuo nome utente.
  • Per utilizzare questo codice come "servizio" in Safari, devi incollarlo all'interno di un campo "Esegui AppleScript" in automator. Salvalo come "flusso di lavoro".
  • Puoi quindi creare una scorciatoia (ad es. opt-cmd-d) che la eseguirà istantaneamente (Preferenze di sistema / Tastiera / Scorciatoie / Servizi).
  • La mia soluzione non è molto sofisticata, ma ho imparato (intravisto) molto su sed, awk, cat e AppleScript / Automator.
risposta data 01.12.2015 - 19:58
fonte
0

Soluzione alternativa n. 1

Finora nessuna risposta ha spiegato come influenzare in modo programmatico la finestra pop di Safari:

Usando solo Automator

Ecco un modo per visualizzare un elenco "Download recenti", che utilizza solo Automator .

  • Non è necessario utilizzare AppleScript qui. Al contrario, occorrono 4 moduli Automator da eseguire.
  • Apparirà una finestra del browser ben incorniciata (in stile Automator).
    (Dovrai inserire un file "Downloads2.html", che contenga i tag html senza i tag finali, all'interno di / Users / [myName] / Library / Safari, comunque.)
  1. Dopo aver aperto File > Nuovo > Servizio in Automator , fai doppio clic:
    Automator ... Fai script di shell

    Successivamente, incolla il seguente codice nella finestra a destra:

    # only if needed, place as 1st line: LANG=C; LC_CTYPE=C; LC_ALL=C;
    
    cd /Users/[myName]/Library/Safari;
    cat -su Downloads.plist | sed -n  '{ s/.*Downloads/<p>D'load => / ; ¬
          s/otrkey.*/otrkey/ p; s/.*Trash/<p>Trashed => / ; ¬
          s/.*Movies/<p>Movies =>  /;  s/mp4.*/mp4<p>/ p; }' > Downloads1.html;
    rm Downloads.html;
    cat Downloads2.html Downloads1.html > Downloads.html;
    
  2. Fai doppio clic su Pausa dall'elenco Automator delle azioni.

    Ho scelto 0.1 / Seconds ma dovevo controllare il pulsante Ignora input da questa azione ( Opzioni ). Ho scoperto che sul mio computer Safari visualizzava una finestra vuota se non concedevo alla prossima azione una pausa ...

  3. Aggiungi Ottieni gli URL specificati dall'elenco delle azioni di Safari . Rimuovi qualsiasi URL specificato e scegli il pulsante [AGGIUNGI] . Quindi scrivi:

    file:///Users/[myName]/Library/Safari/Downloads.html
    
  4. Infine, l'ultimo passaggio consiste nel fare doppio clic su Sito Web-Pop-Up da Safari . I miei parametri:

    • Dimensioni del sito: Personalizzato
    • Valori: 600 x 300
    • Posizione: Centrato

    (il focus di Safari rimarrà sulla finestra frontale, quindi non puoi premere "ESC" per chiudere il popup).

  5. È possibile aggiungere: Preferenze di sistema → Tastiera → Scelte rapide → Servizi; (ad es. opt-cmd-d).

(Dai un'occhiata alla finestra risultante su "Original Workaround # 1" più avanti, dato che entrambi gli esempi usano file Html identici per i loro look!)

    
risposta data 05.12.2015 - 15:08
fonte

Leggi altre domande sui tag