Comment étendre PCManFM avec des actions personnalisées
PCManFM est un gestionnaire de fichiers gratuit et open source qui se veut une alternative légère à des applications comme Thunar (le gestionnaire de fichiers Xfce4 par défaut) ou Nautilus/Files (l’homologue GNOME). Bien que conçu pour être facile sur les ressources, PCManFM ne manque pas de fonctionnalités et peut être étendu avec des actions personnalisées.
Dans ce tutoriel, nous apprenons la syntaxe que nous pouvons utiliser pour définir des actions personnalisées et comment les utiliser pour étendre les fonctionnalités de PCManFM.
Dans ce tutoriel, vous allez apprendre :
- Comment installer pcmanfm sur certaines des distributions Linux les plus utilisées
- Comment définir une action personnalisée
- Comment vérifier le type mime d’un fichier
Installation
PCManFM est disponible dans les dépôts officiels de certaines des distributions Linux les plus utilisées, et peut donc être facilement installé en utilisant leurs gestionnaires de paquets respectifs. Pour installer l’application sur Fedora, par exemple, nous exécutons la commande suivante :
sudo dnf install pcmanfmPour installer le paquet « pcmanfm » sur Debian, Ubuntu, ou généralement toute autre distribution basée sur Debian, nous pouvons utiliser apt :
sudo apt install pcmanfm Sur Archlinux, la distribution Linux la plus célèbre, nous pouvons installer PCManFM en utilisant le gestionnaire de fichiers pacman :
sudo pacman -Sy pcmanfmPrésentation des actions personnalisées
PCManFM peut être étendu via des « actions personnalisées », qui, dans les cas appropriés, sont accessibles dans le menu contextuel de l’application. Ils sont assez faciles à écrire, car ils suivent la spécification Desktop Entry. Les actions personnalisées et les conditions de leurs applications (par exemple, sur quels fichiers elles doivent être appliquées, par exemple) sont définies dans des fichiers avec l’extension .desktop, placés dans le répertoire ~/.local/share/file-manager/actions.
Notre première action sur mesure
Rien de mieux que de faire quelque chose pour apprendre comment cela fonctionne et les concepts de base qui se cachent derrière, alors rédigeons notre première action personnalisée. Pour les besoins de ce tutoriel, nous allons écrire une action qui nous permettra de convertir les fichiers .epub au format .kepub. Pour ceux d’entre vous qui ne sont pas familiers avec les ebooks, Epub est le format de livre électronique standard et le plus utilisé, lisible par presque tous les lecteurs sauf les Kindles, tandis que « kepub » est une extension conçue par Kobo, à utiliser sur leurs appareils pour des fonctionnalités supplémentaires.
Pour effectuer la conversion, nous allons utiliser un petit utilitaire écrit en Go, appelé kepubify, donc comme première chose, nous devons l’installer. Nous pouvons le faire en exécutant la commande ci-dessous :
go install github.com/pgaskin/kepubify@latestDéfinition de l’action
Nous définissons notre action personnalisée en écrivant les lignes que vous pouvez voir ci-dessous dans le fichier ~/.local/share/file-manager/actions/kepubify.desktop (le nom est complètement arbitraire). Jetons un coup d’œil à la définition, puis discutons de ses composants :
[Desktop Entry]
Type=Action
Name=Kepubify
Profiles=epub_to_kepub
[X-Action-Profile epub_to_kepub]
MimeTypes=application/epub+zip;inode/directory
Exec=/home/egdoc/go/bin/kepubify %fTout d’abord, vous pouvez voir que nous avons défini des informations génériques sur l’action à l’intérieur de la strophe [Desktop Entry]. À l’intérieur de la strophe, nous avons utilisé la touche Type et lui avons attribué la valeur « Action » : c’est précisément ainsi que nous spécifions que nous définissons une action personnalisée.
Nous avons ensuite utilisé la clé Nom pour spécifier une étiquette pour l’action : c’est très important et devrait refléter de la manière la plus claire le but de l’action, puisque c’est ce que l’utilisateur verra dans le menu contextuel du gestionnaire de fichiers.
La clé Profils permet de spécifier la liste des profils associés à l’action. Nous pouvons utiliser plusieurs profils pour chaque action, par exemple, pour laisser l’action changer de comportement en fonction du type de fichiers sur lesquels elle est appelée. Lorsque plusieurs profils Id sont utilisés, ils doivent être séparés par un ; (point-virgule). Notre action n’a qu’un seul profil, que nous identifions comme « epub_to_kepub ». Chaque profil est défini dans sa propre section dédiée.
Définition d’un profil
Chaque profil associé à une action est défini dans la strophe [X-Action-Profile <profile-id>]. Dans l’exemple ci-dessus, nous avons utilisé deux clés pour définir le profil associé à notre action.
La première clé, Mimetypes, comme vous pouvez l’imaginer, est utilisée pour fournir la liste (séparée par des points-virgules) des types mime auxquels l’action doit être appliquée. Un type mime n’est rien de plus qu’une étiquette utilisée pour identifier un type spécifique de données/fichier. L’entrée du menu contextuel de notre action n’apparaîtra que lorsque nous cliquerons avec le bouton droit de la souris sur un fichier avec l’un des types mime spécifiés.
Comment pouvons-nous trouver le type MIME exact pour un fichier ? Lorsque nous travaillons à partir de la ligne de commande, nous pouvons utiliser l’utilitaire de fichiers avec l’option --mime-type. Voici ce que la commande renvoie lorsqu’un fichier epub est passé en argument :
file --mime-type "The Robots Of Dawn - Isaac Asimov.epub"
The Robots Of Dawn - Isaac Asimov.epub: application/epub+zipLe type mime application/epub+zip est en effet celui que nous avons utilisé dans notre profil, ainsi que inode/directory, qui est le type mime associé aux répertoires. Nous avons utilisé les deux types mime puisque l’utilitaire kepubify accepte soit un fichier, soit un répertoire comme argument. Lorsqu’un fichier epub est passé en argument, l’application le convertit et produit un fichier portant le même nom, mais avec l’extension epub.kepub. Lorsqu’un répertoire est passé en argument, tous les epubs qu’il contient sont convertis ; Les fichiers convertis sont placés dans un répertoire nommé en ajoutant la chaîne _converted au nom du répertoire d’origine.
Dans la définition d’un profil, la clé exec est cruciale : c’est avec cette clé que l’on spécifie la commande qui doit être exécutée lorsque l’utilisateur clique sur l’entrée de l’action dans le menu contextuel du gestionnaire de fichiers. Les paramètres peuvent être passés dans la valeur de la clé : ils sont substitués au moment de l’exécution. C’est exactement ainsi que l’on référence le fichier sur lequel l’utilisateur a effectué le clic droit, qui doit passer en argument à kepubify. Dans ce cas, nous avons utilisé le paramètre %f, qui est toujours substitué par le nom du premier fichier sélectionné.
Dans le tableau ci-dessous, vous pouvez voir d’autres paramètres et leur description. Pour la liste complète, vous pouvez consulter la spécification d’entrée de bureau :
| Paramètre | Description |
| %f | Le nom du premier fichier sélectionné |
| %F | La liste des noms d’éléments sélectionnés séparés par des espaces : il s’agit essentiellement de la forme plurielle de « %f » |
| %u | L’URI (Uniform Resource Identifier) du premier élément sélectionné |
| %U | La liste des URI des éléments sélectionnés, séparés par des espaces, |
| %c | Les éléments sélectionnés comptent |
Tester notre action personnalisée
Une fois que notre action est prête, nous pouvons la tester. Pour ce faire, nous pouvons vouloir lancer PCManFM à partir d’un émulateur de terminal, afin de visualiser toutes les erreurs possibles générées lors de l’exécution de l’action. Pour que PCManFM « voit » une nouvelle action, il faut toujours la redémarrer. Voici comment l’entrée de notre action personnalisée apparaît dans le menu contextuel lorsque nous cliquons avec le bouton droit de la souris sur un fichier epub :
Réflexions finales
Dans ce tutoriel, nous avons appris les bases de la définition et de l’utilisation d’une action personnalisée pour étendre les fonctionnalités du gestionnaire de fichiers PCManFM. Nous avons appris quelles sont les clés et les paramètres que nous pouvons utiliser dans la définition de l’action ; dans le processus, nous avons également appris ce que sont les mime/types, et comment nous pouvons vérifier le type mime d’un fichier sous Linux.

