Alfred Workflows pour les intermédiaires

Nous saluons le retour! Depuis que vous lisez ceci, vous devez avoir apprécié le tutoriel du débutant. Génial! Nous allons maintenant creuser un peu plus en créant un flux de travail qui nous aidera à gérer notre dossier Téléchargements, ainsi qu'un gestionnaire de projets..

Téléchargements Tamer Workflow

Je télécharge / télécharge constamment des fichiers vers et depuis le réseau et crée des captures d'écran qui sont automatiquement placées dans mon dossier Téléchargements. Par conséquent, mon dossier Téléchargements devient très compliqué. C'est comme ça que je l'apprivoise.


Création d'un flux de travail: Téléchargements Tamer

Commencez par créer un nouveau flux de travail Téléchargements Tamer. La description est définie sur Un workflow pour manipuler les éléments du dossier Téléchargements, mais vous pouvez en faire ce que vous voulez. L'identifiant du paquet est com.customct.MTDownload.

L'identifiant de paquet est très important et devrait être très unique pour le flux de travail. J'utilise toujours l'adresse de mon site et le nom du flux de travail pour identifier le flux de travail de manière unique..

L'auteur peut être vous. Le site Web est votre site Web ou rien.

Filtres de fichiers

le Filtres de fichiers block est une unité très flexible et puissante. C'est un bon endroit pour commencer à travailler avec des fichiers dans un flux de travail. Par exemple, cela donne un moyen facile de rechercher des fichiers.


Filtre de fichier: Options de première page

Sélectionner un Filtre de fichier bloquer et compléter comme indiqué ci-dessus. Définissez le mot clé sur mtdl: aujourd'hui, le titre de réserve pour MT: Téléchargements de fichiers, et le substitut Placeholder to Chargement du mess d'aujourd'hui… .

Si vous souhaitez vous concentrer uniquement sur un type de fichier, vous pouvez faire glisser un exemple de fichier vers le Types de fichier boîte. Le but ici est de trouver tout type de fichier un jour donné ou aux alentours. Par conséquent, la zone Types de fichiers n'est pas utilisée dans cet exemple..


Filtre de fichier: Options de portée de recherche

En sélectionnant Portée de la recherche, nous donne la deuxième page d'options. À l'aide du Finder, faites glisser le curseur Téléchargements répertoire du Finder au Portée de la recherche surface. Cela dit à Alfred de ne rechercher que les fichiers dans ces répertoires. Comme ce flux de travail ne concerne que le dossier Téléchargements, cela suffira.


Filtre de fichier: options avancées

En sélectionnant Avancée nous donnera les options avancées. Ici, définissez le Plage de dates à Aujourd'hui afin qu'il ne montre que les fichiers créés aujourd'hui. presse sauvegarder et la première fonction de notre flux de travail sera complète.

le Des champs zone donne une liste de champs dans lesquels vous pouvez rechercher les informations pertinentes. Cela peut vraiment donner à votre recherche plus de pouvoir pour trouver précisément ce qui est recherché. Pour chaque champ, vous pouvez définir le Mots drapeau à rechercher à l'intérieur du mot bourndries. le Divisé drapeau divisera chaque mot pour séparer les paramètres qui seront recherchés individuellement.

le Précision le drapeau est utilisé pour que la recherche ne commence pas par un caractère générique si le Mots le drapeau est désactivé. En d'autres termes, si le Mots Si l'option n'est pas définie, la sélection de cet indicateur fera que la recherche sera toujours basée sur le début du texte et non sur le milieu. Si la Mots le drapeau est défini, ce drapeau n'a pas de sens.

Ces différents drapeaux peuvent être déroutants sur la façon de les utiliser. Vous pouvez configurer différents scénarios de test et voir comment chacun d'entre eux affecte vos résultats. En général, je garde toujours le Mots et Divisé ensemble de drapeaux.

Ce qui a été créé est un navigateur de fichiers qui ne montrera que les fichiers du répertoire de téléchargement ajouté aujourd'hui. Maintenant, faire quelque chose avec le fichier sélectionné.


Téléchargements Tamer: Ajout Ouverture du fichier

Du + menu, sélectionnez Fichier ouvert bloquer et attacher à la Filtre de fichier bloc. Maintenant, quand le mtdl: aujourd'hui Lorsque la commande est exécutée, une liste des fichiers téléchargés aujourd’hui apparaît. Si vous en sélectionnez un, il sera ouvert dans l'application préférée pour ce type de fichier..


Téléchargements Tamer: Ajout d'un aperçu - Script

Parfois, vous voulez simplement jeter un coup d'œil au fichier. OS X a cela intégré, mais comment l'utiliser? C'est là que les scripts de shell entrent en jeu. Ajouter un Script de lancement bloquer et le connecter au Filtre de fichier bloquer, tout comme le Fichier ouvert bloc.

Met le La langue à / usr / bash. dans le Scénario zone, type qlmanager -p “query”> & / dev / null &. Décochez tous les S'échapper choix afin que votre nom de fichier ne soit pas changé.

Remarquez le question macro. Cette macro s'étendra à tout ce qui a été passé à ce bloc depuis le bloc précédent. Dans ce cas, ce sera le chemin complet du fichier dans le dossier Téléchargements annuaire.

Ce que ce bloc fera est de remplacer le question chaîne avec le chemin complet du fichier que vous avez sélectionné, puis exécutez le script en tant que script shell bash.

Pointe: Tous les scripts sont exécutés directement sans lire dans vos fichiers de préférences pour le type de script. Par conséquent, votre fichier «.bashrc» ne sera pas chargé dans un script bash, ni votre fichier «.zshrc» dans un script zsh. Seul l'environnement nu configuré par le système est en place.

Si les commandes que vous utilisez nécessitent la définition de certaines variables d’environnement, vous devez soit charger manuellement le fichier de préférences, soit les ajouter à votre script..

Alfred travaille de cette façon pour exécuter les scripts plus rapidement. Mais, il peut être difficile d'écrire des scripts qui fonctionnent la première fois!


Téléchargements Tamer: Ajout du modificateur de clé de contrôle

Vous pouvez connecter autant de blocs que vous le souhaitez à un seul bloc. Mais, si vous exécutez la macro maintenant, le fichier sera ouvert dans son application par défaut et en aperçu rapide! Ce n'est vraiment pas le comportement nécessaire.


Téléchargements Tamer: Ajout d'une option de prévisualisation

Pour résoudre ce problème, double-cliquez sur la ligne allant au Script de lancement bloc. Cela vous permettra de définir un Modificateur d'action et un Modificateur sous-texte. Définissez-les comme vous le voyez ici. Cela vous permet de changer l’action du Filtre de fichier bloc basé sur une touche de modification. Maintenant, si vous venez de sélectionner un fichier, celui-ci s’ouvrira dans son application par défaut. Mais si vous tenez le Contrôle touche lors de la sélection d’un fichier, il affichera un aperçu du fichier.


Téléchargements Tamer: Previewing in Alfred

Le flux de travail devrait maintenant ressembler à ceci. Vous pouvez voir la balise de modificateur sur la ligne allant à la Script de lancement bloc. De cette façon, il est facile de voir comment déclencher chaque action.


Téléchargements Tamer: Ajout de la suppression à la corbeille - Script

Lorsque le flux de travail est déclenché, si vous maintenez la touche enfoncée, Contrôle clé, le texte sous le nom du fichier sera changé en Aperçu. Il utilisera maintenant le système de prévisualisation OS X (Quick Look) pour afficher le fichier..


Téléchargements Tamer: Ajout de suppression à la corbeille

La fonction suivante consiste à supprimer le fichier. Une fois encore, un script bash peut être utilisé pour accomplir cette tâche. Ajouter un Script de lancement bloc. N'oubliez pas de décocher tous les S'échapper choix et le configurer pour exécuter un script bash.

Maintenant, pour certaines décisions de conception. Vous pouvez simplement utiliser le rm -f commande pour supprimer de force le fichier du répertoire Téléchargements. Mais, vous ne pouvez jamais annuler cette décision. Par conséquent, il serait préférable de déplacer le fichier dans le dossier Corbeille OS X. Comme il n'y a pas de ligne de commande intégrée pour cela, vous devrez télécharger le travail de quelqu'un d'autre et l'utiliser. N'oubliez pas de dire aux autres utilisateurs de votre flux de travail où trouver le programme. Les programmes gratuits sont super!

Par conséquent, téléchargez le programme en ligne de commande de la corbeille et placez-le dans votre chemin (/ usr / local / bin serait bon. Le programme est également livré avec un script d’installation.). Puis remplissez la zone de script avec / usr / local / bin / trash “query”. Cela devrait ressembler à la capture d'écran ci-dessus.


Téléchargements Tamer: Ajout de suppression à la corbeille

Définissez cette ligne pour utiliser le Une fonction touche de modification. Maintenant, lorsque vous sélectionnez un fichier avec le Une fonction Si vous appuyez sur cette touche, ce fichier sera déplacé vers la corbeille. Si vous voulez annuler la suppression, ouvrez simplement le dossier Corbeille et dites-lui de restaurer l'élément..


Téléchargements Tamer: Ajout Open dans le bloc Alfred

Maintenant, ajoutez un Naviguer dans Alfred bloc. Cela nous permettra d'utiliser les actions créées par Alfred sur les fichiers du dossier. Changer la connexion pour le Naviguer dans Alfred bloquer à Décalage touche modificatrice.

Pointe: Vous n'avez vraiment pas besoin d'ajouter un Ouvrir dans le Finder bloc. C’est l’action par défaut du Commander touche dans le navigateur Alfred.
Téléchargements Tamer: Alfred Browser

C'est le navigateur Alfred. Comme je n’ai qu’un seul fichier ici, c’est le seul qui est affiché. Avec ce fichier sélectionné, vous pouvez appuyer sur le bouton flèche droite clé, vous obtiendrez une liste d'actions à entreprendre sur ce fichier.


Téléchargements Tamer: Alfred Browser - Actions sur les fichiers

Avec cette liste d’actions, vous pouvez faire défiler la liste pour toutes les voir ou commencer à taper le nom de l’action pour réduire la taille de la liste jusqu’à ce que vous trouviez celle de votre choix. Il existe de nombreuses actions de fichier prédéfinies et de nombreux flux de travail ajoutent leurs propres actions de fichier..

Supposons que le logiciel de capture d'écran enregistre les images dans le dossier Téléchargements (la plupart d'entre elles sont enregistrées sur le bureau mais je n'aime pas encombrer mon bureau. Par conséquent, je les enregistre dans mon dossier Téléchargements.). UNE Envoyer au projet en cours action de fichier m'aiderait à nettoyer ces fichiers dans mon Téléchargements dossier.

Flux de travail du chef de projet

UNE Action de fichier block permet la création de nouvelles actions sur un fichier ou un groupe de fichiers sélectionné dans le navigateur Alfred. Depuis un Déplacer vers le projet actuel action de fichier est hors de la portée d'un Téléchargements Tamer, un nouveau flux de travail doit être créé pour gérer notre projet.


Téléchargements Tamer: Workflow Project Manager

Créez un nouveau flux de travail et étiquetez-le Chef de projet. La description est définie sur Un workflow pour vous aider à gérer vos projets., mais vous pouvez en faire ce que vous voulez.

L'identifiant du paquet est com.customct.MTProject. L'identifiant de paquet est très important et devrait être très unique pour le flux de travail. J'utilise toujours l'adresse de mon site dans l'ordre de recherche inversé (tiré des conventions de dénomination DNS) et du nom du flux de travail pour identifier le flux de travail de manière unique. L'auteur peut être vous. Le site web est votre site web ou rien.

Actions de fichier

Maintenant que nous avons un workflow pour gérer notre projet, nous pouvons utiliser un Action de fichier bloquer pour déplacer des fichiers dans notre répertoire de projet sélectionné.


Téléchargements Tamer: File Action - Déplacer vers le projet actuel

Créer un Action de fichier bloquer avec le nom défini sur Déplacer vers le projet actuel. Cochez également l'option permettant d'accepter plusieurs fichiers. De cette façon, il sera possible de sélectionner plusieurs fichiers et d’avoir la Action de fichier travailler sur tous à la fois. Comme tout type de fichier est autorisé, vous quitterez le Les types zone vide.


Téléchargements Tamer: Action sur le fichier - Déplacer vers le projet actuel - Script

Pour effectuer le travail, vous devez utiliser un Script de lancement bloquer pour faire le travail musculaire. Met le La langue à / bin / bash et éteignez tous les S'échapper options. Définissez le script sur:

 / bin / mv "query" ~ / projects / myproject

le ~ / projets / mon projet devrait être changé dans le répertoire de votre projet actuel. C’est l’approche codée en dur qui n’est pas trop partageable, mais qui sera corrigée ultérieurement.

Avec les deux blocs connectés de cette manière, vous pouvez envoyer n’importe quel fichier dans notre répertoire de projet actuel. Mais le Action de fichier block est configuré pour autoriser l'envoi de plusieurs fichiers. Lorsque plusieurs fichiers sont sélectionnés dans Alfred Browser en utilisant Option-Shift, Alfred enverra la liste des fichiers à votre Action de fichier dans une liste séparée par des onglets (une description complète de l’utilisation du tampon de fichier est disponible sur le site Alfred Support.).

Pour résoudre ce problème, vous devez effectuer davantage de scripts. Modifiez le script comme suit:

 generate_list () echo "requête" projDir = "~ / votre / projet"; pour le fichier dans $ (generate_list) do mv "$ fichier" "" $ projDir "; terminé

Votre Script de lancement le bloc devrait maintenant ressembler à ceci:


Téléchargements Tamer: Action sur le fichier - Déplacer vers le projet actuel - Correction du script

le generate_list function est un moyen rapide de transformer la chaîne séparée par des tabulations en une liste de valeurs pour la boucle for…. La boucle for… assignera chaque élément de la liste au $ filen variable et effectuer le déménagement. Je mets le répertoire du projet à une variable. La prochaine étape consiste à renseigner la variable de manière dynamique au lieu de coder en dur la valeur..

Pointe: Remarquez l’utilisation de guillemets doubles autour des variables de la mv déclaration. Cela garantit que votre chemin sera suivi correctement même s'il y a des espaces dans les noms de chemin. Ceci est très important à retenir. Beaucoup de scripts meurent à cause de ce problème.

Scripting dans Alfred

Afin de corriger le problème de codage en dur du répertoire du projet, un moyen de stocker des informations doit être utilisé. Alfred s’occupe de cela en permettant aux workflows d’avoir deux zones de stockage de données appelées données et cache..

Le répertoire de stockage de données est destiné au stockage à long terme d'informations. Il incombe au flux de travaux de garder les informations à jour et fiables..

Le répertoire de cache est destiné aux informations temporaires. Les programmes qui effacent les caches de données sur votre système vont automatiquement supprimer ces fichiers.

Alfred créera et supprimera ces répertoires automatiquement. Mais pour le moment, il appartient au workflow de les maintenir.

Le répertoire de données est situé à ~ / Bibliothèque / Application Support / Alfred 2 / Données de flux de travail / BundleID.

Le répertoire de cache est situé à ~ / Library / Caches / com.runningwithcrayons.Alfred-2 / Données de flux de travail / BundleID.

le BundleID est l'ID d'ensemble attribué au flux de travail lors de sa création. Étant donné que chaque flux de travail est représenté dans ces répertoires, il est très important que chaque flux de travail ait un ID d'ensemble différent..

Pointe: Rappelez-vous: le ~ est le moyen utilisé par Unix pour se référer à votre répertoire personnel.

Comme vous pouvez le constater, ces structures de répertoires ont déjà des espaces dans leurs noms. C'est pourquoi vous devez vraiment en prendre soin lorsque vous écrivez des scripts..

Alfred's Script de lancement bloc permet d'utiliser une multitude de langages de programmation directement. Par exemple, un script peut être écrit en bash, zsh, AppleScript (également appelé osascript sur la ligne de commande), PHP, Python, Pearl ou Ruby. Indirectement, vous pouvez utiliser un script bash ou zsh pour exécuter un script dans un autre langage, tel que node.

Si Alfred ne répertorie que ces langues, c’est parce que ce sont les seules langues disponibles automatiquement sur la plate-forme Mac OS X. Toute autre langue aurait été installée par l'utilisateur.

Alfred appelle également la langue à partir de l’emplacement où elle a été installée à l’origine. Si vous installez une autre version de Ruby, vous devrez la référencer directement dans un script shell au lieu d'utiliser le descripteur de script Ruby standard dans un fichier. Script de lancement bloc.

Si vous créez un flux de travail nécessitant l'installation d'un autre langage de programmation, assurez-vous que l'utilisateur en est conscient dans la description du flux de travail. Il est également recommandé de mettre cette information dans le Lisez moi domaine du flux de travail.

Pour utiliser ces connaissances, vous devez modifier le script comme suit:

 ########################### # Contants. ######################### VPREFS = "$ HOME /Library/Caches/com.runningwithcrayons.Alfred-2/Workflow Data /" NVPREFS = "$ HOME / Bibliothèque / Application Support / Alfred 2 / Données de flux de travail /" ############################## ################################################ # Lis le bundleid de info.plist du flux de travail ######################################### #################################### getBundleId () / usr / libexec / PlistBuddy -c " Print: bundleid "" info.plist " ####################################### ####################################### # Obtenir les données du flux de travail dir ##### ################################################# ####################### get getDir () BUNDLEID local = $ (getBundleId) echo "$ NVPREFS $ BUNDLEID" si [! -d "$ (getDataDir)"]; puis mkdir -p "$ (getDataDir)"; touchez "$ (getDataDir) /projectDir.txt"; fi generate_list () echo "requête" projDir = "cat" $ (getDataDir) /projectDir.txt ""; si [-z "$ projDir"]; then echo "Aucun projet n'est défini!"; sortie; fi pour le fichier dans $ (generate_list) do mv "$ fichier" "" $ projDir "; done echo "Les fichiers ont été déplacés!";

La section en haut permet de définir les différents emplacements de nos répertoires de données en constantes à utiliser dans le script. Il est toujours recommandé de mettre des éléments de valeur constante dans une constante pour que votre script puisse les utiliser. Par conséquent, si cela doit être changé plus tard, ce sera une chose très simple à faire..


Téléchargements Tamer: bouton Ouvrir le dossier de flux de travail

Ensuite, la fonction getBundleId utilise un programme sous OS X pour lire la liste de contrôle du flux de travail, info.plist, et récupérer cet identifiant. Le répertoire est situé dans le répertoire des flux de travail. Quand tu regardes un Script de lancement bloc, vous remarquerez en bas à droite de la fenêtre de script un bouton intitulé Ouvrir le dossier de workflow. Cela ouvrira le dossier de votre flux de travail dans le Finder.

Si votre programme utilise des graphiques ou d’autres scripts qui ne sont jamais modifiés, c’est un excellent emplacement pour les stocker. Lorsque vous partagez un flux de travail, tout ce répertoire est compressé dans le fichier de flux de travail..

le getDataDir function utilise simplement les constantes définies et l'ID de l'ensemble pour créer l'emplacement du répertoire de données. Le répertoire de cache n'est pas utilisé dans cet exemple.

le si block est utilisé pour créer notre répertoire de données et le fichier de données utilisé pour le stockage du répertoire de projet, s'ils n'existent pas déjà. Tous les scripts que vous écrivez et qui utilisent ces répertoires doivent disposer de ce type de codage pour fonctionner correctement. Ne comptez pas sur un mot-clé d'initialisation, car l'utilisateur pourrait ne pas l'utiliser en premier!

Le changement suivant concerne la définition de la variable projDir. Il suffit de chatter le contenu de la projectDir.txt déposer dans la variable. Par conséquent, ce fichier doit comporter une seule ligne contenant le répertoire de notre projet..

Après avoir obtenu le projectDir ensemble de variables, la validité des données doit être vérifiée. Si l'utilisateur n'a pas encore défini de répertoire de projet, la variable doit être vide. Par conséquent, le script va tester une variable vide. S'il est vide, envoyez un message d'avertissement et quittez.

Pointe: Assurez-vous toujours que vos données sont correctes. Cela préserve de nombreuses erreurs dans votre flux de travail et aide les autres à se sentir comme si vous leur livriez un bon produit. Si vous oubliez cela, vous pouvez être sûr qu'il reviendra vous harceler à mort!
Téléchargements Tamer: Ajout d'un bloc de post-notification

À la toute fin, le script indique à l'utilisateur que le ou les fichiers ont été déplacés. J'aime toujours donner des commentaires à l'utilisateur. Cela aide l'utilisateur à sentir que quelque chose est en train de se faire. Par conséquent, les messages doivent être affichés dans un Post Notification bloc. Ajoutez-en un à la fin du flux de travail. Votre flux de travail devrait ressembler à l'image ci-dessus.


Téléchargements Tamer: Définition du répertoire de projet: filtre de fichier

Si la projectDir.txt Le fichier vient d'être créé par le script, il ne contiendra aucune information. Par conséquent, un moyen de définir ce fichier doit être créé! Le plus simple est d’utiliser un Filtre de fichier bloquer défini aux répertoires comme dans le premier tutoriel. Ajouter un Filtre de fichier bloquer et le remplir comme on le voit.


Téléchargements Tamer: Définition du répertoire de projet: bloc de script d'exécution

Maintenant, ajoutez un Script de lancement bloquer avec le script suivant:

 ########################### # Contants. ######################### VPREFS = "$ HOME /Library/Caches/com.runningwithcrayons.Alfred-2/Workflow Data /" NVPREFS = "$ HOME / Bibliothèque / Application Support / Alfred 2 / Données de flux de travail /" ############################## ################################################ # Lis le bundleid de info.plist du flux de travail ######################################### #################################### getBundleId () / usr / libexec / PlistBuddy -c " Print: bundleid "" info.plist " ####################################### ####################################### # Obtenir les données du flux de travail dir ##### ################################################# ####################### get getDir () BUNDLEID local = $ (getBundleId) echo "$ NVPREFS $ BUNDLEID" si [! -d "$ (getDataDir)"]; puis mkdir -p "$ (getDataDir)"; touchez "$ (getDataDir) /projectDir.txt"; fi echo "query"> "$ (getDataDir) /projectDir.txt"; echo "Le répertoire du projet est: requête";

Remarquez, cette fois la question la macro est utilisée deux fois. Vous pouvez l'utiliser autant de fois que vous le souhaitez dans les scripts.

Le répertoire passé de la Filtre de fichier bloc sera toujours un répertoire valide. Par conséquent, il n'a pas besoin d'être testé. Il suffit de faire écho dans le fichier dans notre répertoire de données et il est sûr.


Téléchargements Tamer: Définition du répertoire de projet: Configuration finale

Lorsque vous connectez le Script de lancement bloquer à la Post Notification bloquer, il devrait ressembler à la photo ci-dessus. Maintenant, le répertoire du projet peut être défini et modifié facilement.

Conclusion

Vous avez maintenant deux nouveaux flux de travail pour vous aider dans vos tâches quotidiennes: un pour parcourir votre dossier Téléchargements et un pour gérer vos projets. Essayez de les développer avec plus de fonctionnalités utiles. Par exemple, créez un Filtre de fichier et Fichier ouvert action permettant de modifier vos fichiers de projet ou de copier le code de suppression de fichier à partir du flux de travail Téléchargements Tamer afin de supprimer des fichiers de votre projet. On n'apprend jamais avant d'essayer soi-même des choses!

Le didacticiel avancé étendra ces deux flux de travail à l'aide de scripts encore plus complexes et utilisera d'autres bibliothèques pour faciliter l'utilisation des flux de travail Alfred. Amusez-vous à écrire des scripts!

Mettre à jour: Un nouveau site de partage de flux de travail est maintenant disponible: Packal qui promet également de disposer d'un flux de travail compatible avec ce site..