lfm v3.0 released

../../../_images/lfm-ss1.jpeg

Yesterday I released lfm version 3.0, the powerful file manager for the UNIX console I started coding in 2000 or 2001.

This is an important release as it’s the first compatible with Python 3, in fact it requires Python 3.4+.

Some of the features you can find in lfm:

  • console-based file manager for UNIX platforms
  • 1-pane or 2-pane view
  • tabs
  • files filters
  • bookmarks
  • history
  • VFS for compressed files
  • tree view
  • dialogs with entry completion
  • PowerCLI, a command line interface with advanced features
  • fast access to the shell
  • direct integration of find/grep, df and other tools
  • color files by extension [Andrey Skvortsov]
  • fully customizable themes (colors)
  • fully customizable key bindings
  • support for filenames with wide chars, f.e. East Asian
  • …and many others

NOTE: If you come from v2.3 please read the Upgrade section in the documentation.

More information

Of course, all comments, suggestions, etc. are welcome.

../../../_images/lfm-ss2.jpeg ../../../_images/lfm-ss3.jpeg ../../../_images/lfm-ss4.jpeg ../../../_images/lfm-ss5.jpeg

Changes since last version

Version 3.0 ("Only you") - 2015/10/23:

+ About the code
  - almost completely rewritten from scratch
    . it hasn't been tested as much as lfm v2.x series on non-linux OS
  - requires Python v3.4+
  - pyview, the file viewer, has been removed from lfm package
  - configuration location has changed to a new directory and files:
    ~/.config/lfm/{lfm.ini, lfm.keys, lfm.theme, lfm.history}

+ New features
  - fully customizable themes (colors)
  - fully customizable key bindings
    . allow Alt-key shorcuts (A-)
    . only for main window (not for dialogs)
  - files filters (using globs)
    . information in pane frame: ".F" => show dotfiles, active filters
    . filters are a property of a tab, they remain active even when chdir
    . Ctrl-f: edit current filter
    . Some examples:
      . "*.png,*.jpg" => hide all PNG and JPEG files
      . "*.jpg,!*shot*" => hide all JPEG files except those with 'shot' in the name
      . "*,!*py" => hide all except python source files
  - up to 35 bookmarks (0-9, a-z)
    . b: go to bookmark, B: set bookmark, C-d: select bookmark
    . fix: don't delete bookmark at start if path does not exist
  - nested archive handling (vfs inside vfs) works now
  - added optional support for filenames with wide chars, f.e. East Asian
    . to enable, set 'use_wide_chars' flag in configuration or use -w command line flag
    . it's disabled by default for performance
    . it's not perfect, but it mostly works
  - there are 2 different versions of move_file to chose from in the key
    bindings file:
    . move_file: old implementation
    . move_file2: alternative version using shtutil.move instead of copy & delete. Faster but less control of errors
  - new action: redraw screen (default key A-r)

+ Changes & improvements (vs v2.x):
  - chmod & chown/chgrp are 2 different actions now
  - cursor_goto_file (C-s): find text pattern (no regex or glob) in the whole file name, not at the beginning as v2.x
  - cursor_goto_file_1char (A-s): go to file by 1st letter of name (old C-s behaviour)
  - bookmarks have new key bindings:
    b: go to bookmark, B: set bookmark, C-d: select bookmark
  - PowerCLI:
    . ending command with % must be $ now
    . added new date variables: dm, dc, da, dn
    . ending command with % must be $ now
    . added new date variables: dm, dc, da, dn
    . old $d variable is $p now
  - find/grep: panelize = create vfs with matched files
    . if rebuild: all files modifications or deletions are translated to original directory so be careful!
  - pyview, the file viewer, has been removed from lfm package

+ Fixes in v3.0 (vs v2.x):
  - nested archive handling (vfs inside vfs) works now
  - find & grep with spaces in file name
  - wide chars file names support (f.e. Eastern languages) => lfm -w
  - sort by size after show dirs size
  - move_file: not overwritten files in destination are not deleted