Lfm

Latest version: v3.1

Safety actively analyzes 619456 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 3

3.1

+ New features
- support for new compression programs: lzip, lz4

+ Changes & improvements:
- Improved resources files (docs, default keys and theme) installation
and loading at runtime

+ Fixes:
- when installing data files with pip >7.0 & wheel.
Thanks to Jean-François Bercher
- PowerCLI: error message is always shown when command finishes.
Thanks to Jean Terrier for the report
- filters: glob when parent dir contains special chars (BB issue 5).
Thanks to Viktor Vad for the report
- lfm crashes when terminal is too narrow (BB issue 4).
Thanks to Wayne Tan for the report

3.0

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

2.3

+ About the code
- lfm needs python version 2.5 or upper now

+ New features
- PowerCLI, an advanced command line interface with completion, persistent
history, variable substitution and many other useful features.
As this is a very powerful tool, read the documentation for examples
- history
. use different types of history lists: path, file, glob, grep, exec, cli
for the different forms and actions
. persistent history between sessions => ~/.lfm_history
. controlled by a flag in configuration
- find/grep
. configuration options for ignorecase and regex
. sort results
. show results as FILE:lineno
. much faster
- show diff between xxx.orig and xxx files
- tar files compress/uncompress
- messages.EntryLine has been rewritten, with many new key shorcuts. This is
the core behind most of the forms lfm shows when asking for anything.
Consult the documentation

+ Minor changes
- reorganize "un/compress file" and "compress directory xxx" in file_menu
- config: sort entries when saving
- improve lad/save handling of new options not present in ~/.lfmrc
- added new extensions
- messages.error rewritten to offer better messages
- added some new key shortcuts messages.SelectItem

+ Documentation
- added a note about python v2.5+ is needed from now on
- 'lfm' shell function: change "$*" to "$" to properly handle paths
containg spaces
- FAQ: added information about fuse to mount ssh, ftp, smb and webdav
- reorganized and fixed key bindings section
- documented .lfmrc contents
- added link to public BitBucket repository

+ lots of bugs fixed:
- pyview:
. last char is not shown if file size is small
. last line and wrap: cursor_down or page_next
. when number of lines == window height
- ncurses v5.8 doesn't accept 0 as width or height
- UI crashes:
. time string could contain non-ascii characters (reported by Martin Steigerwald)
. when filenane length is large in full pane mode
. MenuWin, SelectItem: ellipsize entries if bigger than screen width
- find or find&grep:
. pass "-type f" to find as ".filename" are temporary emacs files/links
that break search
. show wrong matches if results contain directories or files with spaces
. file->goto_file: move to correct page
- copy/move "/file" to "/anydir/anyplace" fails, trying to copy/move to "/"
- executing non-ascii programname or args
- convoluted issue with link to directory in corner cases (reported by Xin Wang)
- rename/backup ".." crashes
- we should not compress ".."
- create_link, edit_link: don't show error if canceled
- only store one copy of the same entry in history
- tree: "disable" colors of active panel, "enable" at end
- Config.save: work with unicode, only convert to encoding when saving

2.2

+ New features
- use 2 progress bars in copy/move/delete dialog, one for files count
and other for files size
- added recursive chmod chown chgrp
- faster cursor movement
. Ctrl-l: center cursor in panel, so now edit-link is in 'L'
. Ctrl-cursor_up, Ctrl-P: move cursor 1/4th of page up
. Ctrl-cursor_down, Ctrl-N: move cursor 1/4th of page down
. P: move cursor 1/4th of page up in other panel
. N: move cursor 1/4th of page down in other panel
- file_menu new feature: a -> backup file. You can specify the extension
to use in .lfmrc
- added support for .xz compressed files
- Unicode & Encodings
. rewrite all internals to use unicode strings, but employ terminal
encoding (f.e. utf-8) to interact with the user or to display contents
in ncurses functions or to run commands in shell
. when lfm detects a file with invalid encoding name it asks the user to
convert it (can be automatic with the proper option in the
configuration, automatic_file_encoding_conversion, default 0 (ask)).
If not converted, lfm will display the file but won't operate on it.
. try more encodings when we get a filename with strange characters
. lfm will check and require a valid encoding before running
- Pyview:
. completely rewritten. Code is shorter and more beautiful now
Uses a new FileCache class to accelerate the retrieving of file lines
. displays contents between 2 and 4 times faster
. new command line flag -s/--stdin to force reading from stdin.
Now pyview doesn't wait for stdin input by default, so it starts much
faster. eg. $ ps efax | pyview -s

+ Minor changes
- add color entries for directories and exe_files
- expand ~ to user home
- make Tree follow .dotfiles behaviour, new keybinding Ctrl-H
- dialogs are bigger now
- show filesystem info rewritten
- show file info rewritten, now it shows correctly information
from fuse-mounted volumes
- added new "ebook" category, filetypes and formats

+ About the code
- since python v2.6+, popen* is deprecated, so make lfm check python
version and use popen* or subprocess accordingly
- correct some python idioms
- clean code

+ Documentation
- Added "Files Name Encoding" and "FAQ" sections
- Added information about keybindings in permissions window
- Updated some other minor changes: wide char support, vfs, thanks

+ lots of bugs fixed:
- file system information was not showed correctly sometimes
- devices major and minor numbers were not showed correctly
- crash in goto_dir if there aren't any historic entries
- crash in a void EntryLine after pressing BACKSPACE on some platforms
- unzip => overwrite files without prompting ("unzip -o" option) to avoid
ethernal waiting, as messages can not be seen by user
- fix make_dir error message
- recompressing a vfs compressed file leave some garbage on temporary dir
- don't try to copy fifo/socket/block-dev/char-dev files
- crash when we don't have enough permissions to write to dest
- show_dirs_size: don't show in stderr if we don't have perms for a dir
- can't browse /home/<user> as root if .gvfs is present
- EntryLine: non-ascii chars are not showed correctly
- lfm crashes with invalid encoding filenames
- increment owner and group space to avoid ugly look in 1-pane view
- when moving files, don't delete source if some error or if we don't
overwrite destination

2.1

+ Ctrl-H now show/hide dot files
+ Ctrl-Y display directories history
+ It's now posible to move the cursor in the non-active pane
Consult the documentation for available keys and actions
This behaviour is de/activated with Ctrl-W
+ added support for .7z compressed files
+ swapped F2 and F12 keys, now F2 rename files and F12 show file menu
+ new key shortcuts in dialogs. Read docs
+ speed up cursor movement
+ lots of code cleaning and refactoring
+ and fixed lot of bugs, some of them:
- setup.py: change Iñigo for Inigo to avoid problems when installing
- sorting by None doesn't crash anymore
- MenuWin dialog crashed when title length was greater than length of
entries to show

2.0

+ tabs implemented
+ color files by extension [Andrey Skvortsov]
+ new IPC code and API; more flexible, powerful and stable
+ new un/compress vfs API, added support for .zip and .rar files
+ make sort mode per tab, not globally
+ support locale [Andrey Skvortsov]
+ speed up loading directory contents
+ speed cursor movement, don't waste much CPU
+ use logging module in lfm and pyview for debugging
+ overwrite_all_none: yes, all, no => new options: "none", "skip all""
+ rewrite/refactor most of code to make lfm more robust and clean
+ preferences:
- change file name preferences.py => config.py
- use ConfigParser
+ use tempfile secure versions mkdtemp() and mkstemp()
+ added man pages [Sebastien Bacher]
+ use reST for documentation
+ check for python version 2.3 or higher in lfm and pyview
+ upgraded to GPL v3 license
+ and fixed lot of bugs, some of them:
- general:
. delete garbage if user stops action
. run 'do_special_view_file' as dettached from lfm window
. path expand in bookmarks ("~/") [Andrey Skvortsov]
. an ugly traceback crash appears when user starts "lfm path" and has
no permissions to enter. Show error message and default to current
directory
. lfm crashes when filename is not encoded with same codec than
g_encoding utils.{decode|encode}. Needs curses module linked against
ncursesw to work properly
. sort_mix_cases = 1 performance degrades on larger dirs.
Reported by Andrey Skvortsov
. escape filenames with chars $ ". Reported by Andrey Skvortsov
- user interface:
. maximize/minimize window don't crash lfm anymore
. dialogs appear at bad position after terminal is resized
. handle window resize in Tree mode
. refresh display after canceling completion dialog
. "the size of the right pane does not fill the last column in
terminal if their number is odd" [Andrey Skvortsov]
. fix crash when "df" shows entries in two different lines (device
name is too large, f.e. in linux lvm2 volumes)
. if you try to enter a directory with insufficient permissions, after
the error message is closed the cursorline refreshes to the first line
- compress:
. added -i flag (--ignore-zeros) flag to tar [Andrey Skvortsov]
. standard tar needs - for flags
- vfs:
. vfs.py: regenerate_file, if user stops process, tempfile can't be
deleted
- find/grep:
. escape special chars (- \ ( ) [ ]) in patterns
. don't crash when find/grep returns no results
. bug when matches occur in binary files
- pyview:
. goto line 0 in pyview showed a blank screen
. crash in file info if filename is too long

Page 1 of 3

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.