Lf Versions Save

Terminal file manager

r22

3 years ago

Changelog

  • (New) A new -config command line flag is added to use a custom config file path (by @SPFabGerman).
  • (New) Current working directory is now exported as PWD environment variable (by @SeerLite). Subshells in symlink directories should now start in their own paths properly.
  • (New) Initial working directory is now exported as OLDPWD environment variable.
  • (New) A new shellflag option is added to customize the shell flag used for passing commands (i.e. default -c for unix and /c for windows).
  • (New) Command cmd-enter during find and find-back now jumps to the first match (by @gotroyb127).
  • (New) A new waitmsg option is added to customize the prompt message after shell-wait commands (i.e. default Press any key to continue) (by @gotroyb127).
  • (Fix) A regression bug is fixed to print a newline in the prompt message properly after shell-wait commands (by @gotroyb127).
  • (Fix) A regression bug is fixed to avoid CPU stuck at 100% when the terminal is closed unexpectedly.
  • (Fix) A regression bug is fixed to make shell commands use the alternate screen properly and keep the terminal history after quit.
  • (Fix) Enter keypad terminfo sequence is now sent on startup so delete key should be recognized properly in st terminal.

r21

3 years ago

Changelog

  • (Breaking) Copy and move do not follow symlinks anymore and copy them as symlinks. Broken symlinks can now be used in copy and move (by @sh1r4s3).
  • (New) User name, group name, and hard link counts are now shown in the statusline at the bottom when available (by @kmarius).
  • (New) Number of selected, copied, and cut files are now shown in the ruler at the bottom when they are non-zero.
  • (New) Hard-coded shell commands with stty (unix) and pause (windows) to implement "Press any key to continue" behavior are now implemented properly with Go terminal handling library. With this change, requirement for a POSIX compatible shell for shell option is now dropped and other shells might be used.
  • (Fix) A longstanding issue regarding ui suspend/resume for shell commands in MacOS is now fixed in tcell (by @gdamore).
  • (Fix) Renaming a symlink to its target or a symlink to another with the same target should now be handled properly (by @sh1r4s3).
  • (Fix) Autocompletion in a directory containing a broken symlink should now work as intended (by @sh1r4s3).
  • (Fix) Setting shellopts to empty in the configuration file should not pass an extra empty argument to the shell commands anymore.
  • (Fix) Previously given tip to trap SIGPIPE in the preview script to enable caching is now updated in the documentation. Trapping the signal in the preview script avoids sending the signal to the program when enough lines are read. This may result in reading redundant lines escpecially for big files. Recommended method is now to add a trailing || true to each command exiting with a non-zero return code after a SIGPIPE.

r20

3 years ago

Changelog

  • (Breaking) A new mouse option is added to enable mouse events. This option is disabled by default to leave mouse events to the terminal. Also unbind mouse events when mouse is enabled should now show unknown mapping error in the message line.
  • (Fix) Newline characters in the output of % commands should no longer shift the content up which was a bug introduced in the previous release due to a fix to handle combining characters in texts.
  • (Fix) Redundant preview loadings for search and find commands are now avoided (by @neeshy).
  • (Fix) Scanner now only considers ascii characters for spaces and digits which should avoid unexpected splits in some non-ascii inputs.

r19

3 years ago

Changelog

  • Changes have been made to enable the use of true image previews (by @Naheel-Azawy, @Provessor, and @neeshy). See the documentation and the previews wiki page for more information.
    • (Breaking) Non-zero exit codes should now make the preview volative to avoid caching. Programs that may not behave well to SIGPIPE may trigger this behavior unintentionally. You may trap SIGPIPE in your preview script to get the old behavior.
    • (Breaking) Preview scripts should now get arguments as the current file path, width, height, horizontal position, and vertical position. Note that height is still passed as an argument but its order is changed.
    • (New) A new cleaner option is added to set the path to a file to run when the preview is changed.
    • (Fix) Redundant preview loadings for movement commands are now avoided.
  • (Breaking) Expansion %w in promptfmt is changed back to its old behavior without a trailing separator (by @SPFabGerman). Instead, a new expansion %d is added with a trailing separator. Expansion %w is meant to be used to display the current working directory, whereas %d%f is meant to be used to display the current file.
  • (Breaking) A new LF_COLORS environment variable is now checked to be able to make lf specific configurations. Also, environment variables for colors are now read cumulatively starting from the default behavior (i.e. default, LSCOLORS, LS_COLORS, LF_COLORS).
  • (New) Full path, dir name, file name, and base name matching patterns are added to colors and icons (by @SPFabGerman and @mohkale). See the updated documentation for more information.
  • (New) Powershell keybinding example has been added to etc/lfcd.ps1 (by @sitiom).
  • (New) Powershell autocompletion script has been added as etc/lf.ps1 (by @sitiom).
  • (New) Multiple -command flags can now be given (by @kmarius).
  • (New) Basic mouse support has been added. Mouse buttons (e.g. <m-1> for primary button, <m-2> for secondary button, <m-3> for middle button etc.) and mouse wheels (e.g. <m-up> for wheel up, <m-down> for wheel down etc.) can be used in bindings.
  • (New) Commands top and bottom are now allowed in cmap mappings in addition to movement commands.
  • (Fix) Extension sorting should now handle extensions with different lenghts properly (by @kmarius).
  • (Fix) Heuristic used to show info should now take into account number and icons options properly.
  • (Fix) Environment variable id is now set to process id instead to avoid two clients getting the same id when launched at the same time (by @edganiukov).
  • (Fix) Unicode combining characters in texts should now be displayed properly.

r18

3 years ago

Changelog

  • (Breaking) Options ignorecase and ignoredia should now also apply to sorting in addition to searching.
  • (Breaking) Option ignoredia is now enabled by default to be consistent with ignorecase.
  • (Breaking) Terminal UI library tcell has been updated to version 2 (by @Provessor). This version highlights adding 24-bit true colors on Windows and better support for colors on Unix. Variable TCELL_TRUECOLOR is not required anymore so that terminal themes and true colors can be used at the same time.
  • (Breaking) Deprecated option color256 is now removed.
  • (New) Two new command line commands cmd-menu-complete and cmd-menu-complete-back are added for completion menu cycling (by @tarasyarema).
  • (New) Simple configuration files for Windows etc/lfrc.cmd.example and etc/lfrc.ps1.example are now added to the repository.
  • (New) Bash completion script etc/lf.bash is now added to the repository.
  • (New) Time formats in info option should now show year instead of hh:mm for times older than the current year.
  • (Fix) Signals SIGHUP, SIGQUIT, and SIGTERM should now quit the program properly.
  • (Fix) Setting info to an empty value should not print errors to the log file anymore.
  • (Fix) Natural sorting is optimized to work faster using less memory.
  • (Fix) Files and directories that incorrectly show modification times in the future (e.g. Linux builtin exFAT driver) should not cause cpu hogging anymore.
  • (Fix) Keybinding example in etc/lfcd.fish is now updated to avoid hanging in shell commands (by @crivaronicolini).
  • (Fix) Using bottom command immediately after startup should not crash the program anymore.
  • (Fix) Changing sorting options during sorting operations should not crash the program anymore.
  • (Fix) Output in piping shell commands now uses lazy redrawing so that verbose commands should not block the program anymore.
  • (Fix) Server is now daemonized properly on Unix so that it is not killed anymore when the controlling terminal is killed (by @neeshy).

r17

3 years ago

Changelog

  • Terminal UI library has been changed from termbox-go to tcell as the former has been unmaintained for a while (by @Provessor). Some of the changes are listed below, though the list may not be complete as this is a relatively big change.
    • (Breaking) Some special key names are changed to be consistent with tcell documentation (e.g. <bs> renamed to <backspace>). On the other hand, there are also additional keybindings that were not available before (e.g. <backtab> for Shift+Tab). You can either check tcell documentation for the list of keys or hit the key combination in lf to read the name of the key from the unknown mapping error message.
    • (New) 24-bit true colors are now supported on unix systems. See the updated documentation for more information. There is an ongoing version 2.0 development in tcell that we plan to switch once it becomes stable and it is expected to add support for true colors in Windows console as well.
    • (New) Additional platforms are now supported and the list of pre-built binaries provided are updated accordingly.
    • (Fix) Wide characters are now displayed properly in Windows console.
  • (New) Descriptions of commands and options are now added to the documentation. Undocumented behaviors should now be considered documentation bugs and they can be reported.
  • (New) Keys are now evaluated with a lazy drawing approach so push commands to set the prompt and pasting something to the command line should feel instantaneous.
  • (Fix) Corrupted history files should no longer crash the program.
  • (Fix) Server now only listens connections from localhost on Windows so firewall permission is not required anymore (by @spapas).
  • (Fix) Push commands that change the operation mode should now work consistently as expected.
  • (Fix) Loading directories should now display the previous file list if any, which was a regression due to a bug fix in a previous release.
  • (Fix) Piping shell commands should now automatically update previews when necessary.
  • (Fix) Errors from failed shell commands should not be overwritten by file information anymore.
  • (Fix) Server can now also be started automatically when the program is called with a relative path, which was a regression due to a bug fix in a previous release (by @Provessor).
  • (Fix) Environment variables are now exported automatically for preview scripts without having to call a shell command first (by @gotroyb127).
  • (Fix) Escape key can now be bind to a key for when it is used on it own and not to escape a keybind combination, which was a regression due to a bug fix in a previous release (by @YerinAlexey).
  • (Fix) Changing option hiddenfiles should now automatically trigger directory updates when necessary.

r16

3 years ago

Changelog

  • (New) Option values are now available in shell commands as environmental variables with a lf_ prefix (e.g. $lf_hidden, $lf_ratios) (by @YerinAlexey).
  • (Fix) Directories containing internal Windows links that shows permission denied errors should now display properly.

r15

3 years ago

Changelog

  • (Breaking) Command toggle does not move the selection down anymore. Default binding for <space> is now assigned to :toggle; down instead to keep the default behavior same as before.
  • (Breaking) Expansion %w in option promptfmt should now have a trailing slash. Default value of promptfmt is now changed accordingly. The default value should not display double slashes in the root directory anymore.
  • (Breaking) Key <esc> is now used as the escape key. It should not display an error message when used to cancel a keybinding menu as before. However, it is not possible to bind <esc> key to another command anymore.
  • (New) Symbolic link destinations are now shown in the bottom status line (by @wedens).
  • (New) A new hiddenfiles option which takes a list of globs is implemented to customize which files should be hidden (by @adamtabrams).
  • (New) Expressions consisting of multiple commands can now use counts (by @gotroyb127).
  • (New) Moving operations now fall back to copy and then delete strategy automatically for cross-device linking.
  • (New) Option hidden now works in windows.
  • (New) Command toggle can now take optional arguments to toggle given names instead of the current file (by @gotroyb127).
  • (New) A new option truncatechar is implemented to customize the truncate character used in long filenames (by @YerinAlexey).
  • (New) Copy and move operations now display a success message when they are finished (by @YerinAlexey).
  • (Fix) SIGHUP and SIGTERM signals are now properly handled. Log files should not remain when terminals are directly closed (by @Provessor).
  • (Fix) Option info should now align properly when used with option number and relativenumber (by @gotroyb127).
  • (Fix) Tilde ~ is now only expanded at the beginning of path for cd and select commands (by @gotroyb127).
  • (Fix) Command rename should now work properly with names differing only cases on case-insensitive filesystems.
  • (Fix) Tab characters are now expanded to spaces in windows.
  • (Fix) Option incsearch now respects the search direction accordingly.
  • (Fix) Server is now started in the home folder and will not hold mounted filesystems busy (by @shabahengam).
  • (Fix) Trailing spaces in configuration files do not confuse the parser anymore.
  • (Fix) Termbox version is updated to fix a keyboard problem in FreeBSD (by @doronbehar).
  • (Fix) Async commands do not leave zombie processes anymore (by @gotroyb127).
  • (Fix) Option hidden now works consistently as expected when set at the initial launch.
  • (Fix) Command rename should now select the new file after the operation.
  • (Fix) Command rename should now handle absolute paths properly.
  • (Fix) Command select should now work properly on loading directories. Custom commands that select a file after an operation should now work properly without an explicit load operation beforehand.
  • (Fix) Previous errors in the bottom message line should not persist through the prompt usage anymore.
  • (Fix) Command push should not fail with non-ascii characters anymore.
  • (Fix) Command select should not fail with broken links anymore.
  • (Fix) Command load should not clear toggled broken links anymore.
  • (Fix) Copy and move operations do not overwrite broken links anymore.

r14

4 years ago

Changelog

  • (New) Command delete now shows a prompt with the current filename or the number of selected files (by @Limero).
  • (New) Backslash can now be escaped with a backslash even without the quotes.
  • (New) A new desktop entry file lf.desktop is added (by @doronbehar).
  • (New) Three new sortby types are added, access time (i.e. atime), change time (i.e. ctime), and extension (i.e. ext). New default keybindings are added for these sorts correspondingly (i.e. sa, sc, and se). Option info can now also contain atime and ctime values accordingly (by @kmwenja).
  • (New) A new shell completion for zsh is added to etc/lf.zsh (by @JurisMajors).
  • (New) Command delete now works asynchronously and shows the progress (by @JurisMajors).
  • (New) Completion and directory change scripts are added for csh and tcsh as etc/lf.csh and etc/lfcd.csh respectively (by @nereusx).
  • (New) A new special command on-cd is added to run a shell command when the directory is changed. See the documentation for more information. (by @ath3).
  • (Fix) Some directories with special permissions that previously show a file icon now shows a directory icon properly (by @Naheel-Azawy).
  • (Fix) Script etc/lfcd.cmd can now also change to a different volume drive (by @YongJieYongJie).
  • (Fix) The proper use of setsid for opening files is now added to the example configuration and the documentation (by @LukeSmithxyz).
  • (Fix) Home directory abbreviation ~ is now only applied properly to paths starting with the home directory (by @arolle).
  • (Fix) Command rename now cancels the operation if old and new paths are the same (by @Limero).
  • (Fix) Autocompletion and word movements should now work properly with all unicode characters.
  • (Fix) Command shell-pipe which was broken some time ago should now work as expected.
  • (Fix) Variable $TERM can now work with values containing tmux with custom $TERMINFO values (by @doronbehar). @doronbehar now maintains a termbox fork for lf (https://github.com/doronbehar/termbox-go).

r13

4 years ago

Changelog

  • (New) A new wrapscroll option is added to wrap top and bottom while scrolling (by @Limero).
  • (New) Movement commands up, down and their variants, updir, and open are now allowed in cmap mappings.
  • (New) Two new glob-select and glob-unselect commands are added to use globbing for toggling files (by @JurisMajors).
  • (New) A new mark-remove (default ") command is added to remove a mark (by @JurisMajors).
  • (New) An experimental icon support is added with icon option. See the wiki page for more details.
  • (New) A new builtin rename command is added (by @JurisMajors).
  • (Fix) Command cmd-history-next now remains in command mode after the last item (by @Limero).
  • (Fix) Command select does not change directory anymore when used on a directory.
  • (Fix) Working directory is now changed to the first argument when it is a directory.
  • (Fix) Option ratios is now checked before preview to avoid crashes (by @ath3).
  • (Fix) Previous error messages are now cleared after successful commands (with @JurisMajors).
  • (Fix) Symlink to directories are now colored as symlinks (by @nvllsvm).
  • (Fix) Permission errors for directories are now displayed properly instead of showing empty (by @JurisMajors).