-
Notifications
You must be signed in to change notification settings - Fork 658
feat: platform-specific key binding #2526
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
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
GrzegorzKozub
added a commit
to GrzegorzKozub/yazi
that referenced
this pull request
Mar 25, 2025
Lemi0002
pushed a commit
to Lemi0002/yazi
that referenced
this pull request
Apr 10, 2025
|
does this apply to the prepend_keymap too? I am trying to use it there (a plugin I have is not available in macos, so want I need to prepend the keys only for linux...) and it does not seem to work... |
tmeijn
pushed a commit
to tmeijn/dotfiles
that referenced
this pull request
May 10, 2025
This MR contains the following updates: | Package | Update | Change | |---|---|---| | [sxyazi/yazi](https://github.com/sxyazi/yazi) | minor | `v25.3.2` -> `v25.4.8` | MR created with the help of [el-capitano/tools/renovate-bot](https://gitlab.com/el-capitano/tools/renovate-bot). **Proposed changes to behavior should be submitted there as MRs.** --- ### Release Notes <details> <summary>sxyazi/yazi (sxyazi/yazi)</summary> ### [`v25.4.8`](https://github.com/sxyazi/yazi/releases/tag/v25.4.8) [Compare Source](sxyazi/yazi@v25.3.2...v25.4.8) #### Breaking Changes - Supported wraparound navigation and enabled it by default. sxyazi/yazi#2485 - Replaced `tasks_show` and `close_input` with `tasks:show` and `input:close`. sxyazi/yazi#2530 - `frag`, `name`, `stem`, `ext`, and `parent` on [`Url`](https://yazi-rs.github.io/docs/plugins/types#shared.url), `name` on [`tab::Tab`](https://yazi-rs.github.io/docs/plugins/types#app-data.tab-tab), and `is_hovered` on [`fs::File`](https://yazi-rs.github.io/docs/plugins/types#app-data.fs-file) are now properties. sxyazi/yazi#2572 - Swapped the default key bindings for `z` (zoxide) and `Z` (fzf). sxyazi/yazi#2546 - Used the new `@sync peek` annotation instead of the previewer's `sync = true`. sxyazi/yazi#2487 #### Deprecated - `ui.Padding` and `ui.Rect:padding()` are deprecated. sxyazi/yazi#2574 #### Packaging - SVG preview backend switched from ImageMagick to [`resvg`](https://github.com/linebender/resvg) and implemented as a new `svg` previewer. sxyazi/yazi#2533, sxyazi/yazi#2581 #### Custom Search Engine Lua API With sxyazi/yazi#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](https://github.com/yazi-rs/plugins/tree/main/vcs-files.yazi) is available to display the list of files changed in Git within Yazi: https://github.com/user-attachments/assets/ca6f7d55-002b-4933-b8e8-41f335b96a2b #### Platform-Specific Key Binding sxyazi/yazi#2526 adds a new *optional* `for` field to key bindings to specify the platform the key binding applies to. For example: ```sh { 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. sxyazi/yazi#2508 - AVIF, HEIF, and JPEG XL previews have seen significant performance improvements. sxyazi/yazi#2533, thanks [@​ze0987](https://github.com/ze0987) - Compiled and cached the Lua bytecode to enhance the overall performance of the plugin system. sxyazi/yazi#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`. https://github.com/user-attachments/assets/f7b175a3-fa73-4128-8239-f90e45f13ab3 See sxyazi/yazi#2546 for more details. #### Use Yazi File Manager Directly in Helix, Without Zellij or tmux sxyazi/yazi#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! https://github.com/user-attachments/assets/9dbf7aca-fc4e-4f9e-b554-70cadedf0484 #### 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 sxyazi/yazi#2485. #### New `follow` Command to Follow Files Pointed to by Symlinks sxyazi/yazi#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 sxyazi/yazi#2578, you can now customize the input box opened by commands such as `create`, `rename`, `cd`, `filter`, `find`, `search`, and `shell`. For example: ```sh { 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](https://github.com/sxyazi) in sxyazi/yazi#2439 - fix: reserve a hack for Zellij to force an image adapter by [@​sxyazi](https://github.com/sxyazi) in sxyazi/yazi#2441 - feat: new `rt.term` exports terminal emulator information by [@​sxyazi](https://github.com/sxyazi) in sxyazi/yazi#2442 - fix: always show the size in the status bar even in empty directories by [@​sxyazi](https://github.com/sxyazi) in sxyazi/yazi#2449 - feat: allow `tab_swap` to cycle tabs by [@​sxyazi](https://github.com/sxyazi) in sxyazi/yazi#2456 - feat: support using Yazi in Helix directly without Zellij or tmux by [@​sxyazi](https://github.com/sxyazi) in sxyazi/yazi#2461 - refactor: prefer `WriteConsoleW` for Windows console output by [@​sxyazi](https://github.com/sxyazi) in sxyazi/yazi#2464 - ci: add label only if not removed manually by [@​sxyazi](https://github.com/sxyazi) in sxyazi/yazi#2470 - fix: force ANSI for keyboard progressive enhancement on Windows by [@​sxyazi](https://github.com/sxyazi) in sxyazi/yazi#2474 - feat: new `fs.expand_url` API by [@​sxyazi](https://github.com/sxyazi) in sxyazi/yazi#2476 - feat!: file navigation wraparound with new `arrow prev` and `arrow next` commands by [@​sxyazi](https://github.com/sxyazi) in sxyazi/yazi#2485 - feat!: new `@sync peek` annotation for sync previewers by [@​sxyazi](https://github.com/sxyazi) in sxyazi/yazi#2487 - perf: lazy compile and cache lua plugins as binary bytecode by [@​sxyazi](https://github.com/sxyazi) in sxyazi/yazi#2490 - feat: new `base` field for the `Url` userdata by [@​sxyazi](https://github.com/sxyazi) in sxyazi/yazi#2492 - feat: allow repositioning the cursor in the `rename` DDS event by [@​sxyazi](https://github.com/sxyazi) in sxyazi/yazi#2521 - feat: new `symlink_target` to style the target of symbolic links by [@​sxyazi](https://github.com/sxyazi) in sxyazi/yazi#2522 - feat: platform-specific key binding by [@​sxyazi](https://github.com/sxyazi) in sxyazi/yazi#2526 - feat: show error message when directory fails to load by [@​sxyazi](https://github.com/sxyazi) in sxyazi/yazi#2527 - feat: allow bulk renaming to include trailing content in addition to the required new names by [@​MikuGeek](https://github.com/MikuGeek) in sxyazi/yazi#2494 - refactor!: remove unnecessary `tasks_show` and `close_input` commands by [@​sxyazi](https://github.com/sxyazi) in sxyazi/yazi#2530 - perf!: faster image preview with optimized `magick` arguments by [@​ze0987](https://github.com/ze0987) in sxyazi/yazi#2533 - feat!: support `arrow prev` and `arrow next` for more components by [@​XOR-op](https://github.com/XOR-op) in sxyazi/yazi#2540 - feat: clear terminal before displaying EXIF data by [@​Integral-Tech](https://github.com/Integral-Tech) in sxyazi/yazi#2541 - feat: new `follow` command to follow files pointed to by symlinks by [@​sxyazi](https://github.com/sxyazi) in sxyazi/yazi#2543 - fix: always check whether the cursor exceeds the upper bound to guard against unexpected values by [@​sxyazi](https://github.com/sxyazi) in sxyazi/yazi#2551 - feat!: enhance `fzf` integration by [@​sxyazi](https://github.com/sxyazi) in sxyazi/yazi#2553 - feat: support Warp terminal image preview by [@​sxyazi](https://github.com/sxyazi) in sxyazi/yazi#2571 - feat: allow initializing input when opening it with commands like `rename`, `create`, `find`, `filter`, etc. by [@​sxyazi](https://github.com/sxyazi) in sxyazi/yazi#2578 - fix: ignore XQuartz `$DISPLAY` variable by [@​sxyazi](https://github.com/sxyazi) in sxyazi/yazi#2586 - fix: don't fail on videos with embedded images by [@​ze0987](https://github.com/ze0987) in sxyazi/yazi#2590 #### New Contributors - [@​MikuGeek](https://github.com/MikuGeek) made their first contribution in sxyazi/yazi#2494 - [@​ze0987](https://github.com/ze0987) made their first contribution in sxyazi/yazi#2533 **Full Changelog**: sxyazi/yazi@v25.3.2...v25.4.8 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this MR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box --- This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC4xMS4yIiwidXBkYXRlZEluVmVyIjoiNDAuMTEuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiUmVub3ZhdGUgQm90Il19-->
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
An implementation of the feature request: #2509
Closes #2509
This PR adds a new optional
forfield 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" },The available values of
forare the same as https://yazi-rs.github.io/docs/configuration/yazi#opener