3 votes

Le fenêtre contextuelle de téléchargement de Safari peut-elle être élargie ?

Comment peut-on rendre plus large la largeur max. (largeur fixe 425) de la fenêtre de superposition de téléchargement de Safari ?

Y a-t-il un moyen d'accéder à la "fenêtre de superposition de téléchargement" de Safari de sorte que sa taille maximale soit supérieure à 425 px et que les noms de fichier plus longs ne soient plus abrégés ?
Peut-être via AppleScriptObjC ?

[[ Réponses : Jusqu'à présent (sans utiliser AS-objC), seulement trois "solutions de contournement" ont été trouvées...

  • Solution de contournement originale n°1... un mélange de (faire) shellScript (cat/sed), AS, Html et Automator
  • Solution de contournement n°1... utilise uniquement des modules Automator mais contient également le script shell ci-dessus
  • Solution de contournement n°2... avec un accès AS direct au fichier plist de Safari, une boîte de dialogue & un "bouton" dans Safari

SC n°2 est mon préféré ; les "fenêtres" des autres sont plus flexibles. Les deux utilisent des raccourcis Automator. ]]

3voto

zonble Points 2925

Astuce originale n°1 :

Le premier ici a l'avantage d'utiliser une seule action Automator et permet des réglages assez précis de la fenêtre Safari résultante. Ses résultats finaux sont un "service" dans les menus de Safari plus un raccourci clavier.
Ces composants sont impliqués :

  • Le fichier "Download.plist" de Safari (emplacement : Bibliothèque/Safari)
  • Un script shell exécutant cat & sed, filtrant l'entrée du fichier plist en "Downloads1.html"
  • Un fichier Html "Downloads2.html" contenant des balises Html de votre choix (sans balises de fin :
  • Un AppleScript contenant une commande "do shell script", "indiquant" à Safari d'ouvrir un
  • ... fichier Html "Downloads.html", généré par le script shell, afin d'obtenir enfin …
  • Automator pour placer un flux de travail dans le menu "Services" de Safari.

Ce code s'exécute en tant que service Automator (sans les commandes "run", c'est simplement de l'AppleScript) :

on run {input, parameters} 
 -- [Uniquement si nécessaire, placez : "LANG=C; LC_CTYPE=C; LC_ALL=C;" devant "cd"]

    do shell script "cd ˜/Users/[monNom]/Bibliothèque/Safari/;
             rm Downloads.html;
             cat Downloads.plist | sed -n ' { s/.*Downloads/Téléchrgt => /; ¬
                     s/.*Trash/Supprimé => / ; s/.*Movies/Films => /; ¬
                     s/mp4.*/mp4

(Le script shell et "make new document…" sont censés être des commandes d'une seule ligne chacune.)

Deux "filtres" sont intégrés à la partie sed (.*Movies & .*Trash) pour que ma fenêtre de navigateur ressemble à ceci (vous pouvez modifier ces filtres ou/et ajouter des extensions selon vos besoins) :

+----------------------- Barre d'outils -------------------------+
|                                                         |
|  Téléchrgt => /Une_série_TV_sombre_S02E01_15.11.21_00-  |
|  40_BBC3_93_TVOON_DE.mpg.HQ.avi.otrkey                  |
|                                                         |
|  Films => DS9.4.07_Little_green_men.mp4                |
|                                                         |
|  Supprimé => /DS9.3.09_Defiant.mp4                       |
|                                                         |
|  Supprimé => /DS9.3.07_Civil_Defense.mp4                 |
|                                                         |
+---------------------------------------------------------+

(Ces barres obliques initiales sont pénibles… difficile à filtrer, cependant.)

  • La deuxième ligne commentée peut être nécessaire, ou pas…
  • Remplacez [monNom] par votre propre nom d'utilisateur.
  • Pour utiliser ce code en tant que "service" dans Safari, vous devez le coller à l'intérieur d'un champ "Exécuter AppleScript" dans Automator. Enregistrez-le en tant que "flux de travail".
  • Vous pouvez ensuite créer un raccourci (par exemple : opt-cmd-d) qui l'exécutera instantanément (Préférences Système / Clavier / Raccourcis / Services).
  • Ma solution n'est pas vraiment sophistiquée, mais j'ai appris (entre-aperçu) beaucoup de choses sur sed, awk, cat et AppleScript/Automator.

0voto

zonble Points 2925

Contournement n°1

Comme jusqu'à présent aucune réponse n'a expliqué comment influencer de manière programmation la fenêtre contextuelle de Safari :

Utilisation uniquement d'Automator

Voici un moyen d'afficher une liste des "Téléchargements récents", qui utilise uniquement Automator.

  • Vous n'avez pas besoin d'utiliser AppleScript ici. Au lieu de cela, il faut utiliser 4 des modules de Automator pour fonctionner.
  • Il affichera une fenêtre de navigateur encadrée de manière élégante (style Automator).
    (Vous devrez placer un fichier "Downloads2.html", contenant vos balises html sans balises de fin, à l'intérieur de /Utilisateurs/[monNom]/Bibliothèque/Safari.)
  1. Après avoir ouvert Fichier > Nouveau > Service dans Automator, double-cliquez sur :
    AutomatorExécuter un script shell

    Ensuite, collez le code suivant dans la fenêtre sur la droite :

    # uniquement si nécessaire, placer en première ligne : LANG=C; LC_CTYPE=C; LC_ALL=C;
    
    cd /Utilisateurs/[monNom]/Bibliothèque/Safari;
    cat -su Downloads.plist | sed -n  '{ s/.*Téléchargements/Télécharger => / ; ¬
          s/otrkey.*/otrkey/ p; s/.*Corbeille/Corbeille => / ; ¬
          s/.*Films/Films =>  /;  s/mp4.*/mp4
  2. Double-cliquez sur Pause dans la liste d'actions d'Automator.

    J'ai choisi 0.1 / Secondes mais j'ai dû cocher le bouton Ignorer l'entrée de cette action (Options). J'ai constaté que sur mon ordinateur Safari affichait une fenêtre vide si je ne donnais pas à l'action suivante une pause…

  3. Ajoutez Obtenir des URL spécifiées dans la liste d'actions de Safari. Supprimez les URL données et choisissez le bouton [AJOUTER]. Ensuite écrivez :

    file:///Utilisateurs/[monNom]/Bibliothèque/Safari/Downloads.html
  4. Enfin, la dernière étape est de double-cliquer sur Fenêtre pop-up de site web de Safari. Mes paramètres :

    • Site–taille : Personnalisé
    • Valeurs : 600 x 300
    • Position : Centré

    (Le focus du Safari restera sur la fenêtre principale, vous ne pourrez donc pas appuyer sur "ESC" pour fermer la fenêtre contextuelle.)

  5. Vous pouvez ajouter : Préférences Système Clavier Raccourcis Services ; (par exemple : opt-cmd-d).

(Jetez un œil à la fenêtre résultante à "Contournement Original n°1" plus haut, car les deux exemples utilisent des fichiers Html identiques pour leur apparence !)

0voto

zonble Points 2925

Astuce #2

Ma solution préférée utilise Applescript pour accéder directement à "Downloads.plist" (pas de script shell), et place un lien dans la barre de favoris de Safari pour votre commodité.
Tout d'abord, vous enregistrez ces scripts dans le dossier "~ / Library / Scripts / Folder action scripts /", ensuite vous les attachez (menu contextuel: configurer les actions de dossier) à un nouveau "Dossier1" quelque part au fond de votre Mac.
Pour les activer, vous adresserez un "Dossier2" (insignifiant) à l'intérieur du "Dossier1" en passant par ce signet:

file: /// Chemin / vers / premier / Dossier1 / Dossier2   [placez le lien dans votre barre de favoris!]

Maintenant, que se passe-t-il:
- Le lien de la barre d'outils cliqué ouvrira "Dossier1" car le "Dossier2" auquel il est fait appel est à l'intérieur.
- Ainsi, LES deux scripts attachés sont lancés, #-1 fermant la fenêtre "Dossier2" mise en favoris...
- ... ensuite ordonnant à "System Events" de récupérer tous les éléments "DownloadEntryPath" de Safari.
- Ces chemins sont raccourcis au nom plus au dossier parent et collectés dans une "alerte de dialogue".
- (En attente pour la "fenêtre de dialogue":) #-2 script déplace immédiatement la fenêtre en haut à droite.

sur ouverture du dossier ce_dossier
    dire à l'application "Finder" de fermer la fenêtre avant
    dire à l'application "System Events"
       set the plist_path to "~ / Library / Safari / Downloads.plist"
        set the plist_file to fichier plist plist_path
        set downloadItems aux articles de liste de propriétés de l'élément de liste de propriétés ¬
            "DownloadHistory" de plist_file
        set DL_affichage à ""
        set délimiteurs de texte d'AppleScript à {"/"}

        répéter avec i de 1 à nombre d'éléments dans downloadItems
            set DL_item à (obtenir des éléments de texte -2 à -1 de ((valeur de ¬
                 élément de liste de propriétés "DownloadEntryPath" de la propriété ¬
             l'élément de liste i de l'élément de liste de propriétés 1 de plist_file) comme chaîne))
            set DL_display à DL_display et retourner & "[" & ¬
                élément de texte 1 de DL_item & ":]" & retourner & élément de texte 2 de ¬
                DL_item & retourner
        fin répéter

        dire à l'application "Finder" d'afficher le dialogue DL_display comme chaîne ¬
            boutons {"Fermer"} bouton par défaut 1 -- NOUVEAU: dire  appl. "Finder" à
     fin dire
end ouvrant le dossier

Si vous attachez ce 2e "script d'action de dossier", il déplacera la "boîte de dialogue" en haut à droite de votre écran:

sur ouverture du dossier ce_dossier
    dire à l'application "Finder"
        set screenRgt à limites de la fenêtre du bureau
        set rightEdge à (élément 3 de screenRgt) - 425
    fin dire
    dire à l'application "System Events" de dire au processus "Finder"
        répéter tant que (il n'existe pas de fenêtre "Téléchargements récents")
        fin répéter
        retard 0,1   -- attendre (et s'assurer ...) pour la "fenêtre de dialogue"!
        définir la position de la fenêtre "Téléchargements récents" sur {rightEdge, 61}
    fin dire
end ouvrant le dossier

Le seul inconvénient de cette solution à mon avis est que pendant un moment, chaque dossier ouvert et l'alerte "clignotent" sur votre écran...

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X