
Le problème
Lorsqu’on utilise lf (le gestionnaire de fichiers en terminal) avec Kitty et Tmux, l’affichage des prévisualisations d’images pose souvent problème : des résidus graphiques restent affichés à l’écran lors du passage d’une prévisualisation à une autre, rendant l’interface illisible.

Après plusieurs essais, j’ai trouvé une solution qui semble bien fonctionner. Elle repose sur trois éléments :
- La commande redraw de lf
- L’absence de script cleaner
- L’événement on-select de lf

Configuration de lf
Voici la configuration à ajouter dans votre fichier lfrc :
1set previewer ~/.local/bin/lfpreview
2cmd on-select &{{
3 exec lf -remote 'send redraw'
4}}
Le script de prévisualisation (previewer) sera détaillé plus loin. L’élément clé ici est l’utilisation de on-select pour demander à lf de se redessiner à chaque sélection. C’est cette commande qui effectue le nettoyage du terminal et assure un affichage propre des prévisualisations.
Le script de prévisualisation
Créez le fichier ~/.local/bin/lfpreview avec le contenu suivant :
1#!/bin/sh
2draw() {
3 kitten icat --stdin no --transfer-mode memory \
4 --place "${w}x${h}@${x}x${y}" "$1" </dev/null >/dev/tty
5}
6
7file="$1"
8w="$2"
9h="$3"
10x="$4"
11y="$5"
12
13case "$(file -Lb --mime-type "$file")" in
14 image/*)
15 draw "$file"
16 ;;
17 application/pdf)
18 pdftoppm -f 1 -singlefile "$file" "/tmp/lfoutput"
19 draw "/tmp/lfoutput.ppm"
20 ;;
21 *)
22 less "$1"
23 ;;
24esac
25
26exit 1 # do not cache
N’oubliez pas de le rendre exécutable :
1chmod +x ~/.local/bin/lfpreview
Cette version est simplifiée et gère :
- Les images (via kitten icat)
- Les PDF (conversion de la première page en image)
- Les autres fichiers (affichage via less)
Points importants
Le exit 1 en fin de script est crucial : il indique à lf de ne pas mettre les prévisualisations en cache. Sans cela, le mécanisme de rafraîchissement ne fonctionnerait pas correctement, car lf réutiliserait les prévisualisations cachées au lieu de réafficher l’image à chaque sélection.
Conclusion
Cette configuration fonctionne bien dans mon cas d’usage, mais il est possible qu’elle nécessite des ajustements selon votre environnement. N’hésitez pas à adapter le script de prévisualisation pour gérer d’autres types de fichiers selon vos besoins.