26

Choisir un gestionnaire de fichiers

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.

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 :

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.

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

Aperçu Thunar

(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).

Ceci dit, ça fonctionne bien. Il a tout de même deux défauts majeurs sous OpenBSD :

pas, mais c'est embêtant pour isotop.

environnements de bureau.

pcmanfm

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 :

m'ennuie un peu...

rox-filer

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 :

xfe1 xfe2

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).

ranger.

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.

noice

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...

Je termine donc par mon préféré que j'aurais aimé trouver plus tôt : 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 :

rover1

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" :

rover2

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 :

rover3

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.

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:

# get extension and lower it
ext="$(echo .${1#*.} | tr '[:upper:]' '[:lower:]')"

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*)
	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 :)

07/10/2020 15:22


Commentaires