Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

bump(sxyazi/yazi): update to v0.4.0 #7

Merged
merged 1 commit into from
Dec 8, 2024
Merged

Conversation

renovate[bot]
Copy link

@renovate renovate bot commented Dec 8, 2024

This PR contains the following updates:

Package Update Change
sxyazi/yazi minor v0.3.3 -> v0.4.0

Release Notes

sxyazi/yazi (sxyazi/yazi)

v0.4.0

Compare Source

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

https://github.com/sxyazi/yazi/pull/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 https://github.com/sxyazi/yazi/pull/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

https://github.com/sxyazi/yazi/pull/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 https://github.com/sxyazi/yazi/pull/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 https://github.com/sxyazi/yazi/pull/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 https://github.com/sxyazi/yazi/pull/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 https://github.com/sxyazi/yazi/pull/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 https://github.com/sxyazi/yazi/pull/1583

Prioritize Paths That Need to Be Processed First During Bulk Renaming

The bulk renaming feature now has smart conflict resolution, done in https://github.com/sxyazi/yazi/pull/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.).

https://github.com/sxyazi/yazi/pull/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 https://github.com/sxyazi/yazi/pull/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

New Contributors

Full Changelog: sxyazi/yazi@v0.3.3...v0.4.0


Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Enabled.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate bot merged commit 0e95040 into main Dec 8, 2024
17 checks passed
@renovate renovate bot deleted the renovate/sxyazi-yazi-0.x branch December 8, 2024 18:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

0 participants