Skip to content

Releases: sxyazi/yazi

v25.2.26

26 Feb 15:16
6b0a530
Compare
Choose a tag to compare

Breaking Changes

  • separator_open and separator_close have been replaced with the new sep_left and sep_right. #2313
  • The [completion] component has been renamed to [cmp]. #2399

Deprecated

  • MANAGER, PREVIEW, PLUGIN, and THEME have been deprecated in favor of the new rt and th. #2389
  • ya.manager_emit() has been deprecated in favor of the new ya.mgr_emit(). #2397

Built-in Previewer Improvements

  • The JSON previewer will now respect the user's wrap setting to support automatic JSON line wrapping. #2337, thanks @boydaihungst
  • The PDF previewer will now respect the user's max_width setting to address the issue of previewing content that is too small. #2331
  • The ImageMagick previewer will now respect the user's image_alloc setting to limit memory usage. #2403

New Search Engine: rga

#2383 (thanks @paperbenni) has added a new ripgrep-all search engine.

It is a wrapper around ripgrep that supports additional file formats (such as PDF, docx, epub, etc.).

You can use it with the search --via=rga command.

Allow to Specify Layer for Keymap Commands

With #2399, you'll now be able to assign commands from different layers to a keybinding in keymap.toml.

This opens up the possibility of interacting with any other component, such as accessing commands from the manager ([manager]) within the input component ([input]):

[[input.prepend_keymap]]
on   = "<Esc>"
run  = [ "close", "mgr:escape --filter" ]
desc = "Close input and cancel the filter"

When you press Esc in the input box to exit the filter view (triggered by the f key), the filter will be canceled as the input is closed.

More Flexible Status Bar Customization

#2313 (thanks @PFiS1737) introduces sep_left and sep_right to replace the previous separator_open and separator_close settings, allowing different separators to be set for the left and right sides:

status-sep-explain

Support for Setting Spotter Table Styles

#2391 introduces two new settings, tbl_col and tbl_cell, in theme.toml to configure the styles for spotter table columns and cells, respectively.

What's Changed

  • feat!: allow different separators to be applied individually to the left and right sides of the status bar by @PFiS1737 in #2313
  • fix: load mount points with the best effort even if the /dev/disk/by-label directory does not exist by @sxyazi in #2326
  • feat: CSI-based Vim and Neovim built-in terminal detection for better accuracy by @sxyazi in #2327
  • feat: respect the user's max_width setting for the built-in PDF preloader by @sxyazi in #2331
  • feat: respect the user's wrap setting for the built-in JSON previewer by @boydaihungst in #2337
  • refactor: consistent naming for enum variants by @sxyazi in #2339
  • feat: new external and removable fields in the fs.partitions() API by @sxyazi in #2343
  • feat: terminal response detection under async stdin by @sxyazi in #2347
  • fix: incorrect kebab-case for the notify level enum by @hankertrix in #2349
  • fix: add maximum preview limit under /proc virtual file system by @sxyazi in #2355
  • feat: add a link to the debugging instructions in yazi --debug by @sxyazi in #2365
  • fix: didn't reset previous Cha when loading directories in chunks by @sxyazi in #2366
  • feat: make incompatible version message more clear by @sxyazi in #2377
  • feat: bump trash and libc versions to support NetBSD by @sxyazi in #2388
  • feat: new rt and th allow to access user configuration and theme scheme in sync/async plugins consistently by @sxyazi in #2389
  • feat: new tbl_col and tbl_cell in theme system for spotter table styling by @sxyazi in #2391
  • feat: add ripgrep-all support for search by @paperbenni in #2383
  • feat: new cf.args to access startup arguments by @sxyazi in #2392
  • refactor: rename cf to rt by @sxyazi in #2393
  • feat: expose mode field in Cha by @sxyazi in #2394
  • refactor: rename rt.manager to rt.mgr, and th.manager to th.mgr by @sxyazi in #2397
  • feat!: allow to specify layer for keymap commands by @sxyazi in #2399

New Contributors

Full Changelog: v25.2.11...v25.2.26

Nightly Build

07 Aug 00:43
20c99c6
Compare
Choose a tag to compare
Nightly Build Pre-release
Pre-release

From commit: 20c99c6
Generated on: 2025-02-26 18:46 UTC

v25.2.11

11 Feb 11:34
ce9092e
Compare
Choose a tag to compare

This is a quick fix release that addresses a few issues introduced in the previous version 25.2.7.

Besides that, a new overall option has been added under [status] in theme.toml, which allows you to set the overall style of the status bar, specifically the empty area in the center:

[status]
overall = { fg = "#cad3f5", bg = "#181926" }

411906568-4ab46d09-9f2c-489b-85f3-83f264ecd9cc

See #2321 for details.

What's Changed

  • fix: reverse the order of CSI-based and environment-based terminal detection by @sxyazi in #2310
  • feat: reduce terminal response wait timeout by @sxyazi in #2314
  • fix: unable to delete sealed files on Windows due to platform differences by @sxyazi in #2319
  • feat: new overall option under [status] to allow specifying the overall style of the status bar by @sxyazi in #2321
  • chore: bump version to 25.2.11 by @sxyazi in #2323

Full Changelog: v25.2.7...v25.2.11

v25.2.7

07 Feb 09:54
17ff1e8
Compare
Choose a tag to compare

Deprecated

  • ya.md5() has been deprecated in favor of the new ya.hash(), in #2168
  • The plugin entry file init.lua has been deprecated in favor of the new main.lua, in #2168
  • arrow -99999999 and arrow 99999999 have been deprecated in favor of the new arrow top and arrow bot, in #2294
  • The --args option in the plugin command has been deprecated in favor of a new 2nd positional parameter, in #2299
  • The numeric return value of the preloader has been deprecated in favor of a new boolean return value, in #2253

The mount.yazi Plugin

For a long time, I've been receiving requests from users for a mount manager, but never had the time to finish it. But now — it's here!

mount.yazi provides disk mount, unmount, and eject functionality:

404254109-c6f780ab-458b-420f-85cf-2fc45fcfe3a2.mp4

Done in #2199.

Simplification of shell and plugin commands

With #2298, you can now write shell scripts directly after -- (end of options marker). Everything after -- will be treated as raw text, so no more escaping is required, greatly simplifying the writing of complex commands.

For example, previously, a simple echo "hello 'world'" would look like this:

[[manager.prepend_keymap]]
on  = "<C-e>"
run = '''
  shell --block 'echo "hello '\''world'\''"'
'''

This resulted in nested quotes, which was error-prone and unintuitive.

Now, you can directly include the entire shell script as plain text after -- without any escaping:

[[manager.prepend_keymap]]
on  = "<C-e>"
run = '''
  shell --block -- echo "hello 'world'"
'''

Similarly, with #2299, the plugin command usage has been simplified as well. For instance:

[[manager.prepend_keymap]]
on  = "<C-e>"
run = "plugin search --args='\'hello world\''"

Can now be written as:

[[manager.prepend_keymap]]
on  = "<C-e>"
run = "plugin search -- 'hello world'"

Replace Mode and Vim Motions (W, E, B, ^, _) for Inputs

The Input component now supports replace mode and several new Vim motions, including:

  • W: Move forward to the start of the next WORD
  • E: Move forward to the end of the current or next WORD
  • B: Move back to the start of the current or previous WORD
  • ^: Move to the first non-whitespace character
  • _: Move to the first non-whitespace character

Thanks to @dxrcy for the work in #2143!

Package Manager Enhancements

The package manager now supports the following new features:

  • ya pack -d to delete a package (thanks @MrAsler, #2181)
  • Support for adding and removing multiple packages with a single command (thanks @evpeople, #2257)

Support Local tmux Image Preview Over SSH

Now, when you start tmux locally, connect to a remote SSH session, and run Yazi on the remote host, you'll get image preview support out of the box.

Done in #2229.

New @since Plugin Annotation to Specify the Minimum Supported Yazi Version

You can now optionally specify the minimum supported Yazi version in your plugin:

--- @since 25.2.7

return {
  entry = function() end
}

If specified, and the user's Yazi version is lower than the given version, they will receive an error message preventing the plugin from running accidentally.

Done in #2290

New ya.confirm() API

The new ya.confirm() API allows you to show a confirmation prompt to the user:

local answer = ya.confirm {
  pos = { "center", w = 40, h = 10 },
  title = "Test",
  content = "Hello, World!",
}

You can also apply a UI element to the title and content to customize the appearance:

local answer = ya.confirm {
  pos = { "center", w = 40, h = 10 },
  title = ui.Line("Test"):fg("yellow"):bold(),
  content = ui.Text("Hello, World!"):bg("red"):fg("#ffffff"),
}

v0.4.2

20 Dec 12:44
5cfcab3
Compare
Choose a tag to compare

This is a quick patch release with 3 fixes:

  • Fixed an issue where switching directories in Yazi didn't update the CWD, causing issues with features that depend on the CWD (like terminal splitting and cd --interactive path completion).
  • Fixed a bug where the UI wouldn't refresh when returning to Yazi from an external blocking process (like a shell) while in an empty directory.
  • Fixed an issue where the preview wouldn't update after sorting directories when using the Folder-specific rules tip.

Here are some new features:

  • Added support for a large number of new archive formats for extraction, previewing, and filetype highlighting in #1926 (thanks to @Integral-Tech).
  • Added a new temporary option _v4_suppress_deprecation_warnings in #2027 to suppress all deprecation warnings as a workaround for the transition to version 0.4:
    # yazi.toml
    [manager]
    _v4_suppress_deprecation_warnings = true
  • Added 2 new Lua APIs
    • fs.cwd() - get the current working directory
    • fs.create() - create a directory (Thanks to @hankertrix)

What's Changed

  • fix: interactive cd autocomplete doesn't follow the latest CWD changes by @sxyazi in #2025
  • feat: new option to suppress 0.4 deprecation warnings by @sxyazi in #2027
  • fix: offset cursor shift when deleting multiple files in bulk by @sxyazi in #2030
  • chore: bump version to 0.4.2 by @sxyazi in #2031
  • fix: choose a more conservative macro_workers value to ensure concurrency safety with certain USB flash drives by @sxyazi in #2040
  • feat: support for Android platform in the for qualifier of opener by @sxyazi in #2041
  • fix: set the current working directory in a thread-safe way by @sxyazi in #2043
  • fix: allow-passthrough must be set to on to prevent tmux from forwarding the real terminal's response to the inactive pane by @sxyazi in #2052
  • fix: pass through show_hidden when building default Files by @sxyazi in #2057
  • fix: use a less intrusive DSR instead of DA1 workaround to forward terminal responses twice in tmux by @sxyazi in #2058
  • feat: new --cwd parameter for the shell command and fs.cwd() API by @sxyazi in #2060
  • feat: allow noop for single-key chords by removing the mixing length limit by @sxyazi in #2064
  • ci: add riscv64gc-unknown-linux-gnu target by @Integral-Tech in #2067
  • fix: missing a render after resuming from an external blocking process by @sxyazi in #2071
  • feat: add more supported archive formats to the preset config by @Integral-Tech in #1926
  • feat: new fs.create() Lua API by @hankertrix in #2068
  • fix: missing a hover after reordering from an external plugin by @sxyazi in #2072

Full Changelog: v0.4.1...v0.4.2

v0.4.1

10 Dec 12:35
2275719
Compare
Choose a tag to compare

This is a quick patch version with 4 fixes:

  • Fixed an issue where Yazi would freeze when waiting for terminal response, in old tmux versions (v3.2a or lower), or 2-layer nested terminal setup (tmux -> Neovim's :terminal -> Yazi).
  • Fixed a bug in the Überzug++ backend where certain image dimension parsing failed, preventing images from displaying.
  • Fixed a build failure for Android 32-bit architectures.
  • Fixed an issue with the preset archive and json plugins not handling CRLF properly on Windows.

What's Changed

  • fix: disable passthrough when the user launches Yazi in Neovim inside tmux by @sxyazi in #2014
  • refactor: replace format! with concat! for string literals by @Integral-Tech in #2012
  • fix: correctly handle CRLF on Windows in preset archive and json plugins by @sxyazi in #2017
  • fix: failed to parse certain image dimensions for Überzug++ backend by @sxyazi in #2020
  • chore: bump version to 0.4.1 by @sxyazi in #2022

Full Changelog: v0.4.0...v0.4.1

v0.4.0

08 Dec 14:46
b8b3ab9
Compare
Choose a tag to compare

This is the biggest release ever, with 53 new features, 41 fixes, and 12 performance optimizations.

The main focus of this release is improving the plugin system, and we’ve made some adjustments to certain APIs based on real-world usage to better support future extensibility. This release is a key step in moving the plugin system from BETA to stable!

This is a breaking change release, so please make sure to read: Migrating to Yazi v0.4.0

Spotter

#1802 introduces the concept of "spotter". When you "spot" a file, a popup will show up with metadata about that file.

For example, it can display the mime type and size of a regular file, the dimensions and color space of an image, the duration and resolution of a video, or the line count of a code file, etc.

You can easily copy this info with a simple keystroke or quickly swipe through files in the spot window.

What's even cooler is that users can set custom spotters for different file types, and plugin developers can use Lua APIs to build various spotters, just like with previewers!

output.mp4

Support for Transparent Image Preview

Transparent image previews are now supported in #1556 (Thanks to @diegodorado), and it works across all 4 image backends Yazi supports (kitty graphics-protocol, Inline images protocol, Sixel graphics format, Überzug++).

screenshot-002179

Auto Switch Between Dark and Light Icons/Flavors Based on Terminal Background

#1946 adds dark/light mode support — Yazi will automatically detect your terminal's color scheme and choose the appropriate icon color and flavor.

In theme.toml, the [flavor] section now includes two new attributes, dark and light, to allow setting different flavors for light and dark modes:

# theme.toml
[flavor]
dark  = "dracula"
light = "one-light"

New ya emit and ya emit-to Subcommands to Emit Commands to a Specific Instance

Two new subcommands, ya emit and ya emit-to, have been added to the ya CLI tool in #1946.

They allow you to send commands from outside Yazi (e.g., from your shell) to run on a specific Yazi instance for better interactivity.

The new ya emit subcommand allows users to send a command to the current Yazi instance. The format is:

ya emit <command> <args>

For example:

ya emit cd /tmp
ya emit reveal /tmp/foo

Just like you would write them in your keymap.toml file! You can also send commands to a specific remote instance using ya emit-to:

ya emit-to <receiver> <command> <args>

For example:

ya emit-to "$YAZI_ID" cd /tmp

Support Passing Arguments to Previewer/Preloader/Spotter/Fetcher

With #1979, you can now pass arguments to previewers, preloaders, spotters, and fetchers when configuring them:

# yazi.toml
[plugin]
prepend_previewers = [
  { mime = "image/*", run = 'my-plugin test --foo --bar=baz' }
]
prepend_preloaders = [
  { mime = "image/*", run = 'my-plugin test --foo --bar=baz' }
]
prepend_spotters = [
  { mime = "image/*", run = 'my-plugin test --foo --bar=baz' }
]
prepend_fetchers = [
  { id = "test", mime = "image/*", run = 'my-plugin test --foo --bar=baz' }
]

This makes them much more flexible, meaning the same plugin can behave differently based on different arguments, tailored to the user's preferences!

Suggest Keywords in the Header When a Finder Is Active

A new keyword indicator has been added to the header, in #1847, letting users know the current finding state with real-time feedback:

screenshot-002086.mp4

Allow Disabling Certain Preset Keybinds with the New noop Virtual Command

A new noop command has been introduced in #1882:

[[manager.prepend_keymap]]
on  = [ "g", "c" ]
run = "noop"

This allows users to disable specific default keybindings, and the disabled keys won’t appear in the "which key" component or the help menu.

Make the Built-in extract Plugin Support Compressed Tarballs (*.tar.gz, *.tar.bz2, etc.)

The built-in extract plugin now has experimental support for extracting compressed tarballs, making it more convenient for users who frequently work with .tar files.

Thanks to @DirkFi for his excellent work on #1583

Prioritize Paths That Need to Be Processed First During Bulk Renaming

The bulk renaming feature now has smart conflict resolution, done in #1801 (thanks to @yw1ee).

For example, if you’re renaming a list of files:

1
2
3

And renaming them to:

1 -> 2
2 -> 3
3 -> 4

Previously, Yazi would stop with an error when trying to rename 1 -> 2 because 2 already exists.

Now, it will intelligently pick files that won’t conflict and process them in order, so in this case, it will rename them like this:

3 -> 4
2 -> 3
1 -> 2

Fallback to CSI 16 t for Terminals That Don’t Support TIOCGWINSZ

All terminals on Windows (MS Terminal, WezTerm for Windows) do not support TIOCGWINSZ because Windows doesn't have ioctl.

Some terminals based on node-pty also don't support it (like Tabby, VSCode, Hyper, etc.).

#2004 falls back to CSI 16 t when TIOCGWINSZ is unavailable to provide better image size calculation for previews.

screenshot-002175.mp4

Launch From Preset Settings If the User’s Config Cannot Be Parsed

Now, if Yazi can’t parse your config file because of invalid values, it will ask if you want to launch with the default settings instead of failing to start.

This improves the user experience. Done in #1832

Other improvements

These are a few of my favorite features. For a complete list of improvements in Yazi 0.4, check out the full changelog below.

What's Changed

  • fix: match icon by extension case-insensitive by @sxyazi in #1614
  • refactor: privatize url of the File by @sxyazi in #1619
  • perf: introduce URN to speed up large directory file sorting by @sxyazi in #1622
  • fix: set allow-passthrough always to all instead of on to prevent overriding a user setting with a higher priority all by @sxyazi in #1626
  • fix: set a dedicated Mimetype agency to reconcile regular files and search results by @sxyazi in #1627
  • feat: make the builtin extract plugin support compressed tarballs (*.tar.gz, *.tar.bz2, etc.) by @DirkFi in #1583
  • feat: support transparent image preview by @diegodorado in #1556
  • perf: avoid unnecessary allocations in base64 encoding of IIP by @sxyazi in #1639
  • perf: introduce URN to speed up large directory locating by @sxyazi in #1648
  • feat: support setting different input titles for create --dir by @Tyarel8 in #1650
  • perf: introduce URN to speed up large directory file updates by @sxyazi in #1652
  • refactor: ensure that each Url contains the full location information by @sxyazi in #1659
  • feat: support calling methods in builtin plugins with arbitrary types of arguments (self can now be omitted) by @sxyazi in #1666
  • feat: add the area() API for renderable elements by @sxyazi in #1667
  • fix: one file's mime-type changed multiple times without triggering a preview again by @sxyazi in #1682
  • fix: enter and leave commands should treat the search results as regular entities by @sxyazi in #1687
  • fix: magick previewer for multi-layered image files with -flatten argument by @v3natio in #1684
  • feat: improve jemalloc memory efficiency by @dm9pZCAq in #1689
  • feat: adapt for image preview in the Rio terminal by @raphamorim in #1690
  • fix: increase the revision when there is a change in Urn on updating by @sxyazi in #1691
  • feat: allow overriding and rewriting the sync methods of builtin plugins by @sxyazi in #1695
  • feat: add more context to error messages by @sxyazi in #1701
  • fix: replace control characters to printable characters in plain text preview by @sxyazi in #1704
  • feat: async micro task initialization error handling by @sxyazi in #1710
  • feat!: make backspace command not close the input even when value is empty by @XYenon in #1680
  • feat: reuse the code previewer seeking behavior for json, archive, and empty by @sxyazi in #1721
  • fix: temporarily disable TIFF decoding by @sxyazi in...
Read more

v0.3.3

04 Sep 15:58
7c445ce
Compare
Choose a tag to compare

This version fixes a regression from the previous release that caused some keys to stop working. And it resolves a long-standing issue where the file list couldn't refresh automatically in Windows WSL.

This version also introduces the following three new features:

Git integration

Show the status of Git file changes as a linemode in the file list.

Feel free to use it and report any issues! For now, you need to manually install it (pretty easy to do) from https://github.com/yazi-rs/plugins/tree/main/git.yazi. In the future, it will be included as one of Yazi's built-in plugins.

screenshot-001986.mp4

size linemode supports displaying the number of files in a directory

#1591 updates the size linemode for directories to support displaying the number of files within the directory instead of leaving it blank as before.

If size information is available for the directory (triggered when sorting by size), that information will be shown as a priority.

screenshot-001992.mp4

Windows Terminal support for image previews

Windows Terminal Preview v1.22.2362.0 now supports the Sixel image format. Yazi provided an adaptation for this in #1588 (Thanks @e82eric).

Note that Windows Terminal Preview v1.22.2362.0 has a bug that can cause Yazi to time out at startup. If you want to try this feature, make sure to apply the patch from microsoft/terminal#17833.

output.mp4

What's Changed

  • fix: keybindings disappear when mixing presets with a wrong filter condition by @sxyazi in #1568
  • fix: check compositor support status before using ueberzug wayland output by @taoky in #1566
  • fix: fallback to PollWatcher on WSL by @sxyazi in #1574
  • fix: continuous fetcher was not scheduled consecutively by @sxyazi in #1575
  • fix: Rail component should have a higher rendering priority by @sxyazi in #1585
  • perf: truncate long lists in confirm dialogs by @sxyazi in #1590
  • feat: size linemode supports showing the file count for directories by @sxyazi in #1591
  • feat: support image preview in Windows Terminal by @e82eric in #1588
  • chore: upgrade ratatui to 0.28.1 by @sxyazi in #1601
  • feat: add is_absolute, has_root, starts_with, ends_with, strip_prefix to Url Userdata by @sxyazi in #1605
  • feat: add dict_merge() function by @sxyazi in #1609

New Contributors

Full Changelog: v0.3.2...v0.3.3

v0.3.2

28 Aug 05:15
ddb8ce5
Compare
Choose a tag to compare

This version introduces two eagerly awaited new features: a brand-new confirm component, and word wrapping.

Brand-new confirm component

#1167 (thanks to @thelamb) introduces a brand-new confirm component that handles various confirmations (like trashing files, deleting files, overwriting files, and exit confirmations). The goal is to provide a safer and more efficient user experience:

  • Safer: Now, when you trash, delete, or overwrite files, it'll show a list of affected files for a second confirmation, instead of just the number of files like before.
  • More efficient: Confirmation now only requires pressing Enter once, instead of typing "y" and then pressing Enter. This should be a nice quality-of-life improvement.
screenshot-001973.mp4

Word wrapping

#1159 (thanks to @mskvsk and @ArtyomArtamonov) adds a new wrap option under [preview], which can be set to "no" or "yes". When set to "yes", word wrapping is enabled:

# ~/.config/yazi/yazi.toml
[preview]
wrap = "yes"

Image preview performance optimization

I've been working on optimizing Yazi's image preview speed, and with multi-threading, preloading, and a built-in image decoder, it should already be the fastest among all terminal file managers.

However, I noticed some lag during fast scrolling and realized that at this point, the performance bottleneck isn't Yazi itself, but rather the terminal. When users scroll quickly, Yazi processes the images at a very high speed and sends them to the terminal, but the terminal can't keep up with processing them in time, which gives the impression of lag. In reality, it's not Yazi that's lagging, but the terminal.

#1512 introduces a new image_delay configuration option to address this issue. When previewing images, it will wait at least image_delay milliseconds before starting to send the decoded image data to the terminal.

This gives the terminal a breather and creates the perception that the file list is still scrolling smoothly. Additionally, this can reduce the CPU overhead caused by immediate image decoding during fast scrolling, thereby extending battery life.

Before:

358916490-8cf40a08-95b5-44fd-a16b-a1efb70b25f6.mp4

Now:

358916499-b5dde838-b700-4fa3-97be-543abff0f4ab.mp4

New --dir option for the create command

The create command is designed to support creating both files and directories (with / or \ at the end to indicate a directory).

However, this isn't user-friendly for those who need to create many directories but few files, as they always have to type / or \.

#1505 (thanks to @abstrakct) introduces a new --dir option that explicitly specifies creating directories without needing to type / or \ every time.

What's Changed

  • fix: overlong single-line text containing escape sequences was not being properly escaped by @sxyazi in #1497
  • fix: upgrade ansi-to-tui to 5.0.0-rc.1 to resolve ratatui version conflict by @sxyazi in #1499
  • feat: add --dir option to create command by @abstrakct in #1505
  • feat: add ext() method to Url userdata by @sxyazi in #1528
  • feat: new confirm component by @thelamb in #1167
  • chore: set MACOSX_DEPLOYMENT_TARGE to 10.11 to make the binary compatible with old macOS by @hronro in #1532
  • fix: use a different cache directory for each user to avoid permission issues by @sxyazi in #1541
  • fix: wait till mimetype is resolved to avoid flickering by @sxyazi in #1542
  • docs: add links to all terminal emulators by @nyurik in #1538
  • feat: make the builtin code previewer handle invalid carriage return chars and binary streams better by @sxyazi in #1550
  • perf: only scan the first 1024 bytes to detect if it's binary, apply \r fixes only to content within the visible range, avoid unnecessary allocations during natural sorting by @sxyazi in #1551
  • feat: word wrapping in builtin code preview by @ArtyomArtamonov in #1159
  • fix: filter out the which candidates that overlap with longer key chords by @sxyazi in #1562
  • fix: DECSET and DECRQM tmux passthrough by @sxyazi in #1564

New Contributors

Full Changelog: v0.3.1...v0.3.2

v0.3.1

15 Aug 15:24
4112bf4
Compare
Choose a tag to compare

This is a quick patch release that addresses several issues introduced in version 0.3.

Additionally, here are some notable new features included in this version:

  • A loading state indicator has been added for slow directories (usually network-mounted points).
  • Support for opening multiple tabs at startup: yazi /dir1 /dir2/file will open two tabs, one in /dir1 and another in /dir2, with file selected.
  • Allows the use of shorthand for keybindings, such as writing <C-X> instead of <C-S-x>.
  • A new --cursor option has been added to the shell command to specify the cursor position. For example, shell 'zip -r .zip "$0"' --cursor=7 places the cursor before .zip.
  • A new previewer has been added for previewing virtual files in the /proc directory.
  • Support for F13 - F19 keys.
  • A nightly build that uses the latest Yazi source code from the past 6 hours, and a new yazi-nightly-bin AUR package for Arch Linux users (Thanks @latipun7)

What's Changed

  • fix: android building error caused by trash crate by @Xerxes-2 in #1393
  • feat: add filtering tip in help component by @MarkZaytsev in #1361
  • feat: add title_format manager config option by @chriszarate in #1281
  • chore: move common dependencies to workspace Cargo.toml by @karimElmougi in #1388
  • fix: precache for images with alpha by @Vikdos in #1414
  • fix: preview files containing special \x1b characters as plain text and escape by @Xerxes-2 in #1395
  • feat: add support portrait orientation preview for EXIF image by @TobisLee in #1412
  • chore: update snap to core24 by @gapplef in #1415
  • feat: new search_do command to make it easier to achieve a flat view by @sxyazi in #1431
  • fix: newly created directories with the same name causing a false positive in directory loading optimization due to having the same modification time by @sxyazi in #1434
  • refactor(nix): home keeping by @isabelroses in #1380
  • fix(nix): pin rust-overlay to workaround cargo-c by @isabelroses in #1442
  • fix: directory loading status by @sxyazi in #1439
  • feat: support F13 - F19 keys by @sxyazi in #1446
  • feat: allows shorthand forms like <C-S-x> as <C-X> by @sxyazi in #1448
  • feat: add cursor option to the shell command by @HE7086 in #1422
  • fix: 7zip shows different error messages for wrong password by @sxyazi in #1451
  • refactor(nix)!: update dependencies by @XYenon in #1456
  • fix: loss of order in Lua sequence table for inter-thread data exchange by @sxyazi in #1457
  • feat: start with multiple tabs with different paths by @coolkiid in #1443
  • fix: close stdin before waiting for child process by @sxyazi in #1464
  • fix: DDS static messages only work when at least two instances are running by @sxyazi in #1467
  • feat: add status() method to Command by @sxyazi in #1473
  • feat: new empty previewer for empty and /proc files by @sxyazi in #1482
  • feat: add hidden file type to is rule by @sxyazi in #1483
  • fix: replace # with : to resolve the problem where certain shells recognize it as a special character by @sxyazi in #1490
  • feat: new tab DDS event on tab switch by @mikavilpas in #1474
  • feat: add keybinding for the hardlink command by @ahanniga in #1461

New Contributors

Full Changelog: v0.3.0...v0.3.1