# Choisir un gestionnaire de fichiers 2020-10-07T21:07:51Z Malgré la richesse du monde du logiciel libre, je trouve difficile de choisir quel gestionnaire de fichiers utiliser... Non, ce n'est pas vrai, je m'en sors très bien avec mv, ls, cp, mais je cherchais quelque chose de plus accessible pour reprendre le développement d'isotop. => https://www.3hg.fr/Isos/isotop/ isotop Voici donc le résultat de mes recherches non exhaustives sur OpenBSD -current en septembre 2020. ## Cahier des charges L'idéal pour moi serait : * Un gestionnaire avec peu de dépendances * léger * qui affiche des aperçus si possible * qui supporte les actions personnalisées (redimensionnement d'images, renommage en masse...) * encore à peu près maintenu. Ce n'est pas indispensable, après tout un outil qui marche bien et qui n'a pas besoin de nouvelles fonctionnalité n'a pas à voir de nouvelles publications. Mais c'est rassurant de savoir qu'un(e) développeur n'est pa sloin pour corriger une éventuelle faille. ## Les "gros" gestionnaires : Nautilus, Dolphin Je vais être honnête, je n'ai pas testé ces derniers. Ils sont trop dépéndants des environnements de bureau Gnome et KDE. ## Thunar Thunar est un excellent gestionnaire de fichiers. Il est rapide, léger, supporte les onglets, les aperçus et les actions personnalisées. Ces dernières sont très facilement configurables. => https://docs.xfce.org/xfce/thunar/start Thunar Toutefois, il requiert des dépendances à Xfce dont j'aimerais me passer. La preuve: ``` $ doas pkg_add thunar doas (prx@shaihulud.my.domain) password: quirks-3.439 signed on 2020-10-01T20:26:48Z thunar-1.8.15:gvfs-1.44.1p0: ok thunar-1.8.15:startup-notification-0.12p6: ok thunar-1.8.15:libwnck3-3.36.0: ok thunar-1.8.15:libxfce4util-4.14.0p0: ok thunar-1.8.15:xfconf-4.14.3: ok thunar-1.8.15:yelp-xsl-3.36.0: ok thunar-1.8.15:geoclue2-2.4.13: ok thunar-1.8.15:orc-0.4.29: ok thunar-1.8.15:gstreamer1-1.18.0: ok thunar-1.8.15:cdparanoia-3.a9.8p4: ok thunar-1.8.15:gstreamer1-plugins-base-1.18.0: ok thunar-1.8.15:enchant2-2.2.11: ok thunar-1.8.15:hyphen-2.8.8: ok thunar-1.8.15:woff2-1.0.2p0: ok thunar-1.8.15:webkitgtk4-2.30.1: ok thunar-1.8.15:yelp-3.36.0: ok thunar-1.8.15:amtk-5.0.2: ok thunar-1.8.15:gnome-devel-docs-3.32.1: ok thunar-1.8.15:devhelp-3.36.2: ok thunar-1.8.15:glade-3.36.0p0: ok thunar-1.8.15:libxfce4ui-4.14.1p0: ok thunar-1.8.15:garcon-0.6.4p0: ok thunar-1.8.15:p5-URI-1.76p0: ok thunar-1.8.15:exo-0.12.11: ok thunar-1.8.15:xfce4-panel-4.14.4: ok thunar-1.8.15: ok Running tags: ok ``` => https://pix.toile-libre.org/upload/original/1602078931.png Aperçu Thunar [IMG] (La capture d'écran est prise avec le thème d'icônes Tango que j'aime beaucoup :P). On voit par ailleurs qu'il ne sait pas gérer l'absence de certaines icônes... C'est un détail, mais ça m'énerve. Ce petit défaut esthétique ne retire pas les nombreuses qualités de ce gestionnaire. ## Pcmanfm Voici une excellent alternative à Thunar sans les dépendances à Xfce puisque supporté par l'environnement LXDE. Il supporte lui aussi dans une certaine mesure les actions personnalisées : il faut créer un fichier ".desktop" dans ~/.local/share/file-manager/actions. Toutefois, le site officiel semble peu à jour et je me demande où va le projet puisqu'il y a maintenant lxQT et pcmanfm-qt qui est développé (mais carrément moche actuellement). => https://wiki.lxde.org/fr/PCManFM officiel Ceci dit, ça fonctionne bien. Il a tout de même deux défauts majeurs sous OpenBSD : * Il n'est pas traduit en français. Ça ne me gêne pas, mais c'est embêtant pour isotop. * Le menu "applications" reste vide : il dépend des autres environnements de bureau. => https://pix.toile-libre.org/upload/original/1602079468.png pcmanfm [IMG] ## Rox-filer Voilà une bête de course. Je n'ai pas trouvé plus rapide. Il est possible de définir des actions personnalisées, et même si l'apparence a un peu vieilli, une fois bien configuré il est très pratique et à la limite joli. Seuls bémols : * Les raccourcis clavier par défaut sont déroutants * Pas d'onglets (mais osef) * Pas traduit * La progression lors d'une copie est peu précise * Il ne semble plus maintenu depuis des années et ça m'ennuie un peu... => https://pix.toile-libre.org/upload/original/1602079737.png rox-filer [IMG] ## Xfe : X File Explorer Voici mon préféré. Il est à la fois rapide, scriptable, indépendant, et toujours maintenu!!! Au look un peu rétro de prime abord, on peut facilement obtenur une interface agréable avec des aperçus. Il intègre des visualiseurs basiques bienvenus : visualiseur d'images xfi, un éditeur de texte xfw. On peut avoir une vue en panneaux ou classique : => https://pix.toile-libre.org/upload/original/1602080162.png xfe1 [IMG] => https://pix.toile-libre.org/upload/original/1602080107.png xfe2 [IMG] Il est aussi possible d'y intégrer des scripts pour le renommage/redimensionnement... en les déposant dans $HOME/.config/xfe/scripts. C'est clairement mon favori lorsque j'ai besoin d'un client graphique. ## mc, ranger, noice, nnn, rover : les clients en mode texte? Pour gérer les fichiers, le shell c'est très bien, mais il existe aussi des gestionnaires en console qui permettent de tout faire du bout des doigts et être très efficace. Le plus conne est sans doute Midnight Commander, donc je n'en parlerai pas ici. Je vais plutôt parler de ceux qui utilisent des raccourcis à la vi. Vient ensuite un de mes préférés : ranger, intégré dans la nakedeb (pub subtile ;)). Je l'ai utilisé longtemps, il est top, avec un visualiseur bien fichu. Mais il est en python, et si possible je cherche des alternatives plus rapides en C (choix très personnel et pas forcément recevable). => https://github.com/ranger/ranger ranger => https://arpinux.org/home/article78/nakedeb-01-beta-jouet-sameliore nakedeb => https://raw.githubusercontent.com/ranger/ranger-assets/master/screenshots/screenshot.png ranger [IMG] Puisque j'aime le C, je suis tombé sur noice. Pour le coup, j'ai utilisé ce dernier longtemps, il est très rapide, permet de se déplacer dans une hiérarchie avec efficacité. Il souffre toutefois de ne pas gérer la copie et déplacement des fichiers : c'est donc davantage un lanceur. => https://git.2f30.org/noice/ noice => https://pix.toile-libre.org/upload/original/1602081006.png noice [IMG] Vient ensuite le successeur de noice : nnn. Très intéressant, ce dernier ajoute des "vues" qui permettent d'avoir plusieurs dossiers d'ouverts en même temps. Il est bien fichu, il faut l'admettre, et peut être énormément configuré avec un tas de plugins. Je lui trouve tout de même un gros défaut : sa dépendanc eà xdg-open pour ouvrir des fichiers : c'est peu pratique quand on veut choisir les applications par défaut selon le type de fichier : il faut se manger du xdg-mime default app.desktop image.jpeg et çe pour tous les types mime... => https://github.com/jarun/nnn nnn Je termine donc par mon préféré que j'aurais aimé trouver plus tôt : rover. => https://lecram.github.io/p/rover/ rover Déjà, il s'installe en le compilant, mais ça prend 2 secondes : ``` git clone --depth=1 https://github.com/lecram/rover.git cd rover && make && make install PREFIX=$HOME ``` Il est coloré par défaut : => https://pix.toile-libre.org/upload/original/1602081406.png rover1 [IMG] On navigue avec "h/j/k/l". Jusque là, on n'est pas perdus. On peut éditer un fichier avec "e" ou juste le lire avec "espace". Pour chercher un fichier, on utiliser "/" puis on écrit sa recherche. Pour ouvrir un shell dans le dossier courant, il suffit d'appuyer sur "Entrée. Il dispose de plusieurs vues accessibles avec les nombres "1,2,3....". Mais ce qui est absolument génial, c'est qu'on peut copier/déplacer des fichiers. Tout d'abord, on les marque avec "m" : => https://pix.toile-libre.org/upload/original/1602081573.png rover2 [IMG] Ensuite, on change de dossier. Ici, pous la démonstration, je vais appuyer sur "2" pour ouvrir un nouveau contexte et me déplacer dans "/tmp". Je copie les fichiers précédemment marqués avec "C", une barre de progression s'affiche : => https://pix.toile-libre.org/upload/original/1602081644.png rover3 [IMG] Enfin, et ça c'est hyper fort, on peut ouvrir les fichiers avec la touche "o". Afin de pouvoir configurer quelle commande lancer selon l'extension, la FAQ donne un exemple. => https://github.com/lecram/rover/blob/master/FAQ.md FAQ Il faut ajouter export ROVER_OPEN="rover-open" dans $HOME/.profile puis céer le script rover-open à placer dans votre $PATH, donc /usr/local/bin par exemple. Chez moi, c'est $HOME/bin. Ce script prendra cette forme : ``` #! /bin/sh # Usage: # ./open.sh /path/to/file # get extension ext="$(echo .${1#*.} | tr '[:upper:]' '[:lower:]')" # lower extension case "${ext}" in *.htm|*.html) fmt="$BROWSER %s" ;; *.pdf|*.xps|*.cbz|*.epub) fmt="mupdf %s" ;; *.jpg|*.jpeg|*.png|*.gif|*.tiff) fmt="sxiv %s" ;; *.odt|*.odt|*.ods|*.od*|*.docx|*.doc|*.xls|*.xlsx) fmt="libreoffice %s" ;; *.mp4|*.avi|*.mpg|*.ogv|*.webm|*.mkv) fmt="ffplay %s" ;; *.ogg|*.flac|*.wav|*.mp3) fmt="ffplay %s" ;; *.[1-9]) fmt="man -l %s" ;; *.c|*.h|*.sh|*.lua|*.py|*.ml|*[Mm]akefile|*.md) fmt="$EDITOR %s" ;; *) fmt="xdg-open %s" esac exec sh -c "$(printf "$fmt" "\"$1\"")" ``` Il me suffit d'éditer ce petit script si je veux modifier/ajouter la façon dont mes fichiers seront ouverts. Comme vous le voyez, c'est xdg-open qui est appelé, mais seulement si je n'ai rien précisé d'autre. rover a été mis à jour le 2 juin 2020 donc semble toujours bien maintenu. Je vous invite à le tester, il est super :) => https://github.com/lecram/rover/commit/2ec364f923b60b8b1e68ffe4c705b82d9a487056= dernière mise à jour de rover ### Une réaction? => mailto:bla@bla.si3t.ch?subject="Choisir-un-gestionnaire-de-fichiers" 📧 Envoyez votre commentaire par mail. => mailto:bla+subscribe@bla.si3t.ch 📫 Abonnez-vous pour recevoir les réponses => /log/commentaires/ 📚 Consultez les archives. => mailto:bla+unsubscribe@bla.si3t.ch 💨 Vous désinscrire