Releases: gokcehan/lf
Releases Β· gokcehan/lf
r40
r39
Changed
- File extensions are now shown for long filenames even if they are truncated (#2159).
- The history file will no longer contain a space between the prefix and the actual command (e.g.
:quitinstead of: quit) for each line (#2161). The commandsed -i -E 's/^(.) /\1/' ~/.local/share/lf/historycan be run to make an existing history file compatible with the new format. - The
cmd-history-nextandcmd-history-prevcommands will now select only matching entries if part of the command is typed beforehand (#2161). Consecutive duplicate entries will also be skipped for convenience. - The string representation of commands shown when displaying keybindings is simplified (e.g.
cd ~instead ofcd -- [~]) (#2165). yes-no-promptsnow use the same design everywhere (#2212).- Logs generated by
-log <path>now get appended to<path>instead of overwriting it (#2215). - The
showbindsmenu now hides the redundantmodecolumn (#2226) (#2228) and omits already typed keys (#2249). - The
setlocalcommand no longer requires absolute paths (#2253). - The string representation of file permissions now matches the traditional
Unixformat instead of the one used byGo(#2270).
Added
- A new command
cmd-menu-discardis added to allow exiting the completion menu with completions discarded (#2146). - The
lf_modeenvironment variable will now be set tocompmenuif the completion menu is active (#2146). - A
rulerconfig file is added as an alternate method for customizing the ruler (#2186). This is intended to eventually replace the existingrulerfmt/statfmtoptions and must be enabled using the newrulerfileoption. This feature is currently experimental. - A new option
preloadis added to enable calling thepreviewerto generate previews in advance (#2206). This feature is currently experimental. OSC 8escape codes to render clickable hyperlinks are now supported (#2243).
Fixed
shell-pipecommands no longer wait for output if kept open after the command has finished running (#2155).- Natural sorting now compares string lengths when dealing with equivalent numbers (e.g.
0is ordered before00) (#2177). - A bug where the copy progress indicator only displayed the first time a file was copied is now fixed (#2181).
- A bug where the
sourcecommand does not show an error message upon failure is now fixed (#2189). - The
addcustominfo(#2198) andsetlocal(#2254) (#2259) commands, as well as thecleanerandprevieweroptions (#2211) now support filename completions. - A bug where an empty
custominfo property would still take up space is now fixed (#2208). - A bug where setting
drawboxcould lead to scrolling outside the view is now fixed (#2210) (#2218). - The preview cache is now not cleared when setting
ratiosto its current value (#2218). - Filtering is fixed when using special characters in the search pattern if the
filtermethodistext(#2231). - Custom commands that output messages (e.g.
cmd greet echo 'hello world') now display properly (#2245). - Errors in config files are now displayed properly (#2246).
r38
Changed
- The deprecated
globfilterandglobsearchoptions are now removed (#2108). - Sixel image support is now enabled by default, and the
sixeloption has been removed as it is no longer required (#2109). - The
dircacheoption has now been removed (#2110). This was previously used as a workaround to disable the directory cache since at the time changes to files were not detected reliably, but this is no longer the case. - The experimental
localeoption has been removed in favor of the recommendation to useaddcustominfo/set sortby customfor custom sorting (#2111). - The existing
doccommand has been renamed tohelpso that it is more natural for users (#2125). - Text previews are no longer displayed with a padding of two spaces by default (#2131). Instead, a custom padding can be added in the
previewerscript, for example by piping tosed 's/^/ /'.
Added
- Sixel image previews can now display multiple images as well as text (#2109).
- A new option
sizeunitsis added to allow displaying file sizes in either binary or decimal units (#2118). XDG_CONFIG_HOMEandXDG_DATA_HOMEare now taken into account when looking up config/data files on Windows (#2119).- Three new options
menufmt,menuheaderfmt, andmenuselectfmtare added to customize the appearance of the menu (#2123).
Fixed
- Error messages are now cleared after running interactive commands such as
invert/unselect/tag-toggle(#2117). - The menu is now drawn over sixel images instead of being hidden behind it if they overlap (#2122).
- A bug which prevents the user from quitting when copying files with a size of 0 has been fixed (#2130).
lf -remoteshould no longer busy wait and cause high CPU usage if its output is not being read (#2138).- The parameter types for command line options shown by
lf -helpnow match the synopsis in the documentation (#2153).
r37
Changed
- The default paths of files read by
lfis changed on Windows, to separate configuration files from data files (#2051).- Configuration files (
lfrc/colors/icons) are now stored in%APPDATA%, which can be overridden by%LF_CONFIG_HOME%. - Data files (
files/marks/tags/history) are now stored in%LOCALAPPDATA%, which can be overridden by%LF_DATA_HOME%.
- Configuration files (
- The change for following symbolic links when tagging files from the previous release has been reverted (#2055). The previous change made it impossible to tag symbolic links separately from their targets, and also caused
lfto run slowly in some cases. - The existing
globfilterandglobsearchoptions are now deprecated in favor of the newfiltermethodandsearchmethodoptions, which support regex patterns (#2058).set globfilter trueshould be replaced byset filtermethod glob.set globsearch trueshould be replaced byset searchmethod glob.
- File sizes are now displayed using binary units (e.g.
1.0Kmeans 1024 bytes, not 1000 bytes) (#2062). The maximum width for displaying the file size has been increased from four to five characters.
Added
dircountsare now respected when sorting by size (#2025).- The
infoandsortbyoptions now supportbtime(file creation time) (#2042). This depends on support for file creation times from the underlying system. - The selection in Visual mode now follows wrapping when
wrapscan/wrapscrollis enabled (#2056). - Input pasted from the terminal is now ignored while in Normal mode (#2059). This prevents pasted content from being treated as keybindings, which can result in dangerous unintended behavior.
- The Command-line mode completion now supports keywords for the
selmodeandsortbyoptions (#2061), as well as theinfoandpreserveoptions (#2071). - Command line flags are now exported as environment variables in the form
lf_flag_{flag}(#2079). - Support is added for terminal escape sequences that disable text styles (#2101).
Fixed
dircountsare now automatically populated after enabling it (#2049).- A bug where directories are unsorted after reloading when
dircacheis disabled is now fixed (#2050). - Filenames are now escaped when completing shell commands (#2071).
- A bug where completion menu entries are misaligned when containing fullwidth characters is now fixed (#2071).
- The
on-loadcommand now passes all files in the directory as arguments, not just files visible to the user (#2077). - Failure to move files across different filesystems is now shown as an error instead of a success in the UI (#2085).
- Errors are now logged correctly when there are multiple errors during move/copy operations (#2089).
- The progress for copy operations is now displayed immediately in the UI, even if it takes time to calculate the total size of files to be copied (#2093).
r36
Changed
- Tagging symbolic links now affects the target instead of the symbolic link itself. This mimics the behavior in
ranger(#1997). - The experimental command
invert-belowhas been removed in favor of the newly added support for Visual mode (#2021).
Added
- A new placeholder
%Prepresenting the scroll percentage is added to therulerfmtoption (#1985). - A new
on-loadhook command is added, which is triggered when files in a directory are loaded inlf(#2010). - The
infooption now supportscustom, allowing users to display custom information for each file (#2012). The custom information should be added by the user via theaddcustominfocommand. Sorting by the custom information is also supported (#2019). - Support for
visual-modehas now been added (#2021) (#2035). This includes the following changes:- A new command
visual(defaultV) can be used to enter Visual mode. - A new command
visual-change(defaultoin Visual mode) can be used to swap the positions of the cursor and anchor (start of the visual selection). - A new command
visual-accept(defaultVin Visual mode) can be used to exit Visual mode, adding the visual selection to the selection list. - A new command
visual-discard(default<esc>in Visual mode) can be used to exit Visual mode, without adding the visual selection to the selection list. - A new command
visual-unselectcan be used to exit Visual mode, removing the visual selection from the selection list. - The existing
mapcommand now adds keybindings for both Normal and Visual modes. Two new commandsnmapandvmapare added which can be used to add keybindings for only Normal or Visual mode respectively. - Two new commands
nmapsandvmapsare added to display the list of keybindings in Normal and Visual mode respectively. These, along with the existingmapsandcmapscommands, now display an extra column indicating the mode for which the keybindings apply to. - A new option
visualfmtis added to customize the appearance of the visual selection. - Two new placeholders
%mand%Mare added tostatfmtto display the mode in the status line. Both will displayVISUALwhen in Visual mode, however in Normal mode%mwill display as a blank string while%Mwill displayNORMAL. - A new placeholder
%vis added torulerfmtwhich displays the number of files in the Visual selection. This is included in the default setting forrulerfmt. - The
lf_modeenvironment variable will now be set tovisualwhile in Visual mode. - The environment variable
$fvis now exported to shell commands, which lists the files in the visual selection.
- A new command
- A
CHANGELOG.mdfile has been added to the repo (#2027). This will be updated to describeChanged,AddedandFixedfunctionality for each new release.
Fixed
- Displaying sixel images now uses the screen locking API in Tcell, which reduces flickering in the UI (#1943).
- The
cmd-historycommand is now ignored outside of Normal or Command-line mode, to prevent accidentally escaping out of other modes (#1971). - A potential crash when using the
cmd-delete-word-backcommand is fixed (#1976). - The
preserveoption now applies to directories in addition to files when copying. This includes preservingtimestamps(#1979) andmode(#1981). - The
lfrc.ps1.exampleexample config file is updated to include PowerShell equivalents for the default commands and keybindings (#1989). - Quoting for the
lfenvironment variable is fixed for PowerShell users (#1990). tempmarksare no longer cleared after thesynccommand is called (#1996).- The file stat information is no longer displayed during the execution of a
shell-pipecommand even if the file is updated (#2002). - Directories are now reloaded properly if any component in the current path is renamed (#2005).
- Write updates for the log file are now ignored when
watchis enabled. This helps to reduce notification spam and potential of infinite loops (#2015). - Attempting to
cut/copyfiles into a directory without execute permissions no longer causeslfto crash, and an error message will be displayed instead (#2024).
r35
Changelog
- (New) Support is added for displaying underline styles (#1896) (by @joelim-work).
- (New) Support is added for displaying underline colors (#1933) (by @joelim-work).
- (New) A new subcommand
filesis added to thequeryserver command to list the files in the current directory as displayed inlf(#1949) (by @MahouShoujoMivutilde). - (New) A new
tty-writecommand is added for sending escape sequences to the terminal (#1961) (by @joelim-work). Writing directly to/dev/ttyis not recommended as it not synchronized and can interfere with drawing the UI. - (Fix) The
trashcommand inlfrc.examplenow verifes if the trash directory exists before moving files there (#1918) (by @valoq). - (Fix)
lfshould no longer crash if it fails to open the log file (#1937) (by @joelim-work). - (Fix) Arrow keys are now handled properly when waiting for a key press after executing a shell-wait (
!) command (#1956) (by @joelim-work). - (Fix) The
previewerscript is now only invoked for the current directory (instead of all directories), when startinglfwithdirpreviewsenabled (#1958) (by @joelim-work).
r34
Changelog
- (Breaking) The
autoquitoption is now enabled by default. (#1839) (by @joelim-work) - (New) A new option
localeis added to sort files based on the collation rules of the provided locale. (#1818) (by @SirZenith). This feature is currently experimental. - (New) A new
on-inithook command is added to allow triggering custom actions whenlfhas finished initializing and connecting to the server. (#1838) (by @joelim-work) - (Fix) The background color now renders properly when displaying filenames. (#1849) (by @joelim-work)
- (Fix) A bug where the
on-quithook command causes an infinite loop has been fixed. (#1856) (by @joelim-work) - (Fix) File sizes now display correctly after being copied when
watchis enabled. (#1881) (by @joelim-work) - (Fix) Files are now automatically unselected when removed by an external process, when
watchis enabled. (#1901) (by @joelim-work)
r33
Changelog
- (Breaking) The
globsearchoption, which previously affected both searching and filtering, now affects only searching. A newglobfilteroption is introduced to enable globs when filtering, and acts independently fromglobsearch. (#1650) (by @Catalyn45) - (Breaking) The
hidecursorinactiveoption is replaced by theon-focus-gainedandon-focus-losthook commands. These commands can be used to invoke custom behavior when the terminal gains or loses focus. (#1763) (by @joelim-work) - (Breaking) The
ruleroption (deprecated in favor ofrulerfmt) is now removed. (#1766) (by @joelim-work) - (Breaking) Line numbers from the
numberandrelativenumberoptions are displayed in the main window only, instead of all windows. (#1789) (by @joelim-work) - (New) Support for UNIX domain sockets (for communicating with the
lfserver) is added for Windows. (#1637) (by @Catalyn45) - (New) Color and icon configurations now support the
targetkeyword for symbolic links. (#1644) (by @lorentzforces) - (New) A new option
roundboxis added to use rounded corners whendrawboxis enabled. (#1653) (by @J-Kappes) - (New) A new option
watchis added to allow using filesystem notifications to detect and display changes to files. This is an alternative to theperiodoption, which polls the filesystem periodically for changes. (#1667) (by @joelim-work) - (New) Icons can now be colored independently of the filename. (#1674) (by @wodesuck)
- (New) The
infooption now supportsperm,userandgroupto display the permissions, user and group respectively for each file. (#1799) (by @owallb) - (New) A new option
showbindsis added to toggle whether the keybinding hints are shown when a keybinding is partially typed. (#1815) (by @dazzywi) - (Fix) Sorting by extension is fixed for hidden files. (#1670) (by @Limero)
- (Fix) The
on-quithook command is now triggered when the terminal is closed. (#1681) (by @joelim-work) - (Fix) Previews no longer flicker when deleting files. (#1691) (by @joelim-work)
- (Fix) Previews no longer flicker when directories are being reloaded. (#1697) (by @joelim-work)
- (Fix)
lfcd.nunow runs properly without raising errors. (#1728) (by @unsafe-andrew) - (Fix) Image previews (composed of ASCII art) containing long lines should now display properly. (#1737) (by @joelim-work)
- (Fix) The performance is improved when copying files. (#1749) (by @MahouShoujoMivutilde)
- (Fix)
lfcd.cmdnow handles directories with special characters. (#1772) (by @Jaehaks) - (Fix) Icon colors are no longer clipped when displaying in Windows Terminal. (#1777) (by @joelim-work)
- (Fix) The file stat info is now cleared when changing to an empty directory. (#1808) (by @joelim-work)
- (Fix) Error messages are cleared when opening files. (#1809) (by @joelim-work)
r32
Changelog
- (Breaking) The example script
etc/lfcd.cmdis updated to use the-print-last-diroption instead of-last-dir-path(#1444) (by @atahrijouti and @joelim-work). Similar changes have been made foretc/lfcd.ps1(#1491) (by @alunegov),etc/lfcd.fish(#1503) (by @postsolar), andetc/lfcd.nu(#1575) (by @ZennoZenith). - (Breaking) The documentation from
lf -docand thedoccommand is now generated from Markdown usingpandoc(#1474) (by @gokcehan). - (New) A new option
hidecursorinactiveis added to hide the cursor when the terminal is not focused (#965) (by @laktak). - (New) A new special command
on-redrawis added to be able to run a command when the screen is redrawn or when the terminal is resized (#1479) (by @joelim-work). - (New) Options
cutfmt,copyfmtandselectfmtare added to configure the indicator color for cut/copied/selected files respectively (#1540) (by @joelim-work). - (New)
zshcompletion is added for thelfcdcommand (#1564) (by @postsolar). - (New) The file stat information now falls back to displaying user/group ID if looking up the user/group name fails (#1590) (by @jantatje).
- (New) A new environment variable
lf_modeis now exported to indicate which modelfis currently running in (#1594) (by @joelim-work). - (New) Default icons are added for Docker Compose files (#1626) (by @Nuckle).
- (Fix) Default value of
rulerfmtoption is now left-padded with spaces to visually separate it from the file stat information (#1437) (by @joelim-work). - (Fix) Previews should now work for files containing lines with 65536 characters or more (#1447) (by @joelim-work).
- (Fix) Sixel previews should now work when using
lfcdscripts (#1451) (by @joelim-work). - (Fix) Colors and icons should now display properly for character device files (#1469) (by @joelim-work).
- (Fix) The selection file is now immediately synced to physical storage after writing to it (#1480) (by @joelim-work).
- (Fix) Timestamps are preserved when moving files across devices (#1482) (by @joelim-work).
- (Fix) Fix crash for
highandlowcommands whenscrolloffis set to a large value (#1504) (by @joelim-work). - (Fix) Documentation is updated with various spelling and grammar fixes (#1518) (by @hankertrix).
- (Fix) Files beginning with a dot (e.g.
.gitignore) are named correctly afterpasteif another file with the same name already exists (#1525) (by @joshuali925). - (Fix) Prevent potential race condition when sorting directory contents (#1526) (by @Michael-Gallo).
- (Fix) Signals are now handled properly even after receiving and ignoring
SIGINT(#1549) (by @mtoohey31). - (Fix) The file stat information should now update properly after using the
cdcommand to change to a directory for the first time (#1536) (by @joelim-work). - (Fix) Previous error messages should now be cleared after a
mark-save/mark-removeoperation (#1544) (by @joelim-work). - (Fix) Fix high CPU usage issue when viewing CryFS filesystems (#1607) (by @Michael-Gallo).
- (Fix) Invalid entries in the
marksandtagsfiles now raise an error message instead of crashing (#1614) (by @joelim-work). - (Fix) Startup time is improved on Windows (#1617) (by @Catalyn45).
- (Fix) Sixel previews are now resized properly when the horizontal size of the preview window changes (#1629) (by @joelim-work).
- (Fix) The cut buffer is only cleared if the
pasteoperation succeeds (#1652) (by @joelim-work). - (Fix) The extension after
.is ignored to set the cursor position when renaming a directory (#1664) (by @Limero). - (Fix) The option
periodshould not cause flickers in sixel previews anymore (#1666) (by @joelim-work).
r31
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 (i.e.
lf -remote 'quit!'). - (Breaking) A new server command
queryis added to expose internal state to users (#1384) (by @joelim-work). A new builtin commandcmdsis added to display the commands. The old builtin commandjumpsis now removed. The builtin commandsmapsandcmapsnow use the new server command. - (Breaking) Environment variable exporting for files and options are not performed anymore while previewing and cleaning to avoid various issues with race conditions (#1354) (by @joelim-work). Cleaning program should now instead receive an additional sixth argument for the next file path to be previewed to allow comparisons with the previous file path. User options (i.e.
user_{option}) are now exported whenever they are changed (#1418) (by @raslop). - (Breaking) Command outputs are now exclusively attached to stderr to allow printing the last directory or selection to stdout (#1399 and #1402) (by @joelim-work). Two new command line options
-print-last-dirand-print-selectionare added to print the last directory and selection to stdout. The example scriptetc/lfcd.shis updated to use-print-last-dirinstead. Otherlfcdscripts are also likely to be updated in the future to use the new method (patches are welcome). - (Breaking) The option
ruleris now deprecated in favor of its replacementrulerfmt(#1386) (by @joelim-work). The newrulerfmtoption is more capable (i.e. displays option values, supports colors and attributes, and supports optional fields) and more consistent with the rest of our options. See the documentation for more information. - (New) Modifier keys (i.e. control, shift, alt) with special keys (e.g. arrows, enter) are now supported for most combinations (#1248) (by @joelim-work).
- (New) A new option
borderfmtis added to configure colors for pane borders (#1251) (by @joelim-work). - (New) New
lfspecific environment variables,LF_CONFIG_HOMEon Windows andLF_CONFIG/DATA_HOMEon Unix, are now supported to set the configuration directory (#1253) (by @alok-mishra). - (New) Tilde (i.e.
~) expansion is performed during completion to be able to use expanded tilde paths as command arguments (#1246) (by @joelim-work). - (New) A new option
preserveis added to preserve attributes (i.e. mode and timestamps) while copying (#1026) (by @raslop). - (New) The file
etc/icons.exampleis updated for nerd-fonts v3.0.0 (#1271) (by @MunifTanjim). - (New) A new builtin command
clearmapsis added to clear all default keybindings except forread(i.e.:) andcmapkeybindings to be able to:quit(#1286) (by @joelim-work). - (New) A new option
statfmtis added to configure the status line at the bottom (#1288) (by @joelim-work). - (New) A new option
truncatepctis added to determine the location of truncation from the beginning in terms of percentage (#1029) (by @raslop). - (New) A new option
dupfilefmtis added to configure the names of duplicate files while copying (#1315) (by @Limero). - (New) Shell scripts
etc/lf.nuandetc/lfcd.nuare added to the repository to allow completion and directory change with Nushell (#1341) (by @mauerlaeufer). - (New) Sixels are now supported for previewing (#1211) (by @horriblename). A new option
sixelis added to enable this behavior. - (New) A new configuration keyword
setlocalis added to configure directory specific options (#1381) (by @gokcehan). - (New) A new command line command
cmd-delete-word-back(defaulta-backspaceanda-backspace2) is added to use word boundaries when deleting a word backwards (#1409) (by @janpeterd). - (Fix) Cursor positions in the directory should now be preserved after file operations that changes the directory (e.g. create or delete) (#1247) (by @joelim-work).
- (Fix) Option
reverseshould now respect to sort stability requirements (#1261) (by @joelim-work). - (Fix) Backspace should not exit
filtermode anymore (#1269) (by @jdujava). - (Fix) Truncated double width characters should not cause misalignment for the file information (#1272) (by @joelim-work).
- (Fix) Piping shell commands should not refresh the preview anymore (#1281) (by @joelim-work).
- (Fix) Cursor position should now update properly after a terminal resize (#1290) (by @joelim-work).
- (Fix) Directories should now be reloaded properly after a
deleteoperation (#1292) (by @joelim-work). - (Fix) Executable file completion should not add entries to the log file anymore (#1307) (by @joelim-work).
- (Fix) Blank input lines are now allowed in piping shell commands (#1308) (by @joelim-work).
- (Fix) Shell commands arguments on Windows should now be quoted properly to fix various issues (#1309) (by @joelim-work).
- (Fix) Reloading in a symlink directory should not follow the symlink anymore (#1327) (by @joelim-work).
- (Fix) Command
loadshould not flicker image previews anymore (#1335) (by @joelim-work). - (Fix) Asynchronous shell commands should now trigger
loadautomatically when they are finished (#1345) (by @joelim-work). - (Fix) Changing the value of
previewoption should now clear image previews (#1350) (by @jdujava). - (Fix) Cursor position in the status line at the bottom should now consider double width characters properly (#1348) (by @joelim-work).
- (Fix) Filenames should only be quoted for
cmdon Windows to avoid quoting issues forpowershell(#1371) (by @joelim-work). - (Fix) Inaccessible files should now be included in the directory list and display their lstat errors in the status line at the bottom (#1382) (by @jantatje).
- (Fix) Command line command
cmd-delete-wordshould now add the deleted text to the yank buffer (#1409) (by @janpeterd).