Continuons dans la série des logiciels méconnus et qui pourtant mériteraient la notoriété.
Ce que je vous propose aujourd'hui est de découvrir le logiciel OnMyCommand.
Ce logiciel se présente sous forme de plug-in à placer dans le dossier "ContextualMenuItems" de votre Bibliothèque. Vous l'aurez deviné, il s'agit d'un élément du menu contextuel et sera donc accessible via un clic avec le bouton de droite de la souris, ou d'un clic accompagné de la touche "control" pour ceux qui utilisent un touchpad ou une souris à bouton unique.
Là où OnMyCommand diffère des traditionnels éléments du menu contextuel c'est qu'il est complètement configurable. En d'autres mots, OnMyCommand vous permet simplement de créer vos propres commandes qui apparaîtront dans le menu contextuel.
Ces commandes seront en fait des commandes shell, c'est-à-dire équivalente à ce que vous pourriez faire depuis le Terminal.
Rien de tel qu'un exemple pour illustrer mon propos:
Ceci est mon menu contextuel. Outre les éléments habituels, on y remarque deux petits nouveaux: "Envoyer avec Mail" et le sous-menu "On My Command"
Etudions le cas "Envoyer avec Mail". Dans le terminal, pour envoyer un fichier avec Mail il suffit d'entrer la commande
open -a /Applications/Mail.app /Chemin/MonFichier
Pour rappel, la commande open ouvre un fichier avec son application par défaut (si MonFichier est une application elle sera lancée et si c'est une fenêtre elle sera ouverte, mais ce n'est pas ce qui nous intéresse ici). Pour ouvrir un fichier avec une application spécifique il faut ajouter l'option "-a" suivie de l'application en question. Ici nous désirons ouvrir le fichier avec Mail ce qui aura pour effet de créer un nouveau message ayant comme attachement notre fichier.
Nous pouvons donc demander à OnMyCommand d'ajouter à notre menu contextuel un élément correspondant à la commande:
open -a /Applications/Mail.app __OBJ_PATH__
Où "__OBJ_PATH__" représente le chemin complet vers le fichier
Mais, me direz-vous, où diable entrer cette commande ?
Facile vous répondrais-je !
En fait il y a deux solutions, une simple et une compliquée
Créer une commande, la solution compliquée
Il faut éditer à la main le fichier de préférences de OnMyCommand. Ce fichier se nomme com.abracode.OnMyCommandCMPrefs.plist et se trouve dans vos préférences. Notre entrée "Envoyer avec Mail" aura cette allure:
<dict>
<key>ACTIVATION_MODE</key>
<string>act_file</string>
<key>COMMAND</key>
<array>
<string>open -a /Applications/Mail.app </string>
<string>__OBJ_PATH__</string>
</array>
<key>NAME</key>
<string>Envoyer avec Mail</string>
<key>SUBMENU_NAME</key>
<string>..</string>
<key>VERSION</key>
<integer>1</integer>
</dict>
On y reconnaît la commande et le nom affiché dans le menu contextuel. L'ACTIVATION_MODE indique que cet élément du menu n'apparaîtra que pour un fichier (par pour un dossier).
Par défaut, OnMyCommand place vos éléments dans le sous-menu "OnMyCommand" que vous avez pu voir sur la précédente illustration. Pour que mon élément "Envoyer avec Mail" apparaisse dans le menu principal, j'ai dû ajouter l'option SUBMENU_NAME. En donnant à cette option la valeur ".." je lui indique je le veux mon élément au premier niveau supérieur au sous menu OnMyCommand. En effet, en langage shell, le répertoire ".." indique le dossier contenant le répertoire courant.
Vous n'avez rien compris à ce qui précède ? Ce n'est pas grave du tout, nous ne nous y étendrons pas plus puisque voici maintenant....tadam.....
Créer une commande, la solution simple !
Pour s'éviter tous ces soucis d'édition des préférences, il suffit d'utiliser un magnifique petit logiciel qui se nomme OMCEdit et qui vous offre une interface graphique pour gérer vos commandes.
Lorsque vous lancez OMCEdit, voici la fenêtre que vous obtiendrez (avec peut-être quelques commandes en moins):
On y voit donc une liste de commande avec, dans la première colonne, leur nom tel qu'il apparaîtra dans le menu contextuel. La deuxième colonne indique à quel type de d'élément (dossiers, fichiers, fenêtres, etc...) cette commande doit s'appliquer.
Editons l'une de ces commandes. OMCEdit nous propose alors cette fenêtre:
On reconnaît les différentes options que nous avions dû entrer en mode texte auparavant. Je ne vais pas toutes les passer en revue mais les plus importantes sont:
Puis vient le champ de texte dans lequel vous pouvez entrer votre commande. Comme précédemment nous faisons appel à la commande "open" pour envoyer un fichier avec Mail.
Vous noterez également plusieurs onglets dans cette fenêtre. L'onglet Notes vous permet d'annoter votre commande, Input est utile pour une commande qui nécessite que l'utilisateur entre des données (pour effectuer une recherche par exemple). L'onglet suivant est peut-être le plus important, il permet en effet de restreindre une commande à un certain type de fichier. Pour illustrer ceci, cliquez sur les différentes icônes ci-dessous pour voir leur menu contextuel.
Vous pouvez constater que selon le type du fichier, des commandes différentes apparaissent. Ceci ce fait grâce à l'onglet Type & Extensions. Voici ce qu'on peut y voir par exemple pour ma commande "Convertir en GIF":
Il est évident que seules des images peuvent être converties en GIF, c'est pourquoi j'ai entré dans la liste des extensions celles correspondant à des formats d'image. Ma commande sera donc restreinte uniquement aux fichiers ayant l'une de ces extensions. Le même principe est appliqué à chacune de mes commandes spécifiques à un certain type de fichier. En l'absence d'extension dans cette liste, la commande s'appliquera à tous les types de fichiers.
On notera qu'il est également possible de faire restreindre une commande à certains TYPES de fichiers (vous savez, TYPE & CREATEUR, ces vieilleries héritées de l'OS Classic).
Oui, mais j'y connais rien aux commandes du Terminal, moi !
Et bien ce n'est pas grave du tout ! Le créateur de OnMyCommand récolte sur son site toutes les commandes que les utilisateurs ont bien voulu lui envoyer. Il y en a 160 à ce jour. Et devinez quoi ? Elle sont directement accessibles par OMCEdit ! Cliquez sur ce petit bouton:
et il accédera directement au site et vous affichera la liste de toutes les commandes disponibles, avec leur commentaire, prêtent à être installées ! Elle est pas belle la vie ?
Et après ? Faites marcher votre imagination !
OnMyCommand ouvre la porte à une multitude de possibilités. En effet, les commandes Terminal permettent de pratiquement tout faire, même de lancer des applescripts ! Rien ne pourra donc vous arrêter.
Mes commandes me simplifient la vie de manière considérable, envoyer une pièce jointe par mail via le menu contextuel est extrêmement utile. De même, je peux convertir une capture d'écran (en PDF) en JPG à destination du web en deux clics de souris, compacter un dossier en tgz, etc...
Les prochaines commandes que je vais créer seront très simples: associer à chaque type de fichier une commande pour ranger le fichier là où il doit. Par exemple les ".app" iront en un clic se ranger dans "/Applications/", les ".mp3" dans "~/Music", les ".service" dans "~/Library/Services", etc... Fini le Bureau mal rangé !
Grâce à OMC_Edit les choses deviennent encore plus facile, la seule limitation est la connaissance (de base) du Terminal mais pour ceux qui n'arrivent pas à s'y faire mais qui veulent tout de même profiter d'OnMyCommand, laissez un petit mot dans le Forum et je vous aiderai à créer votre commande.
Pour l'instant OMCEdit est en anglais (il existe des versions en allemand et en espagnol) mais les réglages sont pour la plupart suffisamment parlant pour que cela ne pose pas un problème insurmontable.
Ah, au fait, vous ai-je dit qu'OnMyCommand et OMCEdit étaient tous deux gratuits (freewares) ?
Pourquoi s'en priver ?