Skip to content

Releases: gokcehan/lf

r42

Choose a tag to compare

@github-actions github-actions released this 31 Jul 07:16
5b6c393

Changed

  • The key <backspace2> has been renamed to <backspace> for map keybindings (#2286).
  • .Stat.DirSize and .Stat.DirCount in the ruler file no longer have a pointer type, and will be set to -1 instead of nil if the corresponding value cannot be determined (#2397).
  • setlocal commands no longer support the ability to specify recursive directories (#2415). For use cases where setlocal should apply to a directory based on some condition, it is recommended to script this inside the on-load hook command.
  • On Windows, files are now considered executable according to PATHEXT when matching colors and icons (#2448).
  • The rulerfmt and statfmt options are now marked as deprecated in favor of using the ruler file (configured using the rulerfile option), and will be removed in a future release (#2477).
  • The client server connection will now exclusively use Unix domain sockets on Windows and no longer fall back to TCP sockets (#2527).
  • The fallback location of the server socket (used if XDG_RUNTIME_DIR is not defined) is changed from /tmp/lf.<user>.sock to /tmp/lf-<uid>/lf.sock, and the containing directory must be owned by the current user (#2532).
  • The ignorecase and ignoredia options (intended for searching) no longer affect sorting, and instead sortignorecase and sortignoredia have been added to customize sorting (#2543).
  • Previews are now marked as binary if they contain a control character other than bell, backspace, tab, newline, vertical tab, form feed, carriage return, escape or delete (#2561). Previously only null bytes were used to detect binary previews.

Added

  • Emoji sequences containing Zero Width Joiner characters are now displayed as a single combined glyph (#2286).
  • Key combinations such as <c-h> and <backspace> can now be distinguished when supported by the terminal (#2286) (#2496).
  • A new field .All is added to the ruler file to display the number of all files (i.e. visible + hidden) in the current working directory (#2376).
  • A new option numbercursorfmt is added to further customize the appearance of line numbers (#2395).
  • The loading... message delay of 100 milliseconds for file previews is now applied to directories as well (#2410).
  • lf will now automatically change to the parent directory if the current directory no longer exists and the watch option is enabled (#2424).
  • A new option terminalcursor is added to customize the appearance of the terminal cursor (#2441).
  • A new option borderstyle is added to control whether drawbox draws an outline, separators, or both (#2445). This also replaces the existing roundbox option.

Fixed

  • Previews are now cleaned when changing to an empty directory (#2369).
  • The dircounts indicator for errors is changed back to ! instead of ? (#2372).
  • Previews are now correctly updated on visual-change (#2373).
  • The select command can now select files immediately after creation as part of a script (#2377).
  • The on-load hook command now ignores .git directories to reduce flicker and repeated on-load triggers (#2382).
  • Preview messages like empty or loading... have their alignment improved (#2400).
  • A bug where the loading... message was not displayed for volatile previews after the first time is now fixed (#2410).
  • The cmd-transpose command now advances the cursor correctly after swapping characters (#2413).
  • Symbolic links are no longer followed when changing directories (#2423).
  • Using the select command with a blank string as the argument now properly raises an error instead of changing to the parent directory (#2429).
  • The number of bytes read is now limited for previews that contain extremely long lines (#2458).
  • Control characters are now stripped from previews to prevent dangerous terminal sequences from being processed if the default previewer is used (#2459).
  • Various fixes have been made to sanitize input data and prevent terminal sequence injection (#2467) (#2540) (#2542) (#2546) (#2590) (#2603).
  • Sixel images with the same height as the preview window are now displayed correctly when using tmux (#2474).
  • A bug where previews were loaded according to the old dimensions of the preview window following a terminal resize is now fixed (#2491).
  • Completion matches are now properly aligned if they contain terminal sequences (#2511).
  • load commands are now processed when the watch option is enabled, which should fix various issues with refreshing updated files/directories (#2513).
  • Parsing octal values in strings are now restricted to numbers between 0 and 255 (#2516).
  • Color values are now validated (must be between 0 and 255) when parsing terminal sequences (#2517).
  • Directories are now refreshed properly after using the cd command (#2518).
  • Successfully copied files are no longer deleted if their timestamps could not be preserved (#2519).
  • Previews no longer flicker when the terminal height decreases (#2537).
  • Symbolic linked directories are now updated properly when the watch option is enabled (#2550).
  • Previews of modified files are now updated properly when the preload option is enabled (#2567).
  • Previews of files other than the current file are now reloaded immediately after being modified when the watch option is enabled (#2594) (#2602) (#2648).
  • The loading... message now shows for files that are reloading due to being modified (#2597).
  • Attempting to copy a directory into itself will now result in an error (#2608) (#2623).
  • The permissions of state files (i.e. files/history/marks/tags) is now changed to only be accessible by the owner (#2612).
  • Broken symbolic links are no longer silently overwritten when moving files (#2619).
  • Using the copy or cut command with a path containing newline characters now results in an error instead of silently omitting the path (#2620).

r41

r41

Choose a tag to compare

@github-actions github-actions released this 04 Feb 05:50
18ab3cf

Changed

  • The previewer script no longer skips non-regular files (#2327).
  • Line numbers now take up less space when both number and relativenumber are enabled (#2331).
  • Changes have been made to ruler configuration (#2338):
    • The ruler file is no longer experimental.
    • The ruler file will be used by default unless rulerfmt (now a blank string by default) is specified.
    • The ruler file is no longer read from fixed locations like ~/.config/lf/ruler, and instead the rulerfile option has been repurposed to specify the path of the ruler file.

Added

  • A new server command list is added to print the IDs of all currently connected clients (#2314).
  • The previewer and cleaner scripts now have their stderr output logged (#2316).
  • The ruler file now supports .Stat.Extension, .Stat.AccessTime, .Stat.BirthTime, .Stat.ChangeTime and .Stat.CustomInfo (#2329), as well as .Stat.DirSize and .Stat.DirCount (#2343).
  • A new option mergeindicators is added to reduce the gap before filenames, by merging tag and selection indicators into a single column (#2330).

Fixed

  • A bug where sixel images fail to display when scrolling back and forth is now fixed (#2301).
  • Newline characters are now ignored when drawing the ruler with the ruler file configured (#2319).
  • A potential crash when using the scroll-up/scroll-down commands is now fixed (#2320).
  • Case-insensitive command-line completions no longer cause user input to be displayed in lowercase (#2336).
  • Calculation of window widths for the ratios option is now more accurate (#2347).

r40

r40

Choose a tag to compare

@github-actions github-actions released this 10 Dec 03:48
e439536

Fixed

  • Error messages from the server are no longer written to the terminal which causes the UI to break (#2290).
  • A bug where file previews fail to load properly when scrolling quickly is now fixed (#2292).

r39

r39

Choose a tag to compare

@github-actions github-actions released this 01 Dec 13:33
e17504b

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. :quit instead of : quit) for each line (#2161). The command sed -i -E 's/^(.) /\1/' ~/.local/share/lf/history can be run to make an existing history file compatible with the new format.
  • The cmd-history-next and cmd-history-prev commands 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 of cd -- [~]) (#2165).
  • yes-no-prompts now use the same design everywhere (#2212).
  • Logs generated by -log <path> now get appended to <path> instead of overwriting it (#2215).
  • The showbinds menu now hides the redundant mode column (#2226) (#2228) and omits already typed keys (#2249).
  • The setlocal command no longer requires absolute paths (#2253).
  • The string representation of file permissions now matches the traditional Unix format instead of the one used by Go (#2270).

Added

  • A new command cmd-menu-discard is added to allow exiting the completion menu with completions discarded (#2146).
  • The lf_mode environment variable will now be set to compmenu if the completion menu is active (#2146).
  • A ruler config file is added as an alternate method for customizing the ruler (#2186). This is intended to eventually replace the existing rulerfmt/statfmt options and must be enabled using the new rulerfile option. This feature is currently experimental.
  • A new option preload is added to enable calling the previewer to generate previews in advance (#2206). This feature is currently experimental.
  • OSC 8 escape codes to render clickable hyperlinks are now supported (#2243).

Fixed

  • shell-pipe commands 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. 0 is ordered before 00) (#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 source command does not show an error message upon failure is now fixed (#2189).
  • The addcustominfo (#2198) and setlocal (#2254) (#2259) commands, as well as the cleaner and previewer options (#2211) now support filename completions.
  • A bug where an empty custom info property would still take up space is now fixed (#2208).
  • A bug where setting drawbox could lead to scrolling outside the view is now fixed (#2210) (#2218).
  • The preview cache is now not cleared when setting ratios to its current value (#2218).
  • Filtering is fixed when using special characters in the search pattern if the filtermethod is text (#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

r38

Choose a tag to compare

@github-actions github-actions released this 19 Sep 04:23
49f2a7c

Changed

  • The deprecated globfilter and globsearch options are now removed (#2108).
  • Sixel image support is now enabled by default, and the sixel option has been removed as it is no longer required (#2109).
  • The dircache option 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 locale option has been removed in favor of the recommendation to use addcustominfo/set sortby custom for custom sorting (#2111).
  • The existing doc command has been renamed to help so 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 previewer script, for example by piping to sed 's/^/ /'.

Added

  • Sixel image previews can now display multiple images as well as text (#2109).
  • A new option sizeunits is added to allow displaying file sizes in either binary or decimal units (#2118).
  • XDG_CONFIG_HOME and XDG_DATA_HOME are now taken into account when looking up config/data files on Windows (#2119).
  • Three new options menufmt, menuheaderfmt, and menuselectfmt are 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 -remote should 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 -help now match the synopsis in the documentation (#2153).

r37

r37

Choose a tag to compare

@github-actions github-actions released this 25 Aug 04:47
6c13807

Changed

  • The default paths of files read by lf is 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%.
  • 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 lf to run slowly in some cases.
  • The existing globfilter and globsearch options are now deprecated in favor of the new filtermethod and searchmethod options, which support regex patterns (#2058).
    • set globfilter true should be replaced by set filtermethod glob.
    • set globsearch true should be replaced by set searchmethod glob.
  • File sizes are now displayed using binary units (e.g. 1.0K means 1024 bytes, not 1000 bytes) (#2062). The maximum width for displaying the file size has been increased from four to five characters.

Added

  • dircounts are now respected when sorting by size (#2025).
  • The info and sortby options now support btime (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/wrapscroll is 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 selmode and sortby options (#2061), as well as the info and preserve options (#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

  • dircounts are now automatically populated after enabling it (#2049).
  • A bug where directories are unsorted after reloading when dircache is 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-load command 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

r36

Choose a tag to compare

@github-actions github-actions released this 18 Jul 02:02
e5c2cc4

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-below has been removed in favor of the newly added support for Visual mode (#2021).

Added

  • A new placeholder %P representing the scroll percentage is added to the rulerfmt option (#1985).
  • A new on-load hook command is added, which is triggered when files in a directory are loaded in lf (#2010).
  • The info option now supports custom, allowing users to display custom information for each file (#2012). The custom information should be added by the user via the addcustominfo command. Sorting by the custom information is also supported (#2019).
  • Support for visual-mode has now been added (#2021) (#2035). This includes the following changes:
    • A new command visual (default V) can be used to enter Visual mode.
    • A new command visual-change (default o in Visual mode) can be used to swap the positions of the cursor and anchor (start of the visual selection).
    • A new command visual-accept (default V in 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-unselect can be used to exit Visual mode, removing the visual selection from the selection list.
    • The existing map command now adds keybindings for both Normal and Visual modes. Two new commands nmap and vmap are added which can be used to add keybindings for only Normal or Visual mode respectively.
    • Two new commands nmaps and vmaps are added to display the list of keybindings in Normal and Visual mode respectively. These, along with the existing maps and cmaps commands, now display an extra column indicating the mode for which the keybindings apply to.
    • A new option visualfmt is added to customize the appearance of the visual selection.
    • Two new placeholders %m and %M are added to statfmt to display the mode in the status line. Both will display VISUAL when in Visual mode, however in Normal mode %m will display as a blank string while %M will display NORMAL.
    • A new placeholder %v is added to rulerfmt which displays the number of files in the Visual selection. This is included in the default setting for rulerfmt.
    • The lf_mode environment variable will now be set to visual while in Visual mode.
    • The environment variable $fv is now exported to shell commands, which lists the files in the visual selection.
  • A CHANGELOG.md file has been added to the repo (#2027). This will be updated to describe Changed, Added and Fixed functionality 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-history command 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-back command is fixed (#1976).
  • The preserve option now applies to directories in addition to files when copying. This includes preserving timestamps (#1979) and mode (#1981).
  • The lfrc.ps1.example example config file is updated to include PowerShell equivalents for the default commands and keybindings (#1989).
  • Quoting for the lf environment variable is fixed for PowerShell users (#1990).
  • tempmarks are no longer cleared after the sync command is called (#1996).
  • The file stat information is no longer displayed during the execution of a shell-pipe command 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 watch is enabled. This helps to reduce notification spam and potential of infinite loops (#2015).
  • Attempting to cut/copy files into a directory without execute permissions no longer causes lf to crash, and an error message will be displayed instead (#2024).

r35

r35

Choose a tag to compare

@github-actions github-actions released this 25 Apr 01:36
3d205f0

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 files is added to the query server command to list the files in the current directory as displayed in lf (#1949) (by @MahouShoujoMivutilde).
  • (New) A new tty-write command is added for sending escape sequences to the terminal (#1961) (by @joelim-work). Writing directly to /dev/tty is not recommended as it not synchronized and can interfere with drawing the UI.
  • (Fix) The trash command in lfrc.example now verifes if the trash directory exists before moving files there (#1918) (by @valoq).
  • (Fix) lf should 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 previewer script is now only invoked for the current directory (instead of all directories), when starting lf with dirpreviews enabled (#1958) (by @joelim-work).

r34

r34

Choose a tag to compare

@github-actions github-actions released this 09 Feb 12:00
c25647d

Changelog

  • (Breaking) The autoquit option is now enabled by default. (#1839) (by @joelim-work)
  • (New) A new option locale is 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-init hook command is added to allow triggering custom actions when lf has 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-quit hook command causes an infinite loop has been fixed. (#1856) (by @joelim-work)
  • (Fix) File sizes now display correctly after being copied when watch is enabled. (#1881) (by @joelim-work)
  • (Fix) Files are now automatically unselected when removed by an external process, when watch is enabled. (#1901) (by @joelim-work)

r33

r33

Choose a tag to compare

@github-actions github-actions released this 01 Nov 12:48
f96a070

Changelog

  • (Breaking) The globsearch option, which previously affected both searching and filtering, now affects only searching. A new globfilter option is introduced to enable globs when filtering, and acts independently from globsearch. (#1650) (by @Catalyn45)
  • (Breaking) The hidecursorinactive option is replaced by the on-focus-gained and on-focus-lost hook commands. These commands can be used to invoke custom behavior when the terminal gains or loses focus. (#1763) (by @joelim-work)
  • (Breaking) The ruler option (deprecated in favor of rulerfmt) is now removed. (#1766) (by @joelim-work)
  • (Breaking) Line numbers from the number and relativenumber options 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 lf server) is added for Windows. (#1637) (by @Catalyn45)
  • (New) Color and icon configurations now support the target keyword for symbolic links. (#1644) (by @lorentzforces)
  • (New) A new option roundbox is added to use rounded corners when drawbox is enabled. (#1653) (by @J-Kappes)
  • (New) A new option watch is added to allow using filesystem notifications to detect and display changes to files. This is an alternative to the period option, 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 info option now supports perm, user and group to display the permissions, user and group respectively for each file. (#1799) (by @owallb)
  • (New) A new option showbinds is 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-quit hook 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.nu now 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.cmd now 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)