Coup d'œil sur extensions atypiques

Gizmonster

Membre confirmé
15 Février 2012
30
0
Bonjour à tous, j'ai une question un peu complexe, je ne sais pas si une réponse existe d'ailleurs.

Utiliser Coup d'œil avec un fichier .txt fait apparaître le texte contenu dans le fichier, et c'est tout ce qu'on lui demande. On peut même copier des bouts de texte, génial.

C'est super bien fait parce que ça marche aussi avec les fichiers de code/script des principaux langages de programmation : extensions .R .sh .java .cpp c'est trop cool pour aller chercher un bout de code sans avoir à ouvrir un fichier ! Toutes les extensions liées à Latex sont acceptées aussi.

Sur le Finder un voit un petit aperçu du texte avec, sur un bandeau, TXT, r, SHELL, java (en rouge), .cpp (en violet), TEX, LOG, STY, BIB, AUX c'est fort sympathique.

Maintenant je me traîne toute une tripotée de fichiers textes aux extensions improbables, .dat par exemple, et pour ceux-là Coup d'œil ne marche pas. Il ne détecte pas que c'est un fichier texte, Finder m'affiche l'icône d'un exécutable pour ces fichiers et Coup d'œil me donne taille et date de dernière modification. J'en déduis qu'il fonctionne uniquement avec une liste d'extension reconnues comme étant des extensions de fichiers texte, associée à une liste de chaînes de caractères à écrire sur le bandeau de l'aperçu Finder.

Ma question est donc : y'a-t-il un moyen d'accéder à cette liste d'extensions et de la modifier pour y ajouter mes extensions persos comme .dat ? Une plist cachée quelque part

Merci d'avance, salut !
 
Salut

Déjà si tu as des fichiers qui apparaissent comme exécutables, c'est pas trop normal.
Essaye avec le terminal d'en modifier un ainsi :
Bloc de code:
chmod a-x nom_de_fichier
Ça donne quoi?

@+
 
Salut Gizmonster.

«Quicklook» (aka «Coup d'œil») se réfère par défaut, à travers ses plug-ins (qlgenerators) spécialisés respectivement à des types d'objets logiques spécifiques, aux UTI (Uniform Types Identifiers) explicitement déclarés par le Système OS X comme supportés. Lorsqu'on demande, par suite, à «QuickLook» d'afficher en mode "Coup d'œil" un objet dont l'extension (ou l'absence d'extension) échappe aux UTI du Système, alors il y a carence d'affichage du contenu, ce qui paraît ton cas lors de l'usage que tu fais du plug-in : Text.qlgenerator dédié à l'affichage textuel des fichiers recelant un "contenu-texte" - ce dès lors que les objets concernés ont une extension "exotique" par rapport aux UTI d'OS X.

Que faire en pareil cas pour pallier ces limitations de «Quicklook» ?

- a) Le recours classique consiste à injecter dans un des dossiers de ressources de plug-ins de «Quicklook» (at: /System/Library/Quicklook ou à: /Library/Quicklook ou encore à: ~/Library/Quicklook selon les cas) une "extension" de tierce-partie, càd. un plug-in : qlgenerator spécifiquement créé par un développeur pour étendre la prise en charge par «Quicklook» à des objets hors UTI standards du Système OS X --> c'est la piste suggérée par Sly :coucou: qui peut être bonne, au cas où il existerait bien un plug-in de tierce-partie développé pour permettre l'affichage en mode texte de fichiers "exotiques" par rapport aux UTI-texte d'OS X.

--------------------​


- b) lorsque tu poses, par contre, la question suivante :

Ma question est donc : y a-t-il un moyen d'accéder à cette liste d'extensions et de la modifier pour y ajouter mes extensions persos comme .dat ? Une plist cachée quelque part

tu envisages une autre voie que j'interprète comme tenter un petit bidouillage (hack ou patch) de fichier de préférence .plist afin de tenter de faire passer des "vessies" pour des "lanternes" au regard du Système
361608_original.png
. Dans cet ordre d'idées, voici ce que tu pourrais peut-être tenter (simple conjecture aventuriste de ma part, qui me paraît un peu bien trop simple pour être "avalée" toute crue par le Système, car en matière de "bernage" (du prof), c'est ce que j'appellerais le jouer niveau "cours élémentaire 1"...) :

- b1) tu te rends at: /System/Library/Quicklook/Text.qlgenerator --> tu fais un clic_secondaire (ctrl_clic) --> Afficher le contenu du paquet pour accéder à : Contents/Info.plist. Je te conseille, avant toute intervention aventuriste, de connecter une clé USB à ton Mac et par un glisser-déposer de te faire une copie du fichier Info.plist original.

- b2) au cas où tu n'aurais pas ce logiciel, je te conseille de télécharger et d'installer l'éditeur de fichiers-Système (gratuit) : ☞TextWrangler☜. L'avantage de cet excellent logiciel est qu'il permet d'éditer directement des fichiers-Système protégés (comme des .plist) en échange d'une option "Unlock" (déverrouiller) et d'une authentification par mot-de-passe admin pour sauvegarder l'édition - ce sans aucune modification des accédants-Système root:wheel sur les fichiers.

- b3 ouvre le fichier Info.plist dont je t'ai donné l'adresse dans «TextWrangler» et concentre-toi, dans le haut du fichier, sur cette séquence d'écriture :

Bloc de code:
    <array>
       <dict>
            <key>CFBundleTypeRole</key>
            <string>QLGenerator</string>
            <key>LSItemContentTypes</key>
            <array>
                <string>public.plain-text</string>
                <string>public.rtf</string>
                <string>com.apple.rtfd</string>
                <string>org.oasis-open.opendocument.text</string>
                <string>com.apple.property-list</string>
                <string>public.xml</string>
            </array>
        </dict>
    </array>

Comme tu le vois, il y est déclaré que le <string>QLGenerator</string> prend en charge comme <key>LSItemContentTypes</key> les objets correspondants aux types référencés :

Bloc de code:
                <string>public.plain-text</string>
                <string>public.rtf</string>
                <string>com.apple.rtfd</string>
                <string>org.oasis-open.opendocument.text</string>
                <string>com.apple.property-list</string>
                <string>public.xml</string>

☞ tu me vois venir avec mes ruses de gamin de l'école primaire ? Ça ne mangerait pas de pain de rajouter autant de <string>------------</string> en queue de ce peloton, dans lesquelles mes ------------- seraient substitués par une déclaration de la forme : <string>public.[extension ad-hoc]</string>, par exemple : <string>public.dat</string>, <string>public.data</string>, <string>public.conf</string>, <string>public.properties</string>, <string>public.ddl</string> etc. Ce qui me donnerait avant sauvegarde pour les exemple donnés :

Bloc de code:
    <array>
       <dict>
            <key>CFBundleTypeRole</key>
            <string>QLGenerator</string>
            <key>LSItemContentTypes</key>
            <array>
                <string>public.plain-text</string>
                <string>public.rtf</string>
                <string>com.apple.rtfd</string>
                <string>org.oasis-open.opendocument.text</string>
                <string>com.apple.property-list</string>
                <string>public.xml</string>
                <string>public.dat</string>
                <string>public.data</string>
                <string>public.conf</string>
                <string>public.properties</string>
               <string>public.ddl</string>
            </array>
        </dict>
    </array>

☞ bref, tout cela me paraît trop beau (simple) pour être valable but "the proof of the pudding is in the eating" --> après re-démarrage du Mac pour faire charger l'Info.plist éditée du plug-in : Text.qlgenerator, tu verras bien si «Quicklook» prend en charge l'aperçu en mode texte de tes fichiers "exotiques" pour les UTI du Système...

- b4) au cas où tu voudrais restaurer ton fichier Info.plist à son intégrité, par un glisser-déposer inverse depuis ta clé USB tu écrases le fichier customisé par la copie de l'original (en t'authentifiant). Mais comme ta manipulation graphique a imposé les accédants : ton_username:staff à la place des root:wheel attendus, alors tu ouvres dans la foulée le «Terminal» et tu saisis la commande :

Bloc de code:
sudo chown 0:0 /System/Library/QuickLook/Text.qlgenerator/Contents/Info.plist
et ↩︎ (presse la touche "Entrée" du clavier pour activer la commande) --> une demande de password s'affiche (commande sudo) --> tape ton mot-de-passe admin à l'aveugle - aucun caractère ne se montrant à la frappe et derechef ↩︎ --> ton fichier est restauré et après re-démarrage tout devrait être rentré dans l'ordre.
--------------------
- c) je me doute qu'une meilleure méthode consisterait à agir à la "source" (par défaut) de la génération des fichiers "exotiques". Soit une application «Brol.app», qui serait responsable de la génération de fichiers .brol (contenant du texte) mais échappant aux UTI du Système (qui n'ont jamais entendu parler de fichiers de type : brol). Alors, en allant dans le paquet de l'application «Brol.app» à son fichier Info.plist, il conviendrait d'ajouter à la déclaration de sa clé : <key>UTTypeConformsTo</key> une chaîne spécifiant : <string>public.text</string> --> par voie de conséquence (présumable) de cette déclaration générique au Système que les fichiers produits par l'application «Brol.app» sont conformes au type "public.text", «Quicklook» serait capable d'assimiler les fichiers exotiques .brol à des fichiers de type .txt et à en afficher le contenu en mode texte grâce à son plug-in natif : Text.qlgenerator... <warning ! sauvegarde préalable obligatoire d'une copie du fichier Info.plist original ! Car, en cas d'erreur de syntaxe dans l'édition, l'application quittera on_launch sans pouvoir se lancer. La restauration du fichier Info.plist original permettant de la relancer...>

☞ Là encore : niveau "Cours élémentaire 2" --> il faudrait dénicher l'application exemplaire associée au type de fichier "exotique" (en mode "génération" ou simplement "ouverture" ?) afin d'éditer son fichier .plist. Trop beau (trop simple) pour berner le Système encore... Peut-être alors créer une petite application dont la fonction serait de déclarer au Système que tous les fichiers générés de type .brol doivent être assimilés au type .txt, ce qui conduirait «QuickLook» à en afficher sans barguigner le contenu en mode texte via le plug-in : Text.qlgenerator grâce à la répercussion de cette équivalence déclarée au Système ? Pfuiiii ! Ça sent la fuite en avant [dans le développement : tant qu'on y est, pourquoi ne pas créer un plug-in qlgenerator ?] - tout ça... ☜
361608_original.png


--------------------​
 
Dernière édition par un modérateur:
  • J’aime
Réactions: baron et litobar71