Releases: gokcehan/lf
Releases · gokcehan/lf
r23
Changelog
- (Breaking) There has been some changes in the server protocol. Make sure to kill the old server process when you update to avoid errors.
- (Breaking) Server
load
andsave
commands are now removed. Instead a local file is used to record file selections (e.g.~/.local/share/lf/files
). See the documentation for more information. - (Breaking) Clients are now disconnected from server on quit. The old server
quit
command is renamed toquit!
to act as a force quit by closing connected client connections first. A newquit
command is added to only quit when there are no connected clients left. - (New) A new
autoquit
option is added to automatically quit server when there are no connected clients left. This option is disabled by default to keep the old behavior. This is added as an option to avoid respawning server repeatedly when there is often a single client involved but more clients are spawned from time to time. - (New) A new
-single
command line flag is added to avoid spawning and/or connecting to server on startup. Remote commands would not work in this case as the client does not connect to a server. Local versions of internalload
andsync
commands are implemented properly. - (New) Errors for remote commands are now also shown in the output in addition to the server log file.
- (New) Bright ansi color escape codes (i.e. 90-97 and 100-107) are now supported.
- (Fix) Lookahead size for escape codes are increased to recognize longer escape codes used in some image previewers.
- (Fix) File preview cache is invalidated when the terminal height changes to fill the screen properly.
- (Fix) File preview cache is invalidated when
drawbox
option changes and true image previews should be triggered to be drawn at updated positions. - (Fix) A crash scenario is fixed when
hidden
option is changed. - (Fix) Pane widths should now be calculated properly when big numbers are used in
ratios
(by @kmarius). - (Fix) Special bookmark
'
is preserved properly aftersync
commands (by @kmarius). - (Fix) On some platforms, a bug has been fixed on tcell side to avoid an extra key press after terminal suspend/resume and the tcell version used in lf is bumped accordingly to include the fix.
- (Fix) Prompt line should now scroll accordingly when the text is wider than the screen.
- (Fix) Text width in the prompt line should now be calculated properly when non-ascii characters are involved.
- (Fix) Erase line escape codes (i.e.
\033[K
) used in some command outputs should now be ignored properly.
r22
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
duringfind
andfind-back
now jumps to the first match (by @gotroyb127). - (New) A new
waitmsg
option is added to customize the prompt message aftershell-wait
commands (i.e. defaultPress 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 inst
terminal.
r21
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) andpause
(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 forshell
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
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 whenmouse
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
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
inpromptfmt
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
andbottom
are now allowed incmap
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 accountnumber
andicons
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
Changelog
- (Breaking) Options
ignorecase
andignoredia
should now also apply to sorting in addition to searching. - (Breaking) Option
ignoredia
is now enabled by default to be consistent withignorecase
. - (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
andcmd-menu-complete-back
are added for completion menu cycling (by @tarasyarema). - (New) Simple configuration files for Windows
etc/lfrc.cmd.example
andetc/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
, andSIGTERM
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
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 inlf
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.
- (Breaking) Some special key names are changed to be consistent with tcell documentation (e.g.
- (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
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
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 optionpromptfmt
should now have a trailing slash. Default value ofpromptfmt
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 optionnumber
andrelativenumber
(by @gotroyb127). - (Fix) Tilde
~
is now only expanded at the beginning of path forcd
andselect
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 explicitload
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
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
, andse
). Optioninfo
can now also containatime
andctime
values accordingly (by @kmwenja). - (New) A new shell completion for
zsh
is added toetc/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
andtcsh
asetc/lf.csh
andetc/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 containingtmux
with custom$TERMINFO
values (by @doronbehar). @doronbehar now maintains a termbox fork for lf (https://github.com/doronbehar/termbox-go).