v25.2.26

sxyazi/yaziv25.2.26Feb 26, 2025by github-actions[bot]

AI Summary

This release introduces the `ripgrep-all` search engine, new status bar customization options with independent left/right separators, and a new `rt` and `th` API for configuration access.

Key Highlights

  • New `ripgrep-all` search engine support
  • New `sep_left` and `sep_right` for status bar customization
  • New `rt` and `th` APIs for accessing config and theme
  • New `tbl_col` and `tbl_cell` for spotter table styling

Breaking Changes

  • `separator_open` and `separator_close` replaced by `sep_left` and `sep_right`
  • `[completion]` component renamed to `[cmp]`
  • `MANAGER`, `PREVIEW`, `PLUGIN`, `THEME` constants deprecated
  • `ya.manager_emit()` deprecated in favor of `ya.mgr_emit()`

New Features

  • JSON previewer respects `wrap` setting
  • PDF previewer respects `max_width` setting
  • ImageMagick previewer respects `image_alloc` setting
  • New `external` and `removable` fields in `fs.partitions()` API
  • New `cf.args` to access startup arguments

Full Release Notes

## Breaking Changes

- `separator_open` and `separator_close` have been replaced with the new `sep_left` and `sep_right`. https://github.com/sxyazi/yazi/pull/2313
- The `[completion]` component has been renamed to `[cmp]`. https://github.com/sxyazi/yazi/pull/2399

## Deprecated

- `MANAGER`, `PREVIEW`, `PLUGIN`, and `THEME` have been deprecated in favor of the new `rt` and `th`. https://github.com/sxyazi/yazi/pull/2389
- `ya.manager_emit()` has been deprecated in favor of the new `ya.mgr_emit()`. https://github.com/sxyazi/yazi/pull/2397

## Built-in Previewer Improvements

- The JSON previewer will now respect the user's `wrap` setting to support automatic JSON line wrapping. https://github.com/sxyazi/yazi/pull/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. https://github.com/sxyazi/yazi/pull/2331
- The ImageMagick previewer will now respect the user's `image_alloc` setting to limit memory usage. https://github.com/sxyazi/yazi/pull/2403

## New Search Engine: [`rga`](https://github.com/phiresky/ripgrep-all)

https://github.com/sxyazi/yazi/pull/2383 (thanks @paperbenni) has added a new [`ripgrep-all`](https://github.com/phiresky/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 https://github.com/sxyazi/yazi/pull/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]`):

```toml
[[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

https://github.com/sxyazi/yazi/pull/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](https://github.com/user-attachments/assets/fd61a85d-9823-46d6-a01f-56c99155c630)


## Support for Setting Spotter Table Styles

https://github.com/sxyazi/yazi/pull/2391 introduces two new settings, `tbl_col` and `tbl_cell`, in `theme.toml` to configure the styles for spotter table columns and cells, respectively.

<img src="https://github.com/user-attachments/assets/f2167e58-96c3-4a66-a244-1150e3e80e43" height="400" />

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

## New Contributors
* @PFiS1737 made their first contribution in https://github.com/sxyazi/yazi/pull/2313
* @paperbenni made their first contribution in https://github.com/sxyazi/yazi/pull/2383

**Full Changelog**: https://github.com/sxyazi/yazi/compare/v25.2.11...v25.2.26