Releases: gokcehan/lf
Releases Β· gokcehan/lf
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).
r30
Changelog
- (New) A new builtin command
jumpsis addded to display the jump list (#1233) (by @joelim-work). - (New) A new possible field
filteris added toruleroption to display the filter indicator (#1223) (by @joelim-work). - (Fix) Broken mappings for
bottomcommand due to recent changes are fixed (#1240) (by @joelim-work). - (Fix) Selecting a file does not scroll to bottom anymore (#1222) (by @joelim-work).
- (Fix) Broken builds on some platforms due to recent changes are fixed (#1168).
r29
Changelog
- (Breaking) Three new options
cursoractivefmt,cursorparentfmtandcursorpreviewfmthave been added (#1086 and #1106) (by @ilyagr). The default style for the preview cursor is changed to underline. You can revert back to the old style withset cursorpreviewfmt "\033[7m". - (Breaking) An alternative boolean option syntax
set option true/falseis added in addition to the previous syntaxset option/nooption(#758). If you haveset option truein your configuration, then there is no need for any changes as it was already working as expected accidentally. If you haveset option falsein your configuration, then previously it was enabling the option instead accidentally but now it is disabling the option as intended. Any other syntax includingset option on/offare now considered errors and result in error messages. Boolean option togglingset option!remains unchanged with no new alternative syntax added. - (Breaking) Cursor is now placed at the file extension by default in rename prompts (#1162) (by @rrveex).
- (Breaking) The environment variable
VISUALis checked beforeEDITORfor the default editor choice (#1197) (by @rumaks-xyz). - (New) Mouse wheel events with the Control modifier have been bound to scrolling by default (#1051) (by @ilyagr).
- (New) Option values for
tagfmtanderrorfmthave been simplified to be able to avoid the reset sequence (#1086) (by @ilyagr). - (New) Two default command line bindings for
<down>and<up>have been added forcmd-history-nextandcmd-history-prevrespectively (#1112) (by @Limero). - (New) A new command
invert-belowis added to invert all selections below the cursor (#1101) (by @ilyagr). - (New) Two new commands
mapsandcmapshave been added to display the current list of bindings (#1146) (#1201) (by @jackielii and @ilyagr). - (New) A new option
numberfmtis added to customize line numbers (#1177) (by @joelim-work). - (New) A new environment variable
lf_countis now exported to use the count in shell commands (#1187) (by @joelim-work). - (New) A new environment variable
lfis now exported to be used as the executable path (#1176) (by @ilyagr). - (New) An example
mkdirbinding is added to the example configuration (#1188) (by @ilyagr). - (New) An example binding to show execution results is added to the example configuration (#1188) (by @ilyagr).
- (New) Commands
topandbottomnow accepts counts to move to a specific line (#1196) (by @joelim-work). - (New) A new option
ruleris added to customize the ruler information with a new addition for free disk space (#1168 and #1205) (by @rrveex and @joelim-work). - (Fix) Example
lfcdfiles have been made safer to be able to alias the commands aslf(#1049) (by @ilyagr). - (Fix) Backspace should not exit from
rename:mode anymore (#1060) (by @ilyagr). - (Fix) Preview is now refreshed even if the selection does not change (#1074) (by @joelim-work).
- (Fix) Stale directory cache entry is now deleted during rename (#1138) (by @joelim-work).
- (Fix) File information is now updated properly after reloading (#1149) (by @joelim-work).
- (Fix) Window widths are now calculated properly when
drawboxis enabled (#1150) (by @joelim-work). - (Fix) Line number widths are now calculated properly when there are exactly 10 entries (#1151) (by @joelim-work).
- (Fix) Preview is not redrawn in async shell commands (#1164) (by @joelim-work).
- (Fix) A small delay is added before showing loading text in preview pane to avoid flickering (#1154) (by @joelim-work).
- (Fix) Hard-coded box drawing characters are replaced with Tcell constants to enable the fallback mechanism (#1170) (by @joelim-work).
- (Fix) Option
relativenumbernow shows zero in the current line (#1171) (by @joelim-work). - (Fix) Completion is not stuck in an infinite loop anymore when a match is longer than the window width (#1183) (by @p-ouellette).
- (Fix) Completion now inserts the longest match even if there is no word before the cursor (#1184) (by @p-ouellette).
- (Fix) Command
docshould now work even iflfis not in the PATH variable (#1176) (by @ilyagr). - (Fix) Directory option changes should not crash the program anymore (#1204) (by @joelim-work).
- (Fix) Option
selmodeis now validated for the accepted values (#1206) (by @joelim-work).