Yazi v25.12.29

v25.12.29Desktop
Added 22
  • Remote file management
  • Virtual file system
  • Shell formatting
  • Multi-entry support for plugin system
  • Zoom in or out of the preview image
  • Improve the UX of the pick and input components
Changed 4
  • Rename name to url for open, fetchers, spotters, preloaders, previewers, filetype, and globs icon rules to support virtual file system
  • Rename mime fetcher to mime.local, and introduce mime.dir fetcher to support folder MIME types
  • Reclassify hovered and preview_hovered under [mgr] of theme.toml into [indicator] as current and preview, respectively
  • Return Path instead of Url from Url:strip_prefix() and File.link_to to enforce type safety
Fixed 4
  • User-prepended open rules do not override presets
  • Respect user's system media opener instead of hardcoding mpv
  • Incorrect $0 and $@ parameters in shell action under empty directories
  • Avoid appending a newline when reading clipboard contents
Removed 1
  • Remove $0 parameter in opener rules to make the open action work under empty directories
Deprecated 6
  • Deprecate $n, $@ (*nix) and %n, %* (Windows) in shell action and opener rules in favor of new shell formatting
  • Deprecate ya.hide, ya.render, and ya.truncate in favor of ui.hide, ui.render, and ui.truncate
  • Deprecate position property of ya.input() in favor of pos to align with ya.confirm() and its type ui.Pos
  • Deprecate cx.tasks.progress in favor of cx.tasks.summary
  • Deprecate frag property of Url in favor of domain
  • Deprecate ui.Rect.default in favor of ui.Rect {}
Added
  • Remote file management ([#3396])
  • Virtual file system ([#3034], [#3035], [#3094], [#3108], [#3187], [#3203])
  • Shell formatting ([#3232])
  • Multi-entry support for plugin system ([#3154])
  • Zoom in or out of the preview image ([#2864])
  • Improve the UX of the pick and input components ([#2906], [#2935])
  • Show progress of each task in task manager ([#3121], [#3131], [#3134])
  • New fs.copy() and fs.rename() APIs ([#3467])
  • New experimental ya.async() API ([#3422])
  • New overall option to set the overall background color ([#3317])
  • Rounded corners for indicator bar ([#3419])
  • New bulk_rename action always renames files with the editor ([#2984])
  • key-* DDS events to allow changing or canceling user key events ([#3005], [#3037])
  • New --bg specifying image background color in the preset SVG and ImageMagick previewers ([#3189])
  • filter by full path (prefix + filename) in search view instead of just filename ([#2915])
  • New casefy action for case conversion of the input content ([#3235])
  • Allow dynamic adjustment of layout ratio via rt.mgr.ratio ([#2964])
  • Support .deb packages ([#2807], [#3128], [#3209])
  • Port several widespread GUI keys to the input component ([#2849])
  • Support invalid UTF-8 paths throughout the codebase ([#2884], [#2889], [#2890], [#2895], [#3023], [#3290], [#3369])
  • Allow upgrading only specific packages with ya pkg ([#2841])
  • Respect the user's image_filter setting in the preset ImageMagick previewer ([#3286])
  • New duplicate DDS event for copying files ([#3456])
  • New ind-sort and key-sort DDS events to change sorting in Lua ([#3391])
  • Allow custom mouse click behavior for individual files ([#2925])
  • Display newlines in input as spaces to improve readability ([#2932])
  • Fill in error messages if preview fails ([#2917], [#3383], [#3387])
  • Search view shares file selection and yank state ([#2855])
  • Offload mimetype fetching on opening files to the task scheduler ([#3141])
  • Increase terminal response timeout to better tolerate slow SSH network environments ([#2843])
Changed
  • Rename name to url for open, fetchers, spotters, preloaders, previewers, filetype, and globs icon rules to support virtual file system ([#3034])
  • Rename mime fetcher to mime.local, and introduce mime.dir fetcher to support folder MIME types ([#3222])
  • Reclassify hovered and preview_hovered under [mgr] of theme.toml into [indicator] as current and preview, respectively ([#3419])
  • Remove $0 parameter in opener rules to make the open action work under empty directories ([#3226])
  • Return Path instead of Url from Url:strip_prefix() and File.link_to to enforce type safety ([#3361], [#3385])
  • Use body instead of the term content in confirmations ([#2921])
  • Use u16 instead of u32 as the type of max_width and max_height options to avoid memory exhaustion ([#3313])
  • Implement __pairs metamethod instead of __index for the callback argument of the @yank DDS event ([#2997])
Deprecated
  • Deprecate $n, $@ (*nix) and %n, %* (Windows) in shell action and opener rules in favor of new shell formatting ([#3232])
  • Deprecate ya.hide, ya.render, and ya.truncate in favor of ui.hide, ui.render, and ui.truncate ([#2939])
  • Deprecate position property of ya.input() in favor of pos to align with ya.confirm() and its type ui.Pos ([#2921])
  • Deprecate cx.tasks.progress in favor of cx.tasks.summary ([#3131])
  • Deprecate frag properly of Url in favor of domain ([#3034])
  • Deprecate ui.Rect.default in favor of ui.Rect {} ([#2927])
Fixed
  • User-prepended open rules do not override presets ([#3360])
  • Respect user's system media opener instead of hardcoding mpv ([#2959])
  • Incorrect $0 and $@ parameters in shell action under empty directories ([#3225])
  • Avoid appending a newline when reading clipboard contents ([#3059])
  • Renew package rev only when it's empty ([#3200])
  • Suspend only when there is a parent process ([#3008])
  • Preserve open order for files with post-resolved MIME types ([#2931])
  • A race condition in concurrent directory loading on a slow device ([#3271])
  • Erase overlapping image portions when previewing errors ([#3067])
  • Force Git checkout for plugin cache repositories ([#3169])
  • Check compatibility when reusing previewer bytecode cache ([#3190])
  • Disable kitty keyboard protocol on Windows due to crossterm inability to handle it ([#3250])
  • Prevent quotes in file(1) arguments from being stripped under MSYS2 ([#3364])
  • Expose ya CLI in the Snap build ([#2904])
  • Fallback to PollWatcher for file changes watching on NetBSD ([#2941])
  • Generate unique image IDs for Kgp to tolerate tmux ([#3038])
Improved
  • Make copy, cut, delete, link, hardlink, download, and upload tasks immediately cancellable ([#3429])
  • Make preload tasks discardable ([#2875])
  • Reduce file change event frequency ([#2820])
  • Upload and download of a single file over SFTP in chunks concurrently ([#3393])
  • Do not listen for file changes in inactive tabs ([#2958])
  • Switch to a higher-performance hash algorithm ([#3083])
  • Sequence-based rendering merge strategy ([#2861])
  • Store only Urn instead of full Url in find results ([#2914])
  • Zero-copy UrlBuf to Url conversion ([#3117])
  • String interning to reduce memory usage of mimetype and URL domain ([#3084], [#3091])
  • Do not pre-allocate memory for Lua tables ([#2879])
  • Copy-on-write on command data, and avoid converting primitive types to strings thereby allocating memory ([#2862])
  • Use AnyUserData::type_id() to reduce stack pushes ([#2834])
  • App data instead of Lua registry to reduce stack pushes ([#2880])
View original

Upgraded? How did it go?

Discussion