./sysutils/yazi, Blazing fast terminal file manager

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 25.4.8, Package name: yazi-25.4.8, Maintainer: pkgsrc-users

Blazing Fast Terminal File Manager.

Yazi (duck in Chinese) is a terminal file manager written in Rust, based on
non-blocking async I/O.
It aims to provide an efficient, user-friendly, and customizable file
management experience.


Master sites:

Filesize: 825.356 KB

Version history: (Expand)


CVS history: (Expand)


   2025-04-14 15:58:20 by pin | Files touched by this commit (3) | Package updated
Log message:
sysutils/yazi: update to 25.4.8

Breaking Changes

    Supported wraparound navigation and enabled it by default. #2485
    Replaced tasks_show and close_input with tasks:show and input:close. #2530
    frag, name, stem, ext, and parent on Url, name on tab::Tab, and is_hovered \ 
on fs::File are now properties. #2572
    Swapped the default key bindings for z (zoxide) and Z (fzf). #2546
    Used the new @sync peek annotation instead of the previewer's sync = true. #2487

Deprecated

    ui.Padding and ui.Rect:padding() are deprecated. #2574

Packaging

    SVG preview backend switched from ImageMagick to resvg and implemented as a \ 
new svg previewer. #2533, #2581

Custom Search Engine Lua API

With #2452, you can create custom search engines via the Lua API, meaning that \ 
plugins can serve as the source for search view file lists.

A new plugin vcs-files.yazi is available to display the list of files changed in \ 
Git within Yazi.

Platform-Specific Key Binding

#2526 adds a new optional for field to key bindings to specify the platform the \ 
key binding applies to.

For example:

{ on = [ 'g', 'd' ], run = 'cd ~/dev',  desc = 'Go dev',    for = 'unix' },
{ on = [ 'g', 'd' ], run = 'cd C:\dev', desc = 'Go C:\dev', for = 'windows' },

Performance Improvements

This version brings several performance enhancements:

    Configuration parser has been rewritten to double the startup speed. #2508
    AVIF, HEIF, and JPEG XL previews have seen significant performance \ 
improvements. #2533, thanks @ze0987
    Compiled and cached the Lua bytecode to enhance the overall performance of \ 
the plugin system. #2490

Enhance fzf Integration

Now, you can select multiple files in fzf, and the selected files will also be \ 
selected in Yazi.

Also, you can now view, navigate, and deselect the file selection list from Yazi \ 
within fzf.

Use Yazi File Manager Directly in Helix, Without Zellij or tmux

#2461 adapted Yazi to support Helix's :insert-output, which means you can now \ 
run Yazi directly within Helix – it even supports image and video previews!

New prev and next Arguments to arrow for Wraparound Navigation

Circular navigation is one of the long-requested features, and is now supported \ 
via the new arrow prev and arrow next commands in #2485.
New follow Command to Follow Files Pointed to by Symlinks

#2543 adds support for following files pointed to by symlinks.

A new key binding, g => f (follow hovered symlink), has been added to use \ 
this feature.
Allow Initializing Input When Opening It with Commands Like rename, create, \ 
find, filter, etc.

With #2578, you can now customize the input box opened by commands such as \ 
create, rename, cd, filter, find, search, and shell. For example:

{ on = "r", run = [ "rename", "input:escape" ] }

This will open the rename input box and exit insert mode, meaning that the \ 
default state will be normal mode.

What's Changed

    feat: new <C-A> and <C-E> keybindings to select entire line for \ 
the input component by @sxyazi in #2439
    fix: reserve a hack for Zellij to force an image adapter by @sxyazi in #2441
    feat: new rt.term exports terminal emulator information by @sxyazi in #2442
    fix: always show the size in the status bar even in empty directories by \ 
@sxyazi in #2449
    feat: allow tab_swap to cycle tabs by @sxyazi in #2456
    feat: support using Yazi in Helix directly without Zellij or tmux by @sxyazi \ 
in #2461
    refactor: prefer WriteConsoleW for Windows console output by @sxyazi in #2464
    ci: add label only if not removed manually by @sxyazi in #2470
    fix: force ANSI for keyboard progressive enhancement on Windows by @sxyazi \ 
in #2474
    feat: new fs.expand_url API by @sxyazi in #2476
    feat!: file navigation wraparound with new arrow prev and arrow next \ 
commands by @sxyazi in #2485
    feat!: new @sync peek annotation for sync previewers by @sxyazi in #2487
    perf: lazy compile and cache lua plugins as binary bytecode by @sxyazi in #2490
    feat: new base field for the Url userdata by @sxyazi in #2492
    feat: allow repositioning the cursor in the rename DDS event by @sxyazi in #2521
    feat: new symlink_target to style the target of symbolic links by @sxyazi in \ 
#2522
    feat: platform-specific key binding by @sxyazi in #2526
    feat: show error message when directory fails to load by @sxyazi in #2527
    feat: allow bulk renaming to include trailing content in addition to the \ 
required new names by @MikuGeek in #2494
    refactor!: remove unnecessary tasks_show and close_input commands by @sxyazi \ 
in #2530
    perf!: faster image preview with optimized magick arguments by @ze0987 in #2533
    feat!: support arrow prev and arrow next for more components by @XOR-op in #2540
    feat: clear terminal before displaying EXIF data by @Integral-Tech in #2541
    feat: new follow command to follow files pointed to by symlinks by @sxyazi \ 
in #2543
    fix: always check whether the cursor exceeds the upper bound to guard \ 
against unexpected values by @sxyazi in #2551
    feat!: enhance fzf integration by @sxyazi in #2553
    feat: support Warp terminal image preview by @sxyazi in #2571
    feat: allow initializing input when opening it with commands like rename, \ 
create, find, filter, etc. by @sxyazi in #2578
    fix: ignore XQuartz $DISPLAY variable by @sxyazi in #2586
    fix: don't fail on videos with embedded images by @ze0987 in #2590
   2025-04-04 22:28:28 by pin | Files touched by this commit (1)
Log message:
sysutils/yazi: reset maintainer
   2025-03-02 18:13:01 by pin | Files touched by this commit (3) | Package updated
Log message:
sysutils/yazi: update to 25.3.2

This is a quick fix release that addresses the issue where, under SSH, terminal \ 
response sequences are not completely consumed and are leaked to the screen.

Thanks to @Crdr0122 and @SpookyYomo for reporting and helping reproduce the issue!
What's Changed

    feat: expose all theme fields in Lua by @hankertrix in #2405
    fix: windows-sys features for Win32_Storage_FileSystem and \ 
Win32_System_Threading by @sxyazi in #2417
    fix: ignore stdin redirection to ensure always accessing the real tty by \ 
@sxyazi in #2425
    fix: STDIN_FILENO poll always returns 0 under SSH by @sxyazi in #2427
    feat: expose almost the entirety of the user's configuration in Lua by \ 
@hankertrix in #2413
    chore: bump version to 25.3.2 by @sxyazi in #2428
   2025-02-26 20:40:43 by pin | Files touched by this commit (4) | Package updated
Log message:
sysutils/yazi: update to 25.2.26

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.

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
   2025-02-24 09:41:02 by pin | Files touched by this commit (4) | Package updated
Log message:
sysutils/yazi: update to 25.2.11

v25.2.11
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
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

v25.2.7
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. 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.

 - 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.
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.
You can also apply a UI element to the title and content to customize the appearance.
   2025-02-23 08:58:27 by Thomas Klausner | Files touched by this commit (2)
Log message:
yazi: add upstream bug report URL
   2025-02-23 08:52:58 by Thomas Klausner | Files touched by this commit (4)
Log message:
yazi: use libc crate with NetBSD getmntinfo fix

Bump PKGREVISION.
   2025-02-12 15:21:24 by Thomas Klausner | Files touched by this commit (2)
Log message:
yazi: install desktop file

Bump PKGREVISION.