Blazing Fast Terminal File Manager.
non-blocking async I/O.
2024-12-11 10:54:31 by pin | Files touched by this commit (3) | |
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) | |
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) | |
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
|
2024-08-28 08:53:58 by pin | Files touched by this commit (3) | |
Log message:
sysutils/yazi: update to 0.3.2
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.
- 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.
- 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.
- 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
|
2024-08-16 05:36:40 by pin | Files touched by this commit (4) | |
Log message:
sysutils/yazi: update to 0.3.1
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
|
2024-08-06 18:51:14 by pin | Files touched by this commit (1) |
Log message:
sysutils/yazi: fix broken install
Add forgotten PLIST
|
2024-08-01 14:53:02 by pin | Files touched by this commit (4) | |
Log message:
sysutils/yazi: update to 0.3.0
After three months of development, I'm excited to announce the release of Yazi \
0.3 today!
This version brings a host of new features and bug fixes. Thank you to every \
contributor for making Yazi better and better!
This is a breaking change release, so please make sure to read:
Migrating to Yazi v0.3.0, https://github.com/sxyazi/yazi/issues/1046
Packaging, https://github.com/sxyazi/yazi/issues/1046#issuecomment-2255993749
Lua API breaking changes in Yazi v0.3, \
https://github.com/sxyazi/yazi/issues/1046#issuecomment-2140320472
- Mouse support
The plugin system now includes five new APIs for each component - click, scroll, \
touch, move, and drag to handle mouse events.
These APIs come with default implementations to cover common operations.
This also allows plugin developers to extend mouse behavior and create any \
functionality they desire.
See #1038 for more info, thanks to @qsdrqs for his work on this!
- New builtin extract plugin
#1321 adds a builtin extract plugin for decompressing archives, with these features:
- Interactive password input.
- Smart output directory selection with auto renaming.
- Supports decompressing multiple files at once.
- Fully async, decompression tasks can queue up and run in the background.
- Enhanced file preview
Yazi 0.3 now supports the following new format to preview:
- Fonts
- SVGs
- HEIC files
- JPEG XL files
This feature requires the optional dependency ImageMagick to enable it.
- Package manager
Yazi 0.3 introduces the new ya pack subcommand for package management, making \
plugin and theme updates more convenient.
This is especially important as the plugin system is not yet stable, so \
providing users with the ability to easily keep everything up to date is \
necessary.
- Redesigned Icons
#1086 redesigns the icons, bringing the following improvements:
- Improved Matching Performance: The new dirs, files, and exts compile the \
icon rules into a HashMap at startup.
This allows most icon matches to be completed with O(1) complexity, \
significantly enhancing performance.
- Built-in nvim-web-devicons: This includes a richer and ready-to-use set of \
icons out of the box.
- Enhanced Icon Styling: Each icon now supports specifying both dark and \
light colors (currently only fg_dark is used).
In the future, the terminal color will automatically choose the appropriate \
color. This was added as part of #988.
- Enhanced is Function: The original is functionality has been reimplemented \
as conds to allow more complex conditional expressions, such as cond = \
"!dir & exec".
- Significant archive preview performance improvements
#1220 reimplements archive previewing to be streamed. This means only a small \
amount of necessary data needs to be read to display the preview immediately,
rather than waiting for all the data to be returned and parsed as before.
Additionally, by replacing lsar with 7zip, the preview speed has been further \
improved. The new implementation also introduces two new features: icon display \
and file size display.
- Other improvements
These are a few of my favorite features. For a complete list of improvements in \
Yazi 0.3, check out the full changelog.
What's Changed
feat: support yazi-cli for Nix flake by @XYenon in #944
feat: allow building with the system Lua by @Kladki in #943
feat: support expanding Windows paths like "D:" that only have a \
drive letter but no root by @sxyazi in #948
fix: always create XDG cache directory even if user has set a custom one by \
@sxyazi in #956
feat: support previewing files containing non-UTF-8 characters by @sxyazi in #958
fix: correct the glob pattern for the icons to fit the new matching \
algorithm by @sxyazi in #959
feat: add *.opus file icon by @Brixy in #967
fix: improve accessibility by avoiding hex color code for white by @Brixy in #968
fix: avoiding duplicate candidates in the which component by @mikavilpas in #975
feat: detect terminal type in tmux with CSI sequence in passthrough mode by \
@sxyazi in #977
feat: add more rules to [filetype] and [icon] by @Brixy in #966
feat: re-enable the file created attribute by @rafi in #987
feat: add --force-window option to mpv by @GOWxx in #998
feat: close confirmation prompts and exit automatically when the ongoing \
task gone by @sxyazi in #997
fix: notification title width does not include the width of the icon by \
@sxyazi in #1000
feat: support cargo binstall yazi-fm and cargo binstall yazi-cli by \
@slowsage in #1003
feat: yazi --debug shows ya version in its output by @mikavilpas in #1005
feat: add git commit hash to ya --version by @fzdwx in #1006
feat: package manager by @sxyazi in #985
feat: ya pack displays help if no arguments are given by @mikavilpas in #1012
feat: new --args parameter for fd an rg search by @LatentDream in #1013
fix: correct wasm target condition by @itsjunetime in #1018
fix: broaden file watcher event types to accommodate permission changes on \
certain platforms by @sxyazi in #1024
feat: add new debounce option to ya.input() API by @sxyazi in #1025
fix: recognize TERM=rxvt-unicode-256color by @dtolnay in #1027
feat: support stdin and pipe for Child API by @sxyazi in #1033
ci: consistently enforce Lua coding style by @mikavilpas in #1029
ci: fix cargo unit tests execution by @clispios in #1041
refactor: eliminate exec by @sxyazi in #1045
feat: use Ctrl-c instead of Ctrl-q as the universal close key for all \
components by @sxyazi in #1047
fix: remove ignore options from rg and fd search by @chriszarate in #1043
feat: font preview by @sxyazi in #1048
docs: add CONTRIBUTING.md by @johan-naizu in #1052
feat: prefetcher by @sxyazi in #1061
fix: ePUB file mime-type matching for the opener rule by @sxyazi in #1063
fix: cursor gets out of sync occasionally at image previewing through IIP \
under tmux by @sxyazi in #1070
feat: support Super/Command/Windows key notation D- by @sxyazi in #1069
fix: remove the default keybinding for going to the temporary directory by \
@sxyazi in #1073
feat!: redesign icons by @sxyazi in #1086
fix: Sixel support from certain st forks cannot be detected by @sxyazi in #1094
feat: support case insensitive special keys in keymappings by @mikavilpas in \
#1082
refactor!: v0.3 API changes by @sxyazi in #1108
feat: add pack --list subcommand to Ya CLI by @lpnh in #1110
feat!: DDS client-server version check by @sxyazi in #1111
feat: support mouse event by @qsdrqs in #1038
feat: add some dependency version information to yazi --debug by @omagdy7 in \
#1112
fix: block SIGINT signal from the spawned subprocess by @sxyazi in #1131
feat: support completely disabling mouse with mouse_events=[]; add new \
cursor_blink to control cursor style of input components by @sxyazi in #1139
fix: different filenames should be treated as the same file on \
case-insensitive file systems by @sxyazi in #1151
feat: support ya sub subcommand for the Ya CLI by @mikavilpas in #1004
fix: file watcher didn't handle realname resolution used for \
case-insensitive file systems correctly by @sxyazi in #1179
feat: include file filter state in the header by @thelamb in #1182
feat!: include the sender ID in static messages by @sxyazi in #1172
fix: accommodate all hover events for DDS by @Xerxes-2 in #1187
feat: support x-ndjson mime-type for JSON files by @sxyazi in #1190
fix: suppress warnings for different name representations of the same file \
in the case-insensitive file system when renaming by @Xerxes-2 in #1185
fix: ueberzug image adapter should respect the user's max_width and \
max_height settings by @sxyazi in #1200
fix: magick plugin not working properly by @sxyazi in #1213
perf!: reimplement and significantly speed up archive previewing by @sxyazi \
in #1220
feat: add --hovered option to the rename and remove commands by @hankertrix \
in #1227
feat: support right-click to open files by @sxyazi in #1232
feat: support AVIF image preview by @sxyazi in #1249
feat: ownership linemode by @AidanV in #1238
feat: add nlink property to the Cha plugin API by @Ape in #1279
feat: add random option to the sort command by @zooeywm in #1291
feat: show files with inaccessible metadata by @Ape in #1275
feat: help users migrate shell key bindings to v0.3 by @mikavilpas in #1304
feat: allow setting YAZI_ID as a command line argument by @mikavilpas in #1305
refactor: reimplement the signal system by @sxyazi in #1307
fix: destroy term before stopping signals by @sxyazi in #1310
fix: add use-dev-tty to fix piping to Yazi on macOS by @joshuali925 in #1317
refactor: fix Clippy warnings by @Ape in #1312
feat: add Winget publishes to CI/CD by @MoaidHathot in #1299
feat: add support for %@ argument extension on Windows to align with Unix \
platforms by @sxyazi in #1319
fix: wrong directory loading optimization condition by @sxyazi in #1331
feat: make F1 also show the help menu by @CyberShadow in #1336
fix: help menu multi-line text rendering by @sxyazi in #1347
fix: can't rewatch a directory that has been deleted once before by \
@leihaojun in #1335
fix(nix): add outputHashes for notify git dependency by @uncenter in #1373
feat(nix): set VERGEN_* build env vars by @uncenter in #1375
refactor(nix): cleanup and switch to nixfmt-rfc-style by @uncenter in #1376
chore: bump version to 0.3 by @sxyazi in #1374
|
2024-04-24 08:51:22 by pin | Files touched by this commit (3) | |
Log message:
sysutils/yazi: update to 0.2.5
This version introduces a new DDS (Data Distribution Service) aimed at
facilitating communication and state synchronization between multiple Yazi
instances, as well as state persistence.
It's built on a client/server architecture (without the need for running
additional server processes), and deeply integrates with a Lua-based
publish-subscribe model.
It also provides a set of new command-line options for interaction,
such as ya pub, ya pub-static, yazi --local-events, yazi --remote-events,
and currently used for:
- Cross-process yank-paste
- Change Yazi's CWD to PWD on subshell exit
- Integration with the new yazi.nvim plugin: subscribing to file deletion,
movement, and renaming events through yazi --local-events to keep Neovim's
buffer/LSP in sync
- bookmarks.yazi plugin: Saving bookmarks added by the user through the
persistence feature provided by DDS
Performance optimizations
- Reduced CPU overhead during icon matching: Icon matching accounted for 35.6%
of CPU time during rendering, and by changing the matching algorithm, this
proportion has been reduced by ~10%
- Caching of each matched icon to avoid repeated calculations: By caching
icons, further reductions in CPU usage for matching are achieved, as only a
few new files that appear when scrolling through panes need to be matched
- Re-implemented the file watcher in an async way: This is the only sync I/O
operation besides configuration initialization at startup, which occurs
during cd and scrolling through the file list. For certain slow external
devices, Yazi would experience noticeable lagginess, which has now been
addressed, see #877 for more details
Feature enhancements
- Re-implemented fzf and zoxide as plugins for better flexibility: fzf and
zoxide have added more runtime error handling. zoxide now supports the new
update_db feature, which automatically adds Yazi's CWD to zoxide when
navigating. To enable it, add the following to your init.lua:
require("zoxide"):setup {
update_db = true,
}
- Maintain the original modification time when copying files
- Support smart case for cd path completion
- Add placeholder messages when there are no files in the directory
- Preserve the order of file selection when performing open, shell, or bulk
rename on multiple selected files
- Prevent copying a directory to itself
The plugin system has also seen some improvements:
- ya.dbg() and ya.err() now support printing any type of data
- New ps API as a carrier for DDS interaction
- ya.manager_emit() now supports passing Url type
What's Changed
- fix: use BTreeSet for selected files to maintain order by @sxyazi in #799
- refactor: wrap Opener with Cow to avoid unnecessary memory reallocations
when opening files by @sxyazi in #805
- fix: respond to the SIGTERM signal even when Yazi is in the background and
has passed control of the terminal to the spawned process by @sxyazi in #797
- refactor: switch to stderr by @sxyazi in #819
- feat: fix all dependencies to specific version numbers to allow non---locked
builds by @sxyazi in #821
- fix: adjust calculation for number of lines in a notification message
by @Rolv-Apneseth in #828
- fix: disable ANSI encoding for formatted events for the tracing_subscriber
to clean up the logs by @Rolv-Apneseth in #832
- feat: enhance the ya.dbg() and ya.err() debugging functions
by @sxyazi in #835
- perf: accelerate kitty graphics protocol encoding by avoiding string
reallocation by @sxyazi in #837
- fix: mime-type for xz archives by @sxyazi in #841
- feat: time-based selection order preservation by @sxyazi in #843
- feat: add support for YAZI_FILE_ONE to the built-in file previewer
by @sxyazi in #846
- fix: Windows cmd.exe not responding to correct CSI sequences due to ConPTY
by @sxyazi in #845
- perf: add BufWriter to Stderr to avoid frequent system calls and increase
rendering frame rate by @sxyazi in #849
- feat: DDS (Data Distribution Service) by @sxyazi in #826
- perf: port require() and ya.sync() to Rust to avoid plugin information
initialization process by @sxyazi in #853
- feat: readable toml parsing error by @SoloJacobs in #854
- feat: add a new sender property to the DDS payload by @sxyazi in #855
- feat: the cd event in DDS will now also be triggered when the tab is first
created by @sxyazi in #861
- feat: detect CSI u through Stderr to allow using Stdout as the carrier of DDS
payload without an ANSI sequence response timeout by @sxyazi in #867
- fix: a race condition in DDS static messages sent as internal events
by @sxyazi in #868
- feat: add is_exec and is_sticky to Cha bindings by @sxyazi in #875
- perf: re-implement file watcher in an async way by @sxyazi in #877
- fix: CJK text rendering issue where the input popup component overlaps with
images by @sxyazi in #879
- feat: re-implement fzf as a built-in plugin by @sxyazi in #884
- feat: add new --orphan option to the shell command by @sxyazi in #887
- fix: file list expansion arguments ($@, $*) of shell command under opener
rules are out of order by @sxyazi in #890
- feat: add new move, trash, and delete event kinds to DDS
by @mikavilpas in #880
- feat: add YAZI_ID environment variable by @sxyazi in #895
- feat: when there are no files in the list, add a placeholder message
by @sxyazi in #900
- feat: add loading state to directories by @sxyazi in #904
- feat: default "Reveal" opener for Linux by @sxyazi in #907
- perf: switch to globset to reduce CPU time spent on matching icons
by @sxyazi in #908
- feat: trigger path completion with both / and \ on Windows
by @ndtoan96 in #909
- feat: add a new ya send command to allow standalone client processes to
communicate with DDS from the command line by @sxyazi in #913
- feat: allow creating a tab with the startup directory when the tab_create
command is called without specifying a path parameter by @sxyazi in #917
- feat: generate autocomplete script for ya command by @sxyazi in #919
- feat: allow opening interactively with the --chosen-file flag
by @mikavilpas in #920
- fix: rollback ratatui to v0.26.1 to avoid panicking by @sxyazi in #922
- feat: expand the types supported by the event system by @sxyazi in #923
- feat: change status bar percent at 100 to Bot by @AidanV in #930
- fix: prevent pasting a directory into itself by @Rolv-Apneseth in #925
- feat: preserve files' modified at timestamp while copying
by @Rolv-Apneseth in #926
- perf: cache each file's icon to avoid redundant calculations at rendering
by @sxyazi in #931
- feat: split ya send into ya pub and ya pub-static to make it more ergonomic
by @sxyazi in #933
- feat: new builtin session.lua plugin by @sxyazi in #940
|