./sysutils/yazi, Blazing fast terminal file manager

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


Branch: CURRENT, Version: 0.4.2nb2, Package name: yazi-0.4.2nb2, Maintainer: pin

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: 794.964 KB

Version history: (Expand)


CVS history: (Expand)


   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.
   2025-02-09 09:30:31 by pin | Files touched by this commit (1) | Package updated
Log message:
sysutils/yazi: add note on require MSRV for update
   2024-12-24 19:31:57 by pin | Files touched by this commit (3) | Package updated
Log message:
sysutils/yazi: update to 0.4.2

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.
    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
   2024-12-11 10:54:31 by pin | Files touched by this commit (3) | Package updated
Log message:
sysutils/yazi: update to 0.4.1

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
   2024-12-08 22:06:45 by pin | Files touched by this commit (4) | Package updated
Log message:
sysutils/yazi: update to 0.4.0

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!

* 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++).

* 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.

* 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.

* Support Passing Arguments to Previewer/Preloader/Spotter/Fetcher

With #1979, you can now pass arguments to previewers, preloaders, spotters, and \ 
fetchers when configuring them.
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.

* Allow Disabling Certain Preset Keybinds with the New noop Virtual Command
A new noop command has been introduced in #1882
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).

* 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.

* 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 #1723
    refactor: turn RectRef, PaddingRef, PositionRef into Rect, Padding, Position \ 
by @sxyazi in #1730
    refactor: use Kgp instead of Kitty since "Kitty" is a terminal \ 
emulator not a protocol name by @sxyazi in #1732
    fix: compositors not supported by Überzug Wayland layer, or WSL not with \ 
WezTerm should fallback to Chafa by @sxyazi in #1735
    fix: clamp when seeking a non-zero unit between -1 and 1 by @sxyazi in #1736
    fix: upserting operation should handle deleting in edge cases where the \ 
source and target URNs are different by @sxyazi in #1737
    refactor: derive the Into<Opt> trait with procedural macros to avoid \ 
bloat by @sxyazi in #1742
    perf: merge multiple file operations into one to greatly speed up updates in \ 
large directories by @sxyazi in #1745
    fix!: introduce a new btime term to align ctime with Unix by @sxyazi in #1761
    feat: yazi --debug supports detecting whether tmux is built with \ 
--enable-sixel by @sxyazi in #1762
    refactor: simplify module exports by @sxyazi in #1770
    refactor!: rename the term select to toggle to reserve select for future use \ 
by @sxyazi in #1773
    feat!: add ui.Text, ui.Table, remove ui.Paragraph and ui.ListItem by @sxyazi \ 
in #1776
    feat!: decouple ui.List, ui.Bar, ui.Border, and ui.Gauge from coordinates by \ 
@sxyazi in #1782
    feat: prevent paths from being treated as options in file command by @gaesa \ 
in #1783
    refactor: replace Metadata with Cha in the file scheduler to improve \ 
interoperability with yazi-fs by @sxyazi in #1785
    feat: append the suffix to the end when generating unique filenames for \ 
directories, i.e., after not before the extension by @Saru2003 in #1784
    fix: images were not cleared when closing a tab in front of the current tab \ 
by @sxyazi in #1792
    feat: add a compatibility layer for ui.Paragraph to help users transition \ 
more smoothly to the new ui.Text by @sxyazi in #1794
    refactor: remove migration code as it's no longer needed and causes errors \ 
by @sxyazi in #1795
    feat: custom styles for the confirm component by @GrzegorzKozub in #1789
    perf: apply rotate in place to images with orientation by @sxyazi in #1807
    feat: add ICC profile to images for better color accuracy by @sxyazi in #1808
    fix: use std copy function in a blocking thread by @sxyazi in #1817
    feat: allow customizing Zoxide's FZF options with YAZI_ZOXIDE_OPTS by \ 
@sxyazi in #1822
    fix: use a unique Id for each tab by @sxyazi in #1826
    feat: launch from preset settings if the user's config cannot be parsed by \ 
@sxyazi in #1832
    fix: reset image rendering and skip peeking if the TUI in the background by \ 
@sxyazi in #1833
    refactor: add tests for Pattern::match_path by @sxyazi in #1837
    perf: eliminate all memory reallocations during sorting by @sxyazi in #1846
    feat: suggest keywords in the header if a finder is active by @sxyazi in #1847
    fix: copy the CWD path regardless even if the directory is empty by @sxyazi \ 
in #1849
    perf: introduce reflow for the rendering engine by @sxyazi in #1863
    fix: wrong file list offset squeeze when scrolloff = 0 by @aidancz in #1866
    refactor: use for loop to generate completions file by @Integral-Tech in #1869
    fix: use complete rendering instead of partial rendering for no task \ 
progress report by @sxyazi in #1876
    refactor: destructure tuples to enhance readability by @Integral-Tech in #1874
    feat: new copy --separator option to allow specifying the path separator by \ 
@alan910127 in #1877
    feat: allow disabling certain preset keybinds with the new noop virtual \ 
command by @sxyazi in #1882
    feat: include package revision hash in ya pack --list by @yudai0804 in #1884
    feat: add a new tab parameter for all tab-specific commands to specify which \ 
one by @sxyazi in #1885
    feat: support searching with the alias fdfind if fd cannot be found by \ 
@Integral-Tech in #1889
    feat!: deprecate --sync option for the plugin command by @sxyazi in #1891
    perf: lazy load ui, ya, fs, and ps by @sxyazi in #1903
    chore: add CODE_OF_CONDUCT.md by @Perfectio07 in #1911
    feat: spotter by @sxyazi in #1802
    feat: noop for spotters by @boydaihungst in #1924
    fix: show "0/0" instead of "1/0" in empty directories by \ 
@Integral-Tech in #1925
    fix!: eliminate the x- prefix in mime-types by @sxyazi in #1927
    refactor: make error messages more user-friendly by @Integral-Tech in #1935
    refactor: remove unnecessary UI element construction by @sxyazi in #1938
    feat!: use an Error userdata instead of a plain error code for I/O errors by \ 
@sxyazi in #1939
    feat: new log system by @sxyazi in #1945
    perf: introduce copy-on-write for event system to eliminate all memory \ 
reallocations by @sxyazi in #1962
    feat: true custom mime fetcher support - using user rules even during open \ 
or in watcher by @sxyazi in #1976
    feat: support assets installation for the ya pack subcommand by @zooeywm in #1973
    feat: new ya emit and ya emit-to subcommands to emit commands to a specified \ 
instance for execution by @sxyazi in #1979
    feat: new load DDS event by @sxyazi in #1980
    feat!: remove the meaningless --confirm option to simplify the shell command \ 
by @sxyazi in #1982
    feat: move notification from top-right to bottom-right corner to avoid \ 
covering content as much as possible by @sxyazi in #1984
    fix: propagate and update the directory node till its first parent when the \ 
files of a directory change by @sxyazi in #1987
    fix: missing a repeek on unyanking files in the hovered folder by @sxyazi in \ 
#1988
    fix: revise revision if the new file list is empty but the previous one was \ 
not by @sxyazi in #2003
    feat: fallback to CSI 16 t for certain terminals that do not support \ 
TIOCGWINSZ by @sxyazi in #2004
    docs: add README for default configuration files by @sxyazi in #2005
    fix: respect PREVIEW.image_quality for the default PDF previewer by @gaesa \ 
in #2006
    fix: introduce own CWD instead of chdir to avoid potential race conditions \ 
by @sxyazi in #2008
    fix: backspace --under didn't map UTF-8 character code points to byte \ 
indices by @sxyazi in #2010
    chore: bump version to 0.4.0 by @sxyazi in #2011
   2024-09-05 12:40:10 by pin | Files touched by this commit (3) | Package updated
Log message:
sysutils/yazi: update to 0.3.3

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.

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

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

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