mise à jour et lf (list file) file manager
salutations :)
la sortie de nakeDeb-1.5.6 est prévue pour le dernier week-end de juin avec pas mal
de mises à jour au programme. si vous faites vos updates de façon régulière, vous
devriez déjà être sur nakedeb-1.5.6 ;)
cette grosse mise à jour s’accompagne du changement de gestionnaire de fichiers
en console par défaut, passant de ranger
à lf
. à cette occasion, je vous propose
un petit tutoriel à propos de lf
et sa configuration.
sur nakeDeb, la configuration par défaut de lf
est située dans /etc/skel/.config/lf
.
pour profiter de la configuration nakeDeb, lancez la mise à jour puis copiez les fichiers
et scripts dédiés dans votre dossier personnel :
mkdir -p ~/.config/lf && cp /etc/skel/.config/lf/* ~/.config/lf/
prise en main
lf
est un navigateur en console, il se lance donc depuis un terminal.
son interface est similaire à celle de ranger
, avec une vue en panneaux et une
prévisualisation des fichiers. il est hautement configurable via son fichier de
configuration et/ou l’appel à des scripts externes.
lors du lancement, lf
se place dans le dossier courant (généralement le $HOME) et
liste les dossiers et fichiers présents. le panneau de droite affiche l’arborescence
du dossier visé ou un aperçu du fichier sélectionné.
lf
ne gère pas les onglets comme ranger
mais il fonctionne sur le mode
client/serveur, ce qui vous permet de copier un fichier sur une instance et de le
coller dans une autre. la gestion des onglets est laissée aux gestionnaires
de fenêtres.
rappel : sur fluxbox, les onglets sont activés avec un
Ctrl
+clic-gauche sur la barre de titre. sur i3 ou sway, les onglets
sont activés par défaut ou grâce au raccourci Alt
+t
.
raccourcis et commandes lf
sur nakeDeb
tous les raccourcis et commandes peuvent être modifiés depuis le fichier de
configuration ~/.config/lf/lfrc
(section suivante).
notez que lf
utilise l’auto-completion : lorsque vous pressez une touche pouvant
former un raccourci ou lorsque vous commencez une commande, les possibilités
s’affichent directement dans la fenêtre lf
(avec Tab
pour une commande),
vous permettant de compléter votre commande ou d’abandonner avec Esc
.
voici les principales commandes et les raccourcis courants pour profiter pleinement
de votre gestionnaire de fichiers en console.
- afficher l’aide : touche
F1
ou commande:doc
sans oublierman lf
- naviguer dans l’arborescence : flèches directionnelles ou raccourcis vim (h,j,k,l)
- rejoindre le haut de la liste : raccourci
gg
- rejoindre le bas de la liste : touche
G
(maj) - afficher le dossier personnel : raccourci
gh
- ouvrir un fichier avec l’application définie dans
lfrc
: flèche droite, lettrel
ou commande:open
- ouvrir un fichier avec
xdg-open
: toucheo
- sélectionner/désélectionner une ou plusieurs entrées : touche
Espace
- sélectionner toutes les entrées, inverser la sélection : touche
v
- tout désélectionner : touche
u
- copier la sélection : touche
y
ou commande:copy
- couper la sélection : touche
d
ou commande:cut
- coller la sélection : touche
p
ou commande:paste
- annuler le raccourci : touche
c
- ouvrir une nouvelle instance de
lf
: raccourcign
- rechercher : touche
/
- renommer : touche
r
- passer en invite de commande : touche
w
- passer en mode
shell
: toucheEnter
- éditer le fichier : touche
e
- afficher le fichier : touche
i
- créer un dossier : touche
a
- exécuter directement un script : touche
x
- exécuter un script et voir le retour : touche
X
(maj) - afficher l’usage disque du dossier courant : touche
U
(maj) - afficher toutes les images du dossier courant : touche
V
(maj) - extraire une archive dans le dossier courant : commande
:extract
- compresser la sélection : commande
:tgz
ou:zip
selon le format voulu - mettre la sélection à la corbeille : touche
T
(maj) ou commande:trash
- supprimer la sélection (avec confirmation) : touche
delete
ou commande:delete
- éditer la configuration
lf
: toucheC
(maj) ou commande:edit-config
- quitter
lf
: toucheq
ou commande:quit
les différents modes de lf
lf
, comme ranger
ou vim
, accepte différents modes ($f
désigne un fichier, $fx
désigne la sélection) :
- mode read
:
: lit une commandelf
à évaluer. pour une liste des commandes disponibles.:
+Tab
ouman lf
ex ::find foo
pour chercher “foo” dans le dossier courant - mode shell
$
: lit une commande à exécuter
ex :$nsxiv $fx
pour ouvrir la sélection avecnsxiv
- mode shell-pipe
%
: lit une commande à exécuter et affiche son retour dans la stat-line en bas de la fenêtrelf
ex :%ls | wc -l
pour compter les éléments du dossier courant - mode shell-wait
!
: lit une commande à exécuter, affiche le retour dans la console et attend l’utilisateur pour revenir à l’interface principale.
ex :!du -kh | less -R
pour afficher la place occupée par le dossier courant et ses sous-dossiers puis passer le retour àless
- mode shell-async
&
: lit une commande à exécuter en externe
ex :&gimp $fx
pour ouvrir la sélection avec the Gimp en arrière-plan
configuration
- la configuration de
lf
passe par l’édition de son fichier principal~/.config/lf/lfrc
, - le colorscheme est fonction du fichier
~/.config/lf/colors
, - les icônes sont définies dans
~/.config/lf/icons
.
pour lancer lf
“à vide” sans prendre en compte votre configuration, lancez lf
avec l’option de configuration vide ainsi : lf -config ""
le fichier lfrc
permet de définir les options par défaut de lf
(avec set
),
les raccourcis clavier (avec map
) et les commandes disponibles (avec cmd
).
ce fichier est entièrement commenté sur nakeDeb mais voici quelques exemples :
définition des options :
# définir le shell par défaut
set shell sh
# affiche la taille des fichiers et le nombre d'éléments par dossier
set info size
set dircounts
# active l'aperçu des fichiers
set preview
définition des raccourcis :
# activer ou désaciver les aperçus
map zv set preview!
# afficher/masquer les fichiers et dossiers cachés
map <backspace> set hidden!
# éditer le fichier sélectionné avec l'éditeur par défaut
map e $$EDITOR $f
définition de commandes :
# extraire une archive selon son extension dans le dossier courant
cmd extract ${{
set -f
case $f in
*.tar.bz|*.tar.bz2|*.tbz|*.tbz2) tar xjvf $f;;
*.tar.gz|*.tgz) tar xzvf $f;;
*.tar.xz|*.txz) tar xJvf $f;;
*.zip) unzip $f;;
*.rar) unrar x $f;;
*.7z) 7z x $f;;
*) dtrx $f;;
esac
}}
# afficher toutes les images du dossier courant avec nsxiv-rifle
cmd view-all-pics &~/.config/lf/nsxiv-rifle $PWD
# assigner le raccourci "V" à la commande "view-all-pics"
map V view-all-pics
comme vous le constatez, la dernière commande view-all-pics
fait appel à un
script externe, ici nsxiv-rifle
(intégré par défaut sur nakeDeb). plus de détails
dans la section suivante.
cas particulier : la commande :open
lf
peut ouvrir vos fichiers avec l’application par défaut du système grâce à
xdg-open
avec la touche o
mais vous pouvez définir un autre comportement dans
le lfrc
. sur nakeDeb, voici les applications dédiées pour ouvrir vos fichiers
avec la commande :open
, la lettre l
ou la flèche de droite. $OPENER
désigne le lanceur par défaut du système (xdg-open
sur nakeDeb) :
# define a custom 'open' command - filter by mimetype
cmd open &{{
case $(file --mime-type -Lb $f) in
text/*) lf -remote "send $id \$$EDITOR \$fx";;
image/x-xcf) lf -remote "send $id \$gimp \$fx &";;
image/*) lf -remote "send $id \$nsxiv -p \$fx &";;
audio/*|video/*) lf -remote "send $id \$mpv --no-terminal \$fx &";;
*) for f in $fx; do $OPENER $f > /dev/null 2> /dev/null & done;;
esac
}}
les couleurs dans lf
les couleurs des dossiers et fichiers peuvent être modifiés depuis le fichier
~./config/lf/colors
. ce fichier est du type dircolors
et vous permettra de
définir la couleur d’affichage des dossiers ou fichiers selon leur extension ou
leur nom. les couleurs peuvent être au format classique 01;34
(blue gras) ou
256-colors 38;5;136;1
(orange gras).
pour revenir aux couleurs par défaut, renommez ou supprimez le fichier
colors
. plus d’infos à propos des escape codes
sur
wikipédia ou sur
stackoverflow.
vous pouvez configurer finement vos couleurs par nom sous la forme
<adresse du dossier/fichier> <séquence couleur>
. ainsi, pour afficher votre
dossier “Documents” en rouge et votre dossier “Images” en jaune gras:
~/Documents 00;31
~/Images 01;33
les icônes dans lf
lf
peut afficher des icônes sous forme de glyphes grâce à une police appropriée.
la documentation officielle préconise “NerdFont” mais
toute autre police munie de glyphes peut convenir, il suffit de la déclarer.
sur nakeDeb, les polices “InconsolataNerdFontMono-Regular/Bold” (pour rxvt-unicode)
et “forkawesome” sont intégrées par défaut.
notez que les résultats sont différents selon le support du terminal. ainsi,
rxvt-unicode
déclare sa police dans le ~/.Xresources
pour afficher les glyphes :
URxvt.font: xft:Hack:regular:pixelsize=11,xft:InconsolataNerdFontMono-Regular:pixelsize=11
URxvt.boldfont: xft:Hack:bold:pixelsize=11,xft:InconsolataNerdFontMono-Bold:pixelsize=11
foot
sur la session sway
déclare la police forkawesome
dans ~/.config/foot/foot.ini
sous la forme :
font=Hack:size=7,forkawesome:size=7
la configuration des icônes pour lf
passe par l’édition du fichier
~/.config/lf/icons
et permet ce genre de rendu (ici, lf
dans foot
sur
sway
) :
comme pour les couleurs, vous pouvez configurer finement les icônes par nom sous
la forme <adresse du dossier/fichier> <glyphe>
appels à des scripts externes
comme vous l’avez vu dans la configuration, lf
utilise des scripts pour ouvrir ou
visualiser les fichiers. sur nakeDeb, 3 scripts sont utilisés : nsxiv-riffle
,
pv.sh
et scope.sh
.
nsxiv-riffle
permet de sélectionner toutes les images du dossier courant selon
leur extension et les envoie vers nsxiv
.
pv.sh
et scope.sh
sont les deux scripts disponibles pour les aperçus. le
premier est un script sh
qui définit l’aperçu selon l’extension tandis que le
second, hérité de ranger
, propose un filtrage plus complet selon l’extension ou
le type mime.
vous pouvez configurer le type d’aperçu désiré dans la section “preview” du lfrc
:
# preview #####################################################################
# active les aperçus
set preview
# désactive les aperçus
#set preview!
# définir un "previewer" vide pour n'afficher que les fichiers texte
#set previewer
# utiliser le "previewer" sh classique
set previewer ~/.config/lf/pv.sh
# utiliser le "previewer" complet hérité de ranger
#set previewer ~/.config/lf/scope.sh
# active/désactive les aperçus
map zv set preview!
# utiliser le "previewer" pour afficher les fichiers
map i $~/.config/lf/pv.sh $f | less -R
pour accélérer encore lf
, vous pouvez désactiver les aperçus par défaut et les
activer au besoin avec le raccourcis zv
.
vous pouvez utiliser d’autres scripts dans d’autres langages afin de compléter
les fonctions de lf
.
retour perso…
j’ai découvert lf
grâce aux commentaires de
zbig qui trouvait
(à raison) ranger
trop lent sur les petites configurations. après à peine une
semaine de tests, je l’ai adopté au quotidien et intégré à nakeDeb. ce gestionnaire
est encore en développement actif mais il est largement utilisable et réellement
plus rapide et moins gourmand que ranger
.
la seule chose qui me manque est la prise en compte des dépôts git
même si un
script existe pour afficher quelques infos, elles ne sont pas aussi détaillées
que sur ranger
.
je reste néanmoins persuadé que vous l’adopterez sans soucis en quelques heures :)
ressources & liens (en anglais)
++
arp