diff --git a/system/lf.md b/system/lf.md new file mode 100644 index 0000000..30da291 --- /dev/null +++ b/system/lf.md @@ -0,0 +1,75 @@ +--- +title: "lf - The Light File Manager" +tags: [ "Documentation", "File Browser" ] +--- + +## Config File + +If you don't have a `~/.config/lf/lfrc` file, you can probably find an example in `/usr/share/examples/lf`. + +```bash +cp -r /usr/share/examples/lf ~/.config/ +``` + +Go straight to root with two keys. + +```bash +map g/ cd / +``` + +Have lf open a file with the default program when you press 'o', using the program `mimeo`. + +```bash +map o &mimeo $f +``` + +Change that default text editor to look at the extension first. + +```bash +cmd open ${{ + case $(file --mime-type $f -b) in + application/x-sc) sc-im $fx;; + text/html) w3m $fx;; + text/*) $EDITOR $fx;; + video/*) nohup mpv $fx --really-quiet >/dev/null &;; + *) nohup $OPENER $fx >/dev/null &;; + esac +}} +``` + +The idea here is to use the default `$OPENER` for lf, but first check extensions. +Note the extra `mpv` commands to leave the video to play, without blocking the terminal. + +### Interesting Options + +You can set the screen ratio with +`set ratios 1:2:3` + +That leaves it as a small initial pane, a medium pane, and a large pane for file previews. + +### Rename + +The standard renaming is bad, because you have to re-type the file extension. +Use this instead: + +```bash +# rename current file without overwrite +cmd rename %echo 'name: ' ; read name ; extension="${f##*.}" && newname="$name.$extension"; [ "$f" = "$extension" ] && newname="$name"; [ ! -e "$newname" ] && mv "$f" "$newname" || echo file exists +map r push :rename +``` + +If you try to rename `image_1.png` with this command, you can type in `cats`, and the result will be `cats.png`. + +## Image Previews + +First, install `ueberzug` (to show images). +Then clone the lfrun repo. + +```bash +git clone https://github.com/cirala/lfimg.git + +cd lfimg + +sudo make install +``` +